1 (изменено: belovres, 2016-01-18 16:58:59)

Тема: AHK: Работа с несколькими неактивными окнами

Здравствуйте. Поискав на форуме нашел скрипт на отправку нажатия в неактивное окно.

F12:: ;горячая клавиша

    WinGet, L, list, Безымянный - Блокнот ;Получаем кол-во открытых блокнотов и их ID

    If L<2 ;Если открытых безымянных блокнотов меньше двух то выход
{
    ExitApp ;Выход
}
    WinGet, PID2, PID, ahk_id %L2% ;Получаем PID  процесса №2 (т.е. неактивного в данный момент!) по его ID

    ControlSend, , 12345 {ENTER}, ahk_pid %PID2% ;Отправляем в окно №2 - 12345 и enter

Return

Изучив справку, и документацию так и не понял как изменить этот скрипт для того, чтобы клавиши отправлялись не только во второе, но и третье, четвертое, да и во все остальные окна кроме активного. Есть конечно вариант с дублированием строк WinGet и ControlSend, но почему то этот вариант своим только видом меня пугает.

Вообщем вопрос, подскажите как можно переделать этот скрипт чтобы он перебирал все неактивные окна(а их может быть случайное количество) и отправлял туда одну и туже комбинацию.

Если мой вопрос Вам показался глупым прошу не обращать внимания, т.к. мои познания ahk стремятся к нулю. И заранее прошу прощения за беспокойство.

2

Re: AHK: Работа с несколькими неактивными окнами

belovres, дайте, пожалуйста, теме осмысленный заголовок. Да, и точка в заголовках не ставится.

3

Re: AHK: Работа с несколькими неактивными окнами

F12::
WinGet, L, list, Безымянный - Блокнот ;Получаем кол-во открытых Блокнотов и их ID
MsgBox, Число окон, подходящих под описание, равно %L%

Loop, %L%
{
IF A_Index = 1
Continue
ahk_id_var :=  L%A_Index%
WinGet, PIDvar, PID, ahk_id %ahk_id_var%
MsgBox, Окно №%A_Index% `n Идентификатор процесса: %PIDvar% `n идентификатор окна: %ahk_id_var%
;  ControlSend, , 12345 {ENTER}, ahk_pid %PIDvar%
}

Нужное раскомментировать, ненужное - закомментировать.

4

Re: AHK: Работа с несколькими неактивными окнами

Оу... Великолепно. Огромное спасибо, все работает, а я и не знал что цикл создает инкриминируемую переменную.  Да и вот такое склеивание. Вообщем огромное спасибо, еще раз.