1 (изменено: Military, 2017-08-13 18:31:03)

Тема: PoE: Отправка нажатий в одно неактивное окно с одинаковыми именами

Есть простенький скрипт по отправке в неактивное окно нажатий клавиш:


SetTitleMatchMode, 2

NumLock::
Loop, 20
{
SetKeyDelay, 10, 10
ControlSend, ,{enter},Path of Exile
ControlSend, ,%A_Index%,Path of Exile
ControlSend, ,{enter},Path of Exile
sleep, 300
}
GoTo, NumLock
return

NumpadMult:: 
ExitApp

Работает скрипт хорошо, но дело в том что когда я запускаю второе окно игры он начинает отправлять клавиши в ново найденное окно. Окна с одинаковым тайтлом   "Path of Exile".
Задача сделать так чтобы скрипт работал только в том окне в котором он был запущен при его активности, и когда переходишь в другое окно скрипт продолжал работать в предыдущем окне.
Хотелось бы сделать это посредством AHK не переименовывая окна и такого плана.

2

Re: PoE: Отправка нажатий в одно неактивное окно с одинаковыми именами

Получилось чуть-чуть продвинутся:

NumLock::
WinGet, PoeWindow, ID, A ;присваиваем переменной PoeWindow ID активного окна 
Loop, 40
{

SetKeyDelay, 10, 10
ControlSend, ,{enter},ahk_id %PoeWindow%
ControlSend, ,{/}trade %A_Index% en,ahk_id %PoeWindow%
sleep, 200
ControlSend, ,{enter},ahk_id %PoeWindow%
sleep, 1300
ControlSend, ,{enter},ahk_id %PoeWindow%
ControlSend, ,{up},ahk_id %PoeWindow%
ControlSend, ,{up},ahk_id %PoeWindow%
ControlSend, ,{enter},ahk_id %PoeWindow%
sleep, 1300
}
sleep, 3000
Loop, 10 
{
SetKeyDelay, 10, 10
ControlSend, ,{enter},ahk_id %PoeWindow%
ControlSend, ,{/}trade %A_Index% ru,ahk_id %PoeWindow%
sleep, 200
ControlSend, ,{enter},ahk_id %PoeWindow%
sleep, 1300
ControlSend, ,{enter},ahk_id %PoeWindow%
ControlSend, ,{up},ahk_id %PoeWindow%
ControlSend, ,{up},ahk_id %PoeWindow%
ControlSend, ,{enter},ahk_id %PoeWindow%
sleep, 1300
}
GoTo, NumLock
return

NumpadMult:: 
ExitApp

NumpadDiv:: Reload
return

Но теперь проблема в том что когда скрипт закончит цикл он снова пытается получить ID окна, получая при этом ID окна которое активно в данный момент.

3

Re: PoE: Отправка нажатий в одно неактивное окно с одинаковыми именами

Ну так поставьте метку (с одним двоеточием) после WinGet и переходите на неё.

4 (изменено: Military, 2017-08-14 16:26:12)

Re: PoE: Отправка нажатий в одно неактивное окно с одинаковыми именами

YMP Спасибо, работает!
Еще остался один вопрос в роботе скрипта, когда я нажимаю клавиши во время работы например Ctrl иногда происходят сбои. Может быть я не совсем правильным способом отправляю текст?

5

Re: PoE: Отправка нажатий в одно неактивное окно с одинаковыми именами

Не знаю. У меня опыта такого взаимодействия с окнами игр нет.