首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autoit ControlSend

Autoit ControlSend
EN

Stack Overflow用户
提问于 2013-02-09 01:20:49
回答 1查看 11.6K关注 0票数 0

只是试着用ControlSend()来模拟击键。因为某种原因它不起作用。

代码语言:javascript
复制
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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2013-02-09 16:15:26

您可以首先使用WinGetHandle接收窗口的句柄,然后在ControlSend函数中使用该句柄,该函数应该可以工作。如下所示:

代码语言:javascript
复制
$handle = WinGetHandle("[TITLE:PokeMMO; CLASS:LWJGL]")
ControlSend($handle, Default, $handle, "{Down}")

尝试首先显示句柄的内容以确认,您正在接收一个工作句柄。比如ConsoleWrite($handle)MsgBox(1, "Handle", WinGetTitle($handle))

去,试试看;-)

祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14783920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档