【问题标题】:AutoIt Send() Not WorkingAutoIt Send() 不工作
【发布时间】:2013-05-27 18:56:22
【问题描述】:
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


    【解决方案1】:

    你的代码有很多错误:

    1. Run("@ProgramFilesDir\Stronghold Kingdoms\StrongholdKingdoms.exe") 应该是Run(@ProgramFilesDir & "\Stronghold Kingdoms\StrongholdKingdoms.exe")
    2. 这就是为什么winwaitactive 可能永远不会通过的原因。尝试循环来查看窗口是否存在,而不是查看它是否处于活动状态。
    3. 如果该窗口存在,则可以激活它,或者使用SendKeepActive(我想这就是它的名称。)

    【讨论】:

    • 好的,所以我改变了你所说的,并使它成为一个循环,但发送功能仍然没有发送。我可以输入它应该发送的内容,但它没有发送。我会在一秒钟内上传新代码。
    • 在主帖中上传了新版本。
    • 使用send时窗口是否处于活动状态?
    • 我不知道为什么它根本不起作用。很抱歉,我无法为您提供更多帮助。
    • 啊,我想通了。感谢您的帮助:P
    【解决方案2】:

    当我使用 AutoIt 并遇到类似的问题(对于同一个程序 :))时,我想我最终有时使用了 controlsend,而在其他时间使用了 send。 最后我还进入了句柄,并告诉 autoit 激活特定的文本框。

    【讨论】:

      猜你喜欢
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      相关资源
      最近更新 更多