Jump to content
Korean Random
kharlashkin

WoT версии 0.9.4 vs 0.9.5

Recommended Posts

Добрый день! Кто-нибудь, поделитесь оригинальными папочками python скриптов из версии 0.9.4 нужны "\res_bw\scripts" и "res\scripts", выяснилось, что кое-что разработчики поменяли, а я затер раскомпилированные папки версии 0.9.4.

 

Заранее огромнейшее спасибо!

 

Upd.

Итак у меня получается, при определенных условиях, отправлять кнопки клавиатуры. Условия эти - функция FlashWindow. Т.е. когда значек на панели задач мигает оранжевым - игра принимает нажатия клавиш...

Edited by kharlashkin

Share this post


Link to post

Short link
Share on other sites

Спасибо, буду копать. А то картоха заблочила возможность отправки клавиш в неактивное окно :) Буду надеяться что на уровне python.

Share this post


Link to post

Short link
Share on other sites

Спасибо, буду копать. А то картоха заблочила возможность отправки клавиш в неактивное окно :) Буду надеяться что на уровне python.

key_event вертел на * =) все блоки.

Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное

Edited by BrainRegress
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

key_event вертел на * =) все блоки.

Ну или попробывать SetActiveWindow, отправить и обратно, поменять на нужное

Мне бы менее сленговый ответ, я не волшебник я не программист же. Функции из dll не вызывал пока, до этого работала просто отправка сообщения об активности WM_ACTIVATE.

Share this post


Link to post

Short link
Share on other sites

Покопал, пришел к выводу, что это не то.

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 by kharlashkin

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...