kharlashkin Posted February 1, 2015 Share 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 Link to comment Short link Share on other sites More sharing options...
Kotyarko_O Posted February 1, 2015 Share 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 @ Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted February 1, 2015 Author Share 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. Link to comment Short link Share on other sites More sharing options...
PinkElfant Posted February 1, 2015 Share Posted February 1, 2015 (edited) Спасибо, буду копать. А то картоха заблочила возможность отправки клавиш в неактивное окно :) Буду надеяться что на уровне python. key_event вертел на * =) все блоки. Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное Edited February 1, 2015 by BrainRegress 1 1 @ Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted February 1, 2015 Author Share Posted February 1, 2015 key_event вертел на * =) все блоки. Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное Мне бы менее сленговый ответ, я не волшебник я не программист же. Функции из dll не вызывал пока, до этого работала просто отправка сообщения об активности WM_ACTIVATE. Link to comment Short link Share on other sites More sharing options...
PinkElfant Posted February 2, 2015 Share 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 @ Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted February 2, 2015 Author Share 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 Link to comment Short link Share on other sites More sharing options...
Recommended Posts