ahk controlclick pokerstars等待名单

时间:2011-09-02 19:56:51

标签: autohotkey

我正在编写一个脚本,它会自动点击扑克游戏大厅的等候名单按钮。我试过点击x,y并且它有效,但问题是如果焦点从大厅切换到桌面,点击加注/呼叫按钮 - 灾难。

寻找解决方案,我发现ControlClick可以为我完成这项工作,但我无法让脚本工作。我读到有关ControlClick的parameters needed工作,并使用我使用WindowSpy找到的参数的不同组合,我无法让脚本工作。

以下是我已尝试的一些行 -

a::
SetControlDelay -1
ControlClick PokerStarsButtonClass34, PokerStars Lobby, Waiting List
return

a::
SetControlDelay -1
ControlClick x900 y65, Pokerstars Lobby, Waiting List
return

你可以帮我解决这个问题 - 谢谢

1 个答案:

答案 0 :(得分:2)

首先,我会尝试省略ControlClick调用的WinText参数(这意味着删除尾随的“等待列表”),因为我不确定Stars Lobby是否真的将该文本作为其中的一部分通过窗口间谍可见的文字。 WinTitle应该足够了。

如果您搜索AHK论坛,您会发现有很多人抱怨ControlClick没有正确地向按钮或窗口发送点击。所以你的问题不是唯一的。

现在,afaik ControlClick只是发送WM_LBUTTONDOWN消息的包装器。但是,在某些情况下,当ControlClick失败时,直接发送邮件确实有效。实际上,此功能通常用于为Pokerstars设计的AHK脚本。

PostLeftClick(x, y, hwnd) {
   PostMessage, 0x201, 0x0001, ((y<<16)^x), , ahk_id%hwnd%  ;WM_LBUTTONDOWN=0x201
   PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%hwnd%      ;WM_LBUTTONUP=0x202
}

所以你可以尝试上面的功能,看看它是否有效。您需要首先获取大厅的句柄,使用类似lobbyhwnd := WinExist("Pokerstars Lobby")的内容,然后将lobbyhwnd作为第三个参数传递给上述函数。

如果它不起作用,我建议正常使用Click,但在发送点击之前明确激活大厅,这样你可以确定点击被发送到正确的窗口。例如:

a::
    WinActivate, Pokerstars Lobby
    Click x900, y65
return