将AHK转换为Python

6 投票
3 回答
10909 浏览
提问于 2025-04-16 20:42

我正在学习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 个回答

3

还有一个叫做 AutoPy 的库,它可以在不同的操作系统上使用,专门用来实现这个功能。

7

我推荐以下这些模块:

  • SendKeysCtypes:这个模块可以用来发送按键和快捷键到一个窗口。SendKeysCtypes是SendKeys的一个新版本,稳定性更好。我之前用SendKeys的时候遇到过一些问题。

  • PYHK:这个模块可以处理全局热键,也就是接收热键并触发相应的功能。PYHK是基于pyHook的,注册热键非常简单。我写这个模块是因为我和你有一样的想法——我想在Python中实现AHK的功能。

  • win32gui:这个模块用于窗口处理,比如移动和调整窗口大小。我个人更喜欢用win32gui来处理简单的任务,而对于复杂的任务我会用pywinauto。比如说,如果我需要访问一个程序中的菜单(像是文件-新建),我会用pywinauto。

  • mouse.py:这个模块可以用来控制鼠标。这是我找到的最可靠的方法。我使用的版本是一个在stackoverflow上找到的模块的扩展,叫做ctypes mouse_events。

我个人用Python做过几个扑克相关的程序,并且发布了我一些小程序的源代码。你可以在我的网站schurpf.com/poker-software上找到这些源代码。

8

假设你是在Windows系统上工作(别想其他系统能用AHK),你可以看看sendkeys。这个工具可以让你发送键盘输入变得非常简单。如果你想要更强大的功能,可以试试pywinauto

关于快捷键的部分,可以看看pyhook

撰写回答