kharlashkin 239 Posted February 1, 2015 (edited) Добрый день! Кто-нибудь, поделитесь оригинальными папочками python скриптов из версии 0.9.4 нужны "\res_bw\scripts" и "res\scripts", выяснилось, что кое-что разработчики поменяли, а я затер раскомпилированные папки версии 0.9.4. Заранее огромнейшее спасибо! Upd. Итак у меня получается, при определенных условиях, отправлять кнопки клавиатуры. Условия эти - функция FlashWindow. Т.е. когда значек на панели задач мигает оранжевым - игра принимает нажатия клавиш... Edited February 1, 2015 by kharlashkin Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #247217 Posted February 1, 2015 (edited) @kharlashkin, там, вроде, есть: http://www.koreanrandom.com/forum/topic/15280-pjorion-редактирование-компиляция-декомпиляция-обф/?p=227764 upd: ещё нашёл: https://cloud.mail.ru/public/9e85bce84ddf/0.9.4%20%E2%80%94%20GaMeWoT.Ru/ Edited February 1, 2015 by Kotyarko_O 1 Share this post Link to post Short link Share on other sites
kharlashkin 239 #247256 Posted February 1, 2015 @kharlashkin, там, вроде, есть: http://www.koreanrandom.com/forum/topic/15280-pjorion-редактирование-компиляция-декомпиляция-обф/?p=227764 upd: ещё нашёл: https://cloud.mail.ru/public/9e85bce84ddf/0.9.4%20%E2%80%94%20GaMeWoT.Ru/ Спасибо, буду копать. А то картоха заблочила возможность отправки клавиш в неактивное окно :) Буду надеяться что на уровне python. Share this post Link to post Short link Share on other sites
PinkElfant 25 #247275 Posted February 1, 2015 (edited) Спасибо, буду копать. А то картоха заблочила возможность отправки клавиш в неактивное окно :) Буду надеяться что на уровне python. key_event вертел на * =) все блоки. Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное Edited February 1, 2015 by BrainRegress 1 1 Share this post Link to post Short link Share on other sites
kharlashkin 239 #247281 Posted February 1, 2015 key_event вертел на * =) все блоки. Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное Мне бы менее сленговый ответ, я не волшебник я не программист же. Функции из dll не вызывал пока, до этого работала просто отправка сообщения об активности WM_ACTIVATE. Share this post Link to post Short link Share on other sites
PinkElfant 25 #247319 Posted February 2, 2015 https://www.autohotkey.com/docs/commands/WinActivate.htm http://www.autohotkey.com/board/topic/19330-how-to-send-key-press-with-dllcall/ 1 1 Share this post Link to post Short link Share on other sites
kharlashkin 239 #247322 Posted February 2, 2015 (edited) https://www.autohotkey.com/docs/commands/WinActivate.htm http://www.autohotkey.com/board/topic/19330-how-to-send-key-press-with-dllcall/ Покопал, пришел к выводу, что это не то. 1. Команда делает нужное окно активным - оно мне надо? Мне нужно немного другое. Хотя конечно для решения проблемы в лоб может подойдет. 2. Нажатие кнопки через вызов dll, т.е. я могу обращаться напрямую к user32.dll И говорить Windows, что вот такая-то клавиша нажата, соответственно Винда уже будет отправлять нажатие клавиши по своему усмотрению (активное окно). Попытался сделать "в лоб" - работает через одно место. Но это очень кривое решение: vk31:: IfWinActive, WoT Client SetTimer, Loop, On return Loop: { WinActivate, Безымянный — Блокнот SendMessage, 0x06, 1,,, WoT Client Sleep, 150 IfWinNotActive, WoT Client SetTimer, Loop, off } return vk57:: { ControlSend,, {vk57 Down}, WoT Client KeyWait, vk57 ControlSend,, {vk57 Up}, WoT Client } Return То есть тупо по нажатию кнопки запускается икл который отправляет в окно с танками сообщения об активности окна с клавиатуры, ждет определенное время и если окно активно начинает все сначала. Срабатывает раз на 20-й секунд через 20 :) Методом "научного тыка" пришел к подобному варианту: vk31:: SendMessage, 0x06, 1,,, WoT Client Sleep, 100 IfWinActive, WoT Client SetTimer, Loop, On return Loop: { WinActivate ahk_class Shell_TrayWnd DllCall("mouse_event", uint, 1, int, 1, int, 1, uint, 0, int, 0) SendMessage, 0x06, 1,,, WoT Client Sleep, 100 IfWinNotActive, WoT Client SetTimer, Loop, off } return Срабатывает практически сразу (пару-тройку тактов). Думаю, что картоха попробует опять чего-то сделать в следующем патче - может затереть предыдущее сообщение? Edited February 2, 2015 by kharlashkin Share this post Link to post Short link Share on other sites