2013-04-16 4 views
1

Я пытаюсь найти способ сделать простого бота, который нажимает на 4 позиции в свернутом окне без необходимости фокусироваться на нем. Это то, что я до сих пор:простой автоматический кликер без фокуса

#include <Misc.au3> 


Local $hDLL = DllOpen("user32.dll") 


While 1 
ControlClick ("Eclipse Flyff", "", "" ,"left" , 1 , 724 , 1067) 
ControlClick ("Eclipse Flyff", "", "" ,"left" , 1 , 757 , 1067) 
ControlClick ("Eclipse Flyff", "", "" ,"left" , 1 , 791 , 1067) 
ControlClick ("Eclipse Flyff", "", "" ,"left" , 1 , 1516 , 1010) 
    If _IsPressed("10", $hDLL) Then 
     ConsoleWrite("_IsPressed - Shift Key was pressed." & @CRLF) 
     ; Wait until key is released. 
     While _IsPressed("10", $hDLL) 
      Sleep(250) 
     WEnd 
     ConsoleWrite("_IsPressed - Shift Key was released." & @CRLF) 
    ElseIf _IsPressed("1B", $hDLL) Then 
     MsgBox(0, "_IsPressed", "The Esc Key was pressed, therefore we will close the application.") 
     ExitLoop 
    EndIf 
    Sleep(250) 
WEnd 


DllClose($hDLL) 

Моя проблема заключается в том, что он не делает, что я думаю, что это может быть заблокирован в игре, но я не совсем уверен, это все еще возможно в AutoIt или я спрашивая слишком много, потому что это мой первый раз, используя его.

Люди говорят мне использовать C#, но я понятия не имею, как это работает с сообщением о сообщении, поэтому у меня действительно есть небольшая дилемма, потому что я не хочу отказываться от того, что я начал.

ответ

0

Вот рабочий пример того, как отправлять нажатия клавиш для минимизированного управления. Сначала вам нужно сначала определить ControlID, а затем даже минимизировать фокус перед отправкой некоторых ключей.

Run("notepad") 
$np = WinWaitActive("[CLASS:Notepad]") 
ControlSend($np, Default, "", "Active" & @CR) 
$control = ControlGetFocus($np) 
WinSetState($np, Default, @SW_MINIMIZE) 

ControlFocus($np, Default, $control) 
ControlSend($np, Default, $control, "Minimized" & @CR) 

 Смежные вопросы

  • Нет связанных вопросов^_^