1) Переименовать секцию *.INI-файла?
2) Закомментировать ключ *.INI-файла?
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
На оба вопроса ответ нет, жаль.Flasher писал(а):1. Это видел?
2. Нет.
Код: Выделить всё
TCFS2 /ef "tem(`em_cd c:\`)"
TCFS2 /ef "tem(`em_exec notepad`)"Код: Выделить всё
TCFS2 /ef "send(`%(){DOWN}{ENTER}{TAB 2} {ENTER}`)
TCFS2 /ef "send(`notepad ^+{ENTER}{ENTER}`)"Плохо. А можешь сделать ограничение по классу (как AutoHotKey)?MVV писал(а):Если во время отправки нажатий активировать другое окно, клавиши получит оно.
Я тоже не вижу. Задержка и так есть - delay.MVV писал(а):Особого смысла пока в задержке не вижу
Система эмулирует нажатия клавиш, при этом ловит их активное окно. Перед началом эмуляции (в начале каждого вызова send) я делаю окно тотала активным. Если в тотале открыто модальное окно, нажатия получит оно (диалоги установки атрибутов, копирования и т.п., которые блокируют окно тотала).А под окнами подразумеваются все без исключения или только диалоги ТС?
Мне объясняй подробнее, понятия не имею, как оно в AHK. Я и так окно тотала активирую перед началом передачи, так что всё должно быть в порядке, если не переключаться между окнами во время каждого вызова send (что по идее не так-то и просто, т.к. символы посылаются быстро).Плохо. А можешь сделать ограничение по классу (как AutoHotKey)?
Кстати, да, можно же так её делать.Я тоже не вижу. Задержка и так есть - delay.
Код: Выделить всё
TCFS2 /ef "send(`%(){DOWN}{ENTER}`) + delay(100) + send(`{TAB 2} {ENTER}`)"Имелись в виду эти. Одна таки есть - cm_List.MVV писал(а):CM-команды не поддерживают передачу параметров по определению.
Пример директивы: #IfWinActive ahk_class TPanelMVV писал(а):Мне объясняй подробнее, понятия не имею, как оно в AHK.
Думаю, она обрабатывается нестандартно. Обычные CM-команды - это просто сообщения с номерами, строки так передать невозможно (разве что в пределах одного процесса). Если она уж очень нужна, могу предложить сделать EM-команду с TOTALCMD /S=L %A.Имелись в виду эти. Одна таки есть - cm_List.
Из внешнего процесса невозможно узнать, какое дочернее окно тотала имеет фокус ввода (только внедрением DLL). Проверить можно лишь окна верхнего уровня. Но после активации окна придется еще ждать, пока оно активируется, и проверять, совпадает ли класс. Или разбить активацию окна и отправку нажатий на разные функции, тогда можно добавить функцию проверки класса и/или текста текущего окна (опять же, верхнего уровня).Пример директивы: #IfWinActive ahk_class TPanel
Я не только имел в виду эту команду, но и другие по ссылке.MVV писал(а):Если она уж очень нужна
Это как?MVV писал(а):Но после активации окна придется еще ждать, пока оно активируется
Разбиение будет предполагать увеличение записей в синтаксисе. Лучше объединённую с проверкой класса (с заголовком теряется универсальность).MVV писал(а):Или разбить активацию окна и отправку нажатий на разные функции, тогда можно добавить функцию проверки класса и/или текста текущего окна
Те команды с параметрами вообще идут особняком. В totalcmd.inc специально написано, что они снабжены номерами исключительно для локализации.Я не только имел в виду эту команду, но и другие по ссылке.
Код: Выделить всё
TCFS2.exe /ef "tem(`em_SyncOpen ИмяШаблона`)"Имелось в виду после отправки команды активации. Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус.Это как?
Толку с проверки класса? В AHK эта проверка внешняя и действует для целого куска скрипта, логично было бы и здесь отдельной функцией проверять класс активного окна (но если тотал вообще неактивен, то и класс будет вообще не тотальный). Но у нас всего одна функция send, которой не всё равно, какое окно активно (остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно), и я не вижу логичного способа добавления параметра класса.Лучше объединённую с проверкой класса
Да кто бы сомневался. Хотелось как раз таки обойти задействование em.MVV писал(а):Сейчас создал em_SyncOpen с командой SYNCOPEN и параметром %A, она в состоянии загружать шаблоны.
А проверить?MVV писал(а):Я не знаю, возвращает ли управление функция до того, как окно действительно получает фокус.
Директива для всего скрипта. Но можно делать и для куска.MVV писал(а):В AHK эта проверка внешняя и действует для целого куска скрипта
А TCFS2 какая разница, он же за пределами ТС не работает?MVV писал(а):но если тотал вообще неактивен, то и класс будет вообще не тотальный
Отсюда поподробней. На чём стоят ограничения?MVV писал(а):Но у нас всего одна функция send, которой не всё равно, какое окно активно
Да, это я знаю.MVV писал(а):остальные работают не с активным окном, а с самим окном тотала, даже если оно неактивно
Смотря что ты понимаешь под нелогичным.MVV писал(а):и я не вижу логичного способа добавления параметра класса
Можно узнавать какое активно в момент отправки команды и фиксировать до хэндлу.MVV писал(а):впрочем, все равно узнать, какое из дочерних окон активно, все равно нельзя
Пока никак. А с учетом того, что таких команд всего десяток, вообще не вижу проблемы.Да кто бы сомневался. Хотелось как раз таки обойти задействование em.
Не думаю, что AHK более 1 раза сверяет класс окна. Скорее всего, проверяет вначале, а потом работает с этим хэндлом. Но send работает без хэндла, поэтому сначала надо активировать тотал.Директива для всего скрипта. Но можно делать и для куска.
Раньше не работала. Но send может, поэтому она активирует окно тотала (но делать это перед отправкой каждого нажатия считаю излишним).А TCFS2 какая разница, он же за пределами ТС не работает?
Ну как, ограничение в том, что если будет активно не окно тотала, нажатия получит неизвестно кто.Отсюда поподробней. На чём стоят ограничения?
Добавление проверки активного класса для одной единственной функции.Смотря что ты понимаешь под нелогичным.
Я могу узнать, какое окно активно, но какой его контрол (твоим языком говоря) имеет фокус, не могу. В частности, TPanel - это скорее контрол (контрол-контейнер), чем окно (контролы - это дочерние окна, элементы других окон).Можно узнавать какое активно в момент отправки команды и фиксировать до хэндлу.