2013-02-09 2 views
-1

ControlSend()으로 키 입력을 시뮬레이트하려고합니다. 어떤 이유로 그것은 작동하지 않습니다.Autoit ControlSend

While 1 
    ControlSend("PokeMMO", "", "", "{DOWN}") 
    Sleep(900) 
    ControlSend("PokeMMO", "", "", "{DOWN}") 
    Sleep(900) 
    ControlSend("PokeMMO", "", "", "{DOWN}") 
    Sleep(900) 
    ControlSend("PokeMMO", "", "", "a") 
    Sleep(Random(750, 2000, 1)) 
    ControlSend("PokeMMO", "", "", "a") 
    Sleep(Random(750, 2000, 1)) 
    ControlSend("PokeMMO", "", "", "a") 
    Sleep(Random(750, 2000, 1)) 
    ControlSend("PokeMMO", "", "", "a") 
    Sleep(3000) 
WEnd 

Au3Info :

제목 : РokеММO,
등급 : LWJGL

Global $sProcess = "javaw.exe" ;PokeMMO Process 

ControlSend(_Process2Win($sProcess), "", "", "{DOWN}") 

Func _Process2Win($pid) 
    If IsString($pid) Then $pid = ProcessExists($pid) 
    If $pid = 0 Then Return -1 
    $list = WinList() 
    For $i = 1 To $list[0][0] 
     If $list[$i][0] <> "" And BitAND(WinGetState($list[$i][1]), 2) Then 
      $wpid = WinGetProcess($list[$i][0]) 
      If $wpid = $pid Then Return $list[$i][0] 
     EndIf 
    Next 
    Return -1 
EndFunc ;==>_Process2Win 

답변

0

당신은 먼저 윈도우에 대한 핸들을받을하기 위해 WinGetHandle를 사용하고이 핸들을 사용할 수 있습니다 ControlSend 함수에서 작동해야합니다. 다음과 같이 보입니다 :

작업 내용을 확인하기 위해 먼저 핸들 내용을 표시해보십시오. 이동 ConsoleWrite($handle)처럼 또는 MsgBox(1, "Handle", WinGetTitle($handle))

, 그것을 시도 ;-)
그리고 행운을 빌어 줘!

+1

작동하지 않습니다. 나는 또한 내 자신에 의해 뭔가 다른 것을 시도했다. 나는 그것을 새롭게했다! – RobbyBubble

+0

$ handle의 내용은 무엇입니까? 적절한 제목을받을 수 있습니까? – Samoth

0

"MMO"와 "a"를 보았을 때 비디오 게임 창으로 보내려한다고 가정 할 수 있습니까?

할 수있는 일은 많습니다. 즉, IsBoxer와 같은 창 게임 컨트롤러를 다운로드하면 원격으로 쉽게 키 입력을 보낼 수 있습니다. 대부분의 MMO 블록 .dll은 키 스트로크 보내기를 가능하게합니다.

Vlu