1 (изменено: 3axap, 2015-06-16 15:33:09)

Тема: Посылка клавиши с удержанием в неактивное окно игры.

Здравствуйте. Нашел среди примеров как передать что-либо в неактивное окно.
В примере отправляют текст в консольное окно.
Мне же понадобилось отправить в свернутое окно игры нажатие кнопки CapsLock, при чем не кратковременное, а скажем секунды 3 ({key Down} пробовал, не срабатывает). Так же возникла проблема с именем процесса, в примере это cmd.exe, а в тренировке на скажем Тотал Командере вышло управлять процессом только по имени окна.

Мой тренировочный код:


ControlSend, Edit1, This is a line of text in the notepad window., Untitled
SetTitleMatchMode, 2

Loop
    {
    ;    Рандомно тыкаем кнопку
    Random, t, 1, 3
    Sleep, t * 1000    

    ;    Нажимает TAB в не активном окне Тотал Коммандера
    ControlSend, , {sc00F}, Total Commander 8.0 - BMW-Car IT GmbH

    SoundPlay, Sounds\Play.wav ;просто индикация
    }
Return

Pause::Pause
#F6::Pause

Не выходит его модифицировать под нажатие с Down и Up и применимо к процессу totalcmd.exe, а не titlename. Заранее спасибо.

2

Re: Посылка клавиши с удержанием в неактивное окно игры.

Ап

3 (изменено: Flasher, 2015-06-24 18:45:30)

Re: Посылка клавиши с удержанием в неактивное окно игры.

Что касается непосредственно Tab, то команда такая: ControlSend,, {Tab}, ahk_class TTOTAL_CMD
А вот нажимать навигационные кнопки в ТС можно только применительно к хэндлу, т.к. класс TMyListBox относится сразу к нескольким компонентам окна.
А как вычислить HWND-идентификатор у некольких дочерних пассивных окон с одним классом я себе не представляю.
Хотя нет, Тотал вообще не воспринимает ControlSend с такими клавишами. Т.е. придётся ещё и активировать окно:

WinActivate, ahk_class TTOTAL_CMD
Send, {DOWN}

4

Re: Посылка клавиши с удержанием в неактивное окно игры.

Flasher пишет:

Что касается непосредственно Tab, то команда такая: ControlSend,, {Tab}, ahk_class TTOTAL_CMD
...

Видать я выбрал не правильную программу для теста. Дело в том, что игруля дома, а на работе работе (тотал? ). Игрушка эта Gta5

wintitle: Grand Theft Auto V
winclass: grcWindow

ControlSend вообще не хочет никак приниматься. Ни то что с Down, а даже просто.