1

Тема: AHK: Управление несколькими окнами

Здравствуйте! Возможно ли реализовать перехват определенных клавиш клавиатуры и их последующую передачу окнам с одинаковыми заголовками? Иными словами, раздвоение нажатий клавиатуры на два и более окон.
Скрипт, который вышел у меня, должным образом не работает:


WinGet, chrid, List,  Javascript Key Event Tester – Chromium

F2:: 
   Suspend, Toggle 
Return 

F4::
   ExitApp
Return

#IfWinActive, Javascript Key Event Tester – Chromium
	$W::
		ControlSend,,{W down},  ahk_id %chrid1%
		ControlSend,,{W down},  ahk_id %chrid2%

	W Up::
		ControlSend,,{W up},  ahk_id %chrid1%
		ControlSend,,{W up},  ahk_id %chrid2%
		
return 

2 (изменено: stealzy, 2017-06-18 01:18:48)

Re: AHK: Управление несколькими окнами

У меня ваш код работает.
Должным образом или нет - не знаю, телепаты в отпуск ушли недавно.
Но замечу, что выполнение метки идет до тех пор, пока не встретит Return. А что у вас в коде идет после нажатия W?
Почему $ для одной метки поставили, для другой нет? Они обе нажимают ГК, которые их вызвали.
Впрочем, ControlSend зацикливание не грозит, можно без $.

3

Re: AHK: Управление несколькими окнами

stealzy
что телепаты ушли, это конечно жаль...
Дело в том, что на "$W down" AHK выдает ошибку, пришлось убрать down. Но "W up" без $, как ни странно, заработал.
Должным образом -- это как описано вначале поста. Скрипт должен "раздваивать" все нажатия на W в оба окна с заголовком страницы браузера Chromium / другой программы (нужное подчеркнуть). То есть для проверки работоспособности необходимо заменить "...-- Chromium" во всём коде на требуемый заголовок. У меня почему-то ничего не перехватывает и не отправляет во второе окно с таким же заголовком как у первого.

4

Re: AHK: Управление несколькими окнами

Gector, я пользовался firefox, хромы операции с неактивным окном не особо поддерживают.

5

Re: AHK: Управление несколькими окнами

stealzy
странно, у меня даже на стандартном калькуляторе ничего не вводит. Или он тоже не поддерживает фоновые операции? Думаю, для браузера будет проще что-нибудь с javascript наваять.. Firefox, конечно, тоже вариант.

6

Re: AHK: Управление несколькими окнами

Loop 2 {
	Run calc,,, pid
	WinWaitActive ahk_pid %pid%
}
WinGet chrid, List, ahk_class CalcFrame
WinWaitClose ahk_class CalcFrame
ExitApp

w::
	ControlSend,,{1 down}, ahk_id %chrid1%
	ControlSend,,{1 down}, ahk_id %chrid2%
Return

w up::
	ControlSend,,{1 up}, ahk_id %chrid1%
	ControlSend,,{1 up}, ahk_id %chrid2%	
return 

7

Re: AHK: Управление несколькими окнами

stealzy пишет:

хромы операции с неактивным окном не особо поддерживают.

Всё они поддерживают если неминимизированы - просто перед ControlSend надо фокус устанавливать.

f1::
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_class Chrome_WidgetWin_1
ControlSend, Chrome_RenderWidgetHostHWND1, W, ahk_class Chrome_WidgetWin_1

8

Re: AHK: Управление несколькими окнами

Malcev,
такой код подойдёт для любых программ или только для "хромов"?
Установку фокуса нужно производить один раз при инициализации или перед каждым ControlSend?

9

Re: AHK: Управление несколькими окнами

Тестируйте.