2013-05-27 2 views
2
Func OpenSHK() 
    global $Loginx = 0, $Loginy = 0, $Playx = 0, $Playy = 0 
    Run(@ProgramFilesDir & "\Stronghold Kingdoms\StrongholdKingdoms.exe") 
    WinWaitActive("Stronghold Kingdoms") 
     If WinExists("Stronghold Kingdoms") Then 
     SendKeepActive("Stronghold Kingdoms") 
     Else 
     WinWait("Stronghold Kingdoms") 
     SendKeepActive("Stronghold Kingdoms") 
     EndIf 
    Sleep(5000) 
    Send("testphrase") 
    Local $search = _ImageSearch('pics/LoginButton.bmp', 0, $Loginx, $Loginy, 0) 
     If $search = 1 Then 
     MouseMove($Loginx, $Loginy, 20) 
     MouseClick("left") 
     Else 
     Do 
      $search = _ImageSearch('pics/LoginButton.bmp', 0, $Loginx, $Loginy, 0) 
      sleep(5000) 
     Until $search = 1 
     MouseMove($Loginx, $Loginy, 20) 
     MouseClick("left") 
     EndIf 
    Sleep(5000) 
     Local $search = _ImageSearch('pics/PlayButton.bmp', 0, $Playx, $Playy, 0) 
     If $search = 1 Then 
     MouseMove($Playx, $Playy, 20) 
     MouseClick("left") 
     Else 
     Do 
      $search = _ImageSearch('pics/PlayButton.bmp', 0, $Playx, $Playy, 0) 
      sleep(5000) 
     Until $search = 1 
     MouseMove($Playx, $Playy, 20) 
     MouseClick("left") 
     EndIf 
    WinWaitActive("Stronghold Kingdoms - World 8") 
    sleep(10000) 
EndFunc 

이 함수는 6 행에 도달 할 때까지 정상적으로 작동합니다. 테스트 문구를 보내지 않고 그 이유를 파악할 수 없습니다.AutoIt Send()가 작동하지 않습니다.

감사합니다.

답변

3

코드에서 많은 오류가 있습니다

  1. Run("@ProgramFilesDir\Stronghold Kingdoms\StrongholdKingdoms.exe")winwaitactive 아마 통과하지됩니다 이유 Run(@ProgramFilesDir & "\Stronghold Kingdoms\StrongholdKingdoms.exe")
  2. 해야한다. 윈도우가 존재하는 경우가 아니라 루프가 있는지 확인하십시오.
  3. 윈도우가 당신이 다음을 활성화하거나 SendKeepActive를 사용할 수있는 경우
  4. (I가 그것이라고 무슨 생각합니다.)
+0

좋아, 그래서 당신이 말한 바뀌었고, 루프를 만들었지 만, 보내기 기능은 아직 보내지 않습니다. 보낼 수있는 내용을 입력 할 수 있지만 보낼 수는 없습니다. 새 코드를 1 초 안에 업로드하겠습니다. – NathanG

+0

메인 포스트에 새 버전을 올렸습니다. – NathanG

+0

'send'를 사용할 때 윈도우가 활성화되어 있습니까? –

-1

내가 AutoIt을 작업하고 (같은 프로그램 : 대한) 비슷한 문제가 있었다, 나는 때때로 통제 종목을 사용하는 것을 끝내 었다고 생각하고, 다른 시간에 보냅니다. 또한 핸들에 들어가서 특정 텍스트 상자를 활성화하도록 autoit에 말했습니다.

관련 문제