Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Goto page Previous  1, 2, 3 ... 64, 65, 66 ... 128, 129, 130  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Thu Feb 28, 2013 18:40    Post subject: Reply with quote

Два вопроса, может ли TCFS2:
1) Переименовать секцию *.INI-файла?
2) Закомментировать ключ *.INI-файла?
Rolling Eyes
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message  
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Feb 28, 2013 18:46    Post subject: Reply with quote

1. Это видел?
2. Нет.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message  
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Thu Feb 28, 2013 20:10    Post subject: Reply with quote

Flasher wrote:
1. Это видел?
2. Нет.

На оба вопроса ответ нет, жаль.

А что если это реализовать в доп. модуле типа TCFS2Tools? Задачи специфические, но спросом будут пользоваться определённо.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Fri Mar 01, 2013 15:02    Post subject: Reply with quote

Это потребует передавать параметры-строки. Мне-то добавить функцию, отправляющую очередное сообщение с заданной строкой окну тотала, не сложно, но кто будет писать модуль? Rolling Eyes
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Mar 10, 2013 20:39    Post subject: Reply with quote

Бета 332.

Добавлена возможность передачи параметров EM-командам:
Code:
TCFS2 /ef "tem(`em_cd c:\`)"
TCFS2 /ef "tem(`em_exec notepad`)"

При этом у самих EM-команд в строке параметров нужно использовать %A.

Также добавлена функция send для отправки нажатий клавиш окнам тотала. Синтаксис - как в функциях SendKeys.Send (C#) и SendKeys (VBS), за парой различий: поддерживаются только самые короткие обозначения клавиш ({BS}, {INS}, {DEL}), часть клавиш я выкинул (всякие непонятные F13+ и HELP), ~ работает как обычная клавиша, а не как ENTER (ENTER можно послать через {ENTER}), ну и {{}/{}} не поддерживаются за ненадобностью (вместо них следует использовать {[}/{]} - эффект тот же, т.к. символы находятся на тех же клавишах). Повтор ({LEFT 20}) тоже работает. Т.е. можно делать так:
Code:
TCFS2 /ef "send(`%(){DOWN}{ENTER}{TAB 2} {ENTER}`)
TCFS2 /ef "send(`notepad ^+{ENTER}{ENTER}`)"

Если во время отправки нажатий активировать другое окно, клавиши получит оно. Very Happy
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
ask-rus



Joined: 10 Nov 2009
Posts: 2077
Location: Russian Federation

Post (Separately) Posted: Mon Mar 11, 2013 07:24    Post subject: Reply with quote

А какое значение между нажатиями в мс? Можно ли увеличивать/уменьшать его?
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 11, 2013 09:51    Post subject: Reply with quote

На данный момент - никакого. Нажатия просто отправляются, ну а там система помещает их в очередь сообщений активного окна, и дальнейшая обработка уже зависит от тотала. Особого смысла пока в задержке не вижу (объясните, если он есть), разве что в разовых паузах (надо подумать, как их добавить - как вариант, что-то типа {WAIT 400}).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 11, 2013 12:27    Post subject: Reply with quote

О, дождались! Very Happy Спасибо! И не нужны никакие tcimg и подобные грузомонстры.
Даже параметры - сильно! MVV, а к cm_ будут?

А под окнами подразумеваются все без исключения или только диалоги ТС?

MVV wrote:
Если во время отправки нажатий активировать другое окно, клавиши получит оно.
Плохо. А можешь сделать ограничение по классу (как AutoHotKey)?

MVV wrote:
Особого смысла пока в задержке не вижу
Я тоже не вижу. Задержка и так есть - delay.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 11, 2013 17:03    Post subject: Reply with quote

CM-команды не поддерживают передачу параметров по определению. Да и EM-команды их поддерживают не настолько хорошо, как хотелось бы - только ANSI.

Quote:
А под окнами подразумеваются все без исключения или только диалоги ТС?

Система эмулирует нажатия клавиш, при этом ловит их активное окно. Перед началом эмуляции (в начале каждого вызова send) я делаю окно тотала активным. Если в тотале открыто модальное окно, нажатия получит оно (диалоги установки атрибутов, копирования и т.п., которые блокируют окно тотала).

Quote:
Плохо. А можешь сделать ограничение по классу (как AutoHotKey)?

Мне объясняй подробнее, понятия не имею, как оно в AHK. Я и так окно тотала активирую перед началом передачи, так что всё должно быть в порядке, если не переключаться между окнами во время каждого вызова send (что по идее не так-то и просто, т.к. символы посылаются быстро).

Quote:
Я тоже не вижу. Задержка и так есть - delay.

Кстати, да, можно же так её делать.
Code:
TCFS2 /ef "send(`%(){DOWN}{ENTER}`) + delay(100) + send(`{TAB 2} {ENTER}`)"

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 11, 2013 17:23    Post subject: Reply with quote

MVV wrote:
CM-команды не поддерживают передачу параметров по определению.
Имелись в виду эти. Одна таки есть - cm_List.

MVV wrote:
Мне объясняй подробнее, понятия не имею, как оно в AHK.
Пример директивы: #IfWinActive ahk_class TPanel
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 11, 2013 18:28    Post subject: Reply with quote

Quote:
Имелись в виду эти. Одна таки есть - cm_List.

Думаю, она обрабатывается нестандартно. Обычные CM-команды - это просто сообщения с номерами, строки так передать невозможно (разве что в пределах одного процесса). Если она уж очень нужна, могу предложить сделать EM-команду с TOTALCMD /S=L %A.

Quote:
Пример директивы: #IfWinActive ahk_class TPanel

Из внешнего процесса невозможно узнать, какое дочернее окно тотала имеет фокус ввода (только внедрением DLL). Проверить можно лишь окна верхнего уровня. Но после активации окна придется еще ждать, пока оно активируется, и проверять, совпадает ли класс. Или разбить активацию окна и отправку нажатий на разные функции, тогда можно добавить функцию проверки класса и/или текста текущего окна (опять же, верхнего уровня).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Mar 11, 2013 19:46    Post subject: Reply with quote

MVV wrote:
Если она уж очень нужна
Я не только имел в виду эту команду, но и другие по ссылке.
MVV wrote:
Но после активации окна придется еще ждать, пока оно активируется
Это как?
MVV wrote:
Или разбить активацию окна и отправку нажатий на разные функции, тогда можно добавить функцию проверки класса и/или текста текущего окна
Разбиение будет предполагать увеличение записей в синтаксисе. Лучше объединённую с проверкой класса (с заголовком теряется универсальность).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Mar 11, 2013 20:00    Post subject: Reply with quote

Quote:
Я не только имел в виду эту команду, но и другие по ссылке.

Те команды с параметрами вообще идут особняком. В totalcmd.inc специально написано, что они снабжены номерами исключительно для локализации.
Сейчас создал em_SyncOpen с командой SYNCOPEN и параметром %A, она в состоянии загружать шаблоны.
Code:
TCFS2.exe /ef "tem(`em_SyncOpen ИмяШаблона`)"


Quote:
Это как?

Имелось в виду после отправки команды активации. Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус.

Quote:
Лучше объединённую с проверкой класса

Толку с проверки класса? В AHK эта проверка внешняя и действует для целого куска скрипта, логично было бы и здесь отдельной функцией проверять класс активного окна (но если тотал вообще неактивен, то и класс будет вообще не тотальный). Но у нас всего одна функция send, которой не всё равно, какое окно активно (остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно), и я не вижу логичного способа добавления параметра класса.
Да и не все окна можно однозначно опознать по классу (а-ля TCx64, где сплошь и рядом Window - впрочем, все равно узнать, какое из дочерних окон активно, все равно нельзя).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 12, 2013 00:06    Post subject: Reply with quote

MVV wrote:
Сейчас создал em_SyncOpen с командой SYNCOPEN и параметром %A, она в состоянии загружать шаблоны.
Да кто бы сомневался. Хотелось как раз таки обойти задействование em.

MVV wrote:
Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус.
А проверить? Smile

MVV wrote:
В AHK эта проверка внешняя и действует для целого куска скрипта
Директива для всего скрипта. Но можно делать и для куска.

MVV wrote:
но если тотал вообще неактивен, то и класс будет вообще не тотальный
А TCFS2 какая разница, он же за пределами ТС не работает?

MVV wrote:
Но у нас всего одна функция send, которой не всё равно, какое окно активно
Отсюда поподробней. На чём стоят ограничения?

MVV wrote:
остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно
Да, это я знаю.

MVV wrote:
и я не вижу логичного способа добавления параметра класса
Смотря что ты понимаешь под нелогичным.

MVV wrote:
впрочем, все равно узнать, какое из дочерних окон активно, все равно нельзя
Можно узнавать какое активно в момент отправки команды и фиксировать до хэндлу.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message  
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Tue Mar 12, 2013 00:44    Post subject: Reply with quote

Quote:
Да кто бы сомневался. Хотелось как раз таки обойти задействование em.

Пока никак. А с учетом того, что таких команд всего десяток, вообще не вижу проблемы.
Quote:
Директива для всего скрипта. Но можно делать и для куска.

Не думаю, что AHK более 1 раза сверяет класс окна. Скорее всего, проверяет вначале, а потом работает с этим хэндлом. Но send работает без хэндла, поэтому сначала надо активировать тотал.
Quote:
А TCFS2 какая разница, он же за пределами ТС не работает?

Раньше не работала. Но send может, поэтому она активирует окно тотала (но делать это перед отправкой каждого нажатия считаю излишним).
Quote:
Отсюда поподробней. На чём стоят ограничения?

Ну как, ограничение в том, что если будет активно не окно тотала, нажатия получит неизвестно кто.
Quote:
Смотря что ты понимаешь под нелогичным.

Добавление проверки активного класса для одной единственной функции.
Quote:
Можно узнавать какое активно в момент отправки команды и фиксировать до хэндлу.

Я могу узнать, какое окно активно, но какой его контрол (твоим языком говоря) имеет фокус, не могу. В частности, TPanel - это скорее контрол (контрол-контейнер), чем окно (контролы - это дочерние окна, элементы других окон).
И на данный момент все функции TCFS2 работают только с одни хэндлом окна - главного окна тотала. Его получение производится 1 раз - при инициализации TCFS2.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message  
ICQ Number
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 64, 65, 66 ... 128, 129, 130  Next
Page 65 of 130

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group