-1

我用来ControlSend()在不同的窗口中发送热键。问题是找到正确的窗口控件。或者控制正确,存在未知问题。这些是控件:

标题:PokeMMO
:LWJGL
controlID:仍然未知
进程:javaw.exe

$handle = WinGetHandle("[TITLE:PokeMMO; CLASS:LWJGL]")
ControlSend($handle, Default, $handle, "{Down}")

没用。

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

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

没用。我也试过这个:

Run("C:\path\path\path\PokeMMO.exe")
WinWait("[CLASS:LWJGL]")
Local $sControl = ControlGetFocus("[CLASS:LWJGL]")
MsgBox(0, "ControlGetFocus Example", "The control that has focus is: " & $sControl)

系统消息:Java 虚拟机启动器 - 发生 Java 异常错误!

YouTube 上的指南告诉安装不同版本的 Java。

4

1 回答 1

0

尝试使用 Title 和 text 参数,但不要使用 controlID 参数,如 "" 或 ''。这也应该有效。祝你好运。

于 2013-02-23T19:13:02.983 回答