Используя AutoIt! 3 (который очень похож на AutoHotKeys), вы будете использовать Send()
(http://www.autoitscript.com/autoit3/docs/functions/Send.htm),, но убедитесь, что игровое окно активно (WinActivate()
), прежде чем вы это сделаете.
Я использовал это для успешного взаимодействия с Second Life (который использует OpenGL). Вам может потребоваться период Sleep()
между симулированными нажатиями клавиш, поскольку не во всех играх реализованы хорошие буферы клавиатуры.
Еслиэто не работает, возможно, игра напрямую обращается к драйверам аппаратного обеспечения, и вы можете подключиться к драйверам клавиатуры.
Если игра опрашивается асинхронно, вы хотите использовать down
иup
Флаги модификаторов:
Send("{left down}") ; hold down the LEFT key
Sleep(10) ; keep it pressed for 10 milliseconds
Send("{left up}") ; release the LEFT key
Определение того, как долго удерживать клавишу нажатой, полностью зависит от того, как часто программа, которой вы пытаетесь управлять, опрашивает клавиатуру; точно знать не получится.