deadbead
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: 1. Послать в неактивное окно нажатие клавиши. | Урааа! Нашел рабочий пример на AHK Код: SetTitleMatchMode, 1 ; мы будем искать окно, название которого начинается с заданной строки WinGet, rfo_id, pid, RF Online ; ищем окно рфки, сохраняем идентификатор ее процесса в rfo_id SetKeyDelay, 600, 200 ; между каждым нажатием клавиши будет промежуток ; в 0,6 с, а само нажатие будет длиться 0,2 с SendMessage, 6, 1, -1,, ahk_pid %rfo_id% ; рфка не обрабатывает сообщения, если окно ввода неактивно ; мы "обманем" её, послав сообщение об активации окна ControlSend,, {F9}, ahk_pid %rfo_id% ; "жмем" необходимую кнопку | Из большой любви к AutoIt переделываю на: Код: #Include <WinAPI.au3> #include <WindowsConstants.au3> #NoTrayIcon Opt("WinTitleMatchMode", 1) ; мы буем искать окно, название которого начинается с заданной строки $hWnd = WinGetHandle("RF Online") ; ищем окно рфки, сохраняем идентификатор ее процесса в rfo_id Opt("SendKeyDelay", 600) ; между каждым нажатием клавиши будет промежуток в 0,6 с Opt("SendKeyDownDelay", 200) ; а само нажатие будет длиться 0,2 с _SendMessage($hWnd, $WM_ACTIVATE, 1, -1) ; рфка не обрабатывает сообщения, если окно ввода неактивно ; мы "обманем" её, послав сообщение об активации окна ControlSend($hWnd, "", "", "{F9}") ; "жмем" необходимую кнопку Exit(0) | И не работает! (( Что я не так сделал? (подозреваю, что проблемы в _SendMessage ибо раньше я с этой функцией не работал) Помогите, плиз, найти ошибку. |