TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV
Ну, так что про SetFocus?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Фокус на дочернее окно нельзя установить из внешнего процесса.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Ну где-то так. GetFocus/SetFocus не работают между разными процессами.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):нельзя
Вообще-то можно, только другими методами, я полагаю.
См. у nircmd команды win (dlgclick/dlgsettext/dlgsetfocus), dlg/dlgany (click/settext).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Вообще-то можно, только другими методами, я полагаю.
См. у nircmd команды win (dlgclick/dlgsettext/dlgsetfocus), dlg/dlgany (click/settext).
Она у тебя работает? Я попробовал, ничего не происходит. И вызывает она ту же SetFocus, которая возвращает нулевой результат.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я помню, что как-то на XP проверял, что-то работало. А сейчас на 7 не хочет. А смысл автору добавлять неработающие функции? Он, по-твоему, их сам не тестировал? :D
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Если кто-то убедит меня, что его алгоритм работает, я могу копнуть глубже, а пока не вижу в этом смысла, т.к. у меня он не сработал.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Не знаю, что ты называешь дочерними окнами.
Скажем, комстрока в ТС - дочернее окно?
С пом. AHK вставить текст в неё:

Код: Выделить всё

PostMessage, 0x433, 4003,,, ahk_class TTOTAL_CMD ; (на случай, если отключена опционально)
ControlSetText, Edit1, cd "`%`COMMANDER_EXE`%`", ahk_class TTOTAL_CMD
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher,
Есть окна верхнего уровня, а есть дочерние, которые имеют родителей (верхнего уровня или в свою очередь дочерние). Все контролы, элементы управления, которые находятся внутри других окон - дочерние. Комстрока, любая панель, комбобоксы (внутри комбобоксов в свою очередь поля ввода), галочки в диалогах тотала - это дочерние. Но окно тотала и диалоговые окна - это окна верхнего уровня.

Для установки текста достаточно отправить окну сообщение, тут всё просто, а вот для установки фокуса на окно в рамках одного процесса надо вызывать функцию SetFocus.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Но окно тотала и диалоговые окна - это окна верхнего уровня.
И какой из этого вывод?
MVV писал(а):Для установки текста достаточно отправить окну сообщение, тут всё просто
Это "просто" очень бы пригодилось.
MVV писал(а):а вот для установки фокуса на окно в рамках одного процесса надо вызывать функцию SetFocus
Тот же пример установки фокуса в комстроке:

Код: Выделить всё

ControlFocus, Edit1, ahk_class TTOTAL_CMD
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Это "просто" очень бы пригодилось.
Посмотрим, сложно ли прикрутить возможность передачи строк в качестве параметров сообщений.
Тот же пример установки фокуса в комстроке:
Более чем уверен, что AHK ставит хуки и внедряет библиотеки в процессы, поэтому это работает.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Посмотрим
ОК.
MVV писал(а):внедряет библиотеки в процессы
А Procmon-ом это отследить реально?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Думаю, отследить это можно банальным просмотром списка подгруженных в процесс библиотек.

Я посмотрю, может, добавлю эту функцию в TCFS2Tools.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Так как тут успеешь отследить? Команда моментальная. Зациклить?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить