View previous topic :: View next topic |
Author |
Message |
ask-rus

Joined: 10 Nov 2009 Posts: 2077 Location: Russian Federation
|
(Separately) Posted: Thu Feb 28, 2013 18:40 Post subject: |
|
|
Два вопроса, может ли TCFS2:
1) Переименовать секцию *.INI-файла?
2) Закомментировать ключ *.INI-файла?
 _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Feb 28, 2013 18:46 Post subject: |
|
|
1. Это видел?
2. Нет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
ask-rus

Joined: 10 Nov 2009 Posts: 2077 Location: Russian Federation
|
(Separately) Posted: Thu Feb 28, 2013 20:10 Post subject: |
|
|
Flasher wrote: | 1. Это видел?
2. Нет. |
На оба вопроса ответ нет, жаль.
А что если это реализовать в доп. модуле типа TCFS2Tools? Задачи специфические, но спросом будут пользоваться определённо. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sun Mar 10, 2013 20:39 Post subject: |
|
|
Бета 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}`)" |
Если во время отправки нажатий активировать другое окно, клавиши получит оно.  _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
ask-rus

Joined: 10 Nov 2009 Posts: 2077 Location: Russian Federation
|
(Separately) Posted: Mon Mar 11, 2013 07:24 Post subject: |
|
|
А какое значение между нажатиями в мс? Можно ли увеличивать/уменьшать его? _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Mar 11, 2013 09:51 Post subject: |
|
|
На данный момент - никакого. Нажатия просто отправляются, ну а там система помещает их в очередь сообщений активного окна, и дальнейшая обработка уже зависит от тотала. Особого смысла пока в задержке не вижу (объясните, если он есть), разве что в разовых паузах (надо подумать, как их добавить - как вариант, что-то типа {WAIT 400}). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 11, 2013 12:27 Post subject: |
|
|
О, дождались! Спасибо! И не нужны никакие tcimg и подобные грузомонстры.
Даже параметры - сильно! MVV, а к cm_ будут?
А под окнами подразумеваются все без исключения или только диалоги ТС?
MVV wrote: | Если во время отправки нажатий активировать другое окно, клавиши получит оно. | Плохо. А можешь сделать ограничение по классу (как AutoHotKey)?
MVV wrote: | Особого смысла пока в задержке не вижу | Я тоже не вижу. Задержка и так есть - delay. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Mar 11, 2013 17:03 Post subject: |
|
|
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 |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 11, 2013 17:23 Post subject: |
|
|
MVV wrote: | CM-команды не поддерживают передачу параметров по определению. | Имелись в виду эти. Одна таки есть - cm_List.
MVV wrote: | Мне объясняй подробнее, понятия не имею, как оно в AHK. | Пример директивы: #IfWinActive ahk_class TPanel _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Mar 11, 2013 18:28 Post subject: |
|
|
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 |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 11, 2013 19:46 Post subject: |
|
|
MVV wrote: | Если она уж очень нужна | Я не только имел в виду эту команду, но и другие по ссылке.
MVV wrote: | Но после активации окна придется еще ждать, пока оно активируется | Это как?
MVV wrote: | Или разбить активацию окна и отправку нажатий на разные функции, тогда можно добавить функцию проверки класса и/или текста текущего окна | Разбиение будет предполагать увеличение записей в синтаксисе. Лучше объединённую с проверкой класса (с заголовком теряется универсальность). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Mar 11, 2013 20:00 Post subject: |
|
|
Quote: | Я не только имел в виду эту команду, но и другие по ссылке. |
Те команды с параметрами вообще идут особняком. В totalcmd.inc специально написано, что они снабжены номерами исключительно для локализации.
Сейчас создал em_SyncOpen с командой SYNCOPEN и параметром %A, она в состоянии загружать шаблоны.
Code: | TCFS2.exe /ef "tem(`em_SyncOpen ИмяШаблона`)" |
Имелось в виду после отправки команды активации. Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус.
Quote: | Лучше объединённую с проверкой класса |
Толку с проверки класса? В AHK эта проверка внешняя и действует для целого куска скрипта, логично было бы и здесь отдельной функцией проверять класс активного окна (но если тотал вообще неактивен, то и класс будет вообще не тотальный). Но у нас всего одна функция send, которой не всё равно, какое окно активно (остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно), и я не вижу логичного способа добавления параметра класса.
Да и не все окна можно однозначно опознать по классу (а-ля TCx64, где сплошь и рядом Window - впрочем, все равно узнать, какое из дочерних окон активно, все равно нельзя). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 12, 2013 00:06 Post subject: |
|
|
MVV wrote: | Сейчас создал em_SyncOpen с командой SYNCOPEN и параметром %A, она в состоянии загружать шаблоны. | Да кто бы сомневался. Хотелось как раз таки обойти задействование em.
MVV wrote: | Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус. | А проверить?
MVV wrote: | В AHK эта проверка внешняя и действует для целого куска скрипта | Директива для всего скрипта. Но можно делать и для куска.
MVV wrote: | но если тотал вообще неактивен, то и класс будет вообще не тотальный | А TCFS2 какая разница, он же за пределами ТС не работает?
MVV wrote: | Но у нас всего одна функция send, которой не всё равно, какое окно активно | Отсюда поподробней. На чём стоят ограничения?
MVV wrote: | остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно | Да, это я знаю.
MVV wrote: | и я не вижу логичного способа добавления параметра класса | Смотря что ты понимаешь под нелогичным.
MVV wrote: | впрочем, все равно узнать, какое из дочерних окон активно, все равно нельзя | Можно узнавать какое активно в момент отправки команды и фиксировать до хэндлу. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Tue Mar 12, 2013 00:44 Post subject: |
|
|
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 |
|
 |
|
|
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
|