将ahk转换为python

时间:2011-07-02 09:39:54

标签: python autohotkey

我正在学习autohotkey和python。我在ahk中编写了这个脚本(并且工作正常!),它在pokerstars客户端中自动连接表(使用tableninja) -

^q::
Loop
{
Send q
Sleep 500
Send {PgUp}
Sleep 500
Send w
Sleep 60000
}
return

我想把它转换成python - 你能不能给我一个关于我可以使用哪些模块来实现这个目标的想法?

python脚本需要做的是(在循环时)键入一个字母(在已经打开的记事本上),向下两行,键入另一个字母,然后在重新开始之前等待一分钟。

我在想 -

import module to auto-type letters
import module that works as timer

def function
    type letter q
    enter
    enter

def function
    type letter w

def function
    sleep

while True
    function
    function
    function

我在教自己如何编码。我还没有达到关于python模块的部分。谢谢!

3 个答案:

答案 0 :(得分:8)

假设您在Windows上工作(不要认为AHK在其他任何地方运行),您应该查看sendkeys。这将使发送击键变得轻而易举。如果你想要更健壮的东西,请看看pywinauto

对于快捷方式部分,请查看pyhook

答案 1 :(得分:7)

我建议这些模块:

  • SendKeysCtypes用于发送击键和向窗口发送快捷方式。 SendKeysCtypes是SendKeys的一个新的更稳定的版本。我过去遇到过SendKeys的问题。

  • PYHK处理全局热键 - 接收热键和触发器功能。 PYHK基于pyHook,使热键注册变得非常简单。我写它是因为我和你有完全相同的想法 - 我想在python中做AHK功能。

  • win32gui用于窗口处理,例如移动大小调整。 我个人更喜欢win32gui用于简短的任务。我使用pywinauto来完成更复杂的任务。例如,我必须访问程序中的菜单(如File-New)。

  • mouse.py来控制鼠标。这是迄今为止我发现的最强大的方法。我使用的版本是我在stackoverflow找到的模块的扩展 - ctypes mouse_events。

我亲自为python做了几个扑克程序。我已经发布了我的小程序的源代码。您可以在我的网站schurpf.com/poker-software上找到它们。

答案 2 :(得分:3)

还有AutoPy,这是一个用于此目的的跨平台库。