Страница 101 из 130
Добавлено: Вс сен 13, 2015 20:44
Flasher
MVV
Ну, так что про SetFocus?
Добавлено: Вс сен 13, 2015 20:51
MVV
Фокус на дочернее окно нельзя установить из внешнего процесса.
Добавлено: Вс сен 13, 2015 20:58
Flasher
Добавлено: Вс сен 13, 2015 21:48
MVV
Ну где-то так. GetFocus/SetFocus не работают между разными процессами.
Добавлено: Вт сен 15, 2015 04:52
Flasher
MVV писал(а):нельзя
Вообще-то можно, только другими методами, я полагаю.
См. у nircmd команды win (dlgclick/dlgsettext/dlgsetfocus), dlg/dlgany (click/settext).
Добавлено: Вт сен 15, 2015 11:05
MVV
Flasher писал(а):Вообще-то можно, только другими методами, я полагаю.
См. у nircmd команды win (dlgclick/dlgsettext/dlgsetfocus), dlg/dlgany (click/settext).
Она у тебя работает? Я попробовал, ничего не происходит. И вызывает она ту же
SetFocus, которая возвращает нулевой результат.
Добавлено: Вт сен 15, 2015 16:54
Flasher
Я помню, что как-то на XP проверял, что-то работало. А сейчас на 7 не хочет. А смысл автору добавлять неработающие функции? Он, по-твоему, их сам не тестировал?

Добавлено: Вт сен 15, 2015 19:31
MVV
Если кто-то убедит меня, что его алгоритм работает, я могу копнуть глубже, а пока не вижу в этом смысла, т.к. у меня он не сработал.
Добавлено: Ср сен 16, 2015 01:54
Flasher
Не знаю, что ты называешь дочерними окнами.
Скажем, комстрока в ТС - дочернее окно?
С пом. AHK вставить текст в неё:
Код: Выделить всё
PostMessage, 0x433, 4003,,, ahk_class TTOTAL_CMD ; (на случай, если отключена опционально)
ControlSetText, Edit1, cd "`%`COMMANDER_EXE`%`", ahk_class TTOTAL_CMD
Добавлено: Ср сен 16, 2015 10:11
MVV
Flasher,
Есть окна верхнего уровня, а есть дочерние, которые имеют родителей (верхнего уровня или в свою очередь дочерние). Все контролы, элементы управления, которые находятся внутри других окон - дочерние. Комстрока, любая панель, комбобоксы (внутри комбобоксов в свою очередь поля ввода), галочки в диалогах тотала - это дочерние. Но окно тотала и диалоговые окна - это окна верхнего уровня.
Для установки текста достаточно отправить окну сообщение, тут всё просто, а вот для установки фокуса на окно в рамках одного процесса надо вызывать функцию SetFocus.
Добавлено: Ср сен 16, 2015 10:27
Flasher
MVV писал(а):Но окно тотала и диалоговые окна - это окна верхнего уровня.
И какой из этого вывод?
MVV писал(а):Для установки текста достаточно отправить окну сообщение, тут всё просто
Это "просто" очень бы пригодилось.
MVV писал(а):а вот для установки фокуса на окно в рамках одного процесса надо вызывать функцию SetFocus
Тот же пример установки фокуса в комстроке:
Добавлено: Ср сен 16, 2015 11:03
MVV
Это "просто" очень бы пригодилось.
Посмотрим, сложно ли прикрутить возможность передачи строк в качестве параметров сообщений.
Тот же пример установки фокуса в комстроке:
Более чем уверен, что AHK ставит хуки и внедряет библиотеки в процессы, поэтому это работает.
Добавлено: Ср сен 16, 2015 11:26
Flasher
MVV писал(а):Посмотрим
ОК.
MVV писал(а):внедряет библиотеки в процессы
А Procmon-ом это отследить реально?
Добавлено: Ср сен 16, 2015 12:03
MVV
Думаю, отследить это можно банальным просмотром списка подгруженных в процесс библиотек.
Я посмотрю, может, добавлю эту функцию в TCFS2Tools.
Добавлено: Ср сен 16, 2015 12:07
Flasher
Так как тут успеешь отследить? Команда моментальная. Зациклить?