Тема: Поиск множества окон одного процесса и отправка в них нажатий клавиш
Всем привет. Вот привела в замешательство реализация такой задачи:
Хочу сделать скрипт, который будет по имени процесса находить все созданные им окна и отправлять в них нажатие клавиши. Для простоты рассмотрим на примере блокнота
Search:
Loop {
Process, Exist, Calc.exe ; нашли процесс
PID := %name+1% ; - начинается первая запарка. Тут бы надо прописать математическую функцию сложения A+n= An. То есть цикл поиска пидов данного процесса, при нахождении каждого нового пида, должно присваивать ему имя переменной N+1. Для первого найденного окна это будет N, для второго N1, для третьего N2 и т.д
Gosub, SendKey
}
SendKey:
СontrolSend,, клавиша, ahk_id %name+1%; Вот тут вторая заковырка. Нужна функция, которая будет подставлять в переменную %name+1% все найденные при поиске переменные с PID'ами процессов
Я конечно понимаю, что можно пойти простым путем и сделать так:
key x::
gosub, Search
return
Search:
Process, Exist, Calc.exe
PID := %name%
Process, Exist, Calc.exe
PID := %name1%
Process, Exist, Calc.exe
PID := %name2%
Process, Exist, Calc.exe
PID := %name3%
Process, Exist, Calc.exe
PID := %name4%
Gosub, SendKey
return
SendKey:
СontrolSend,, клавиша, ahk_id %name%
СontrolSend,, клавиша, ahk_id %name1%
СontrolSend,, клавиша, ahk_id %name2%
СontrolSend,, клавиша, ahk_id %name3%
СontrolSend,, клавиша, ahk_id %name4%
return
Но это сгодится только если я знаю, сколько будет запущенно процессов и соответственно окон, а хочется добиться универсальности.
Как я написал выше, примерное понимание как это должно быть у меня есть, но технической оснащенности и знаний синтаксиса языка мне не хватает. Помогите пожалуйста примером, как это должно быть грамотно реализовано.