在Autohotkey和python之间进行通信

时间:2011-05-26 07:40:08

标签: python autohotkey

有没有办法从autohotkey发送一些参数到python。

使用Autohot键我从记事本中读取一些数字并存储在变量中,现在我想将这个数字发送到python代码以进行一些计算。

我的Autohotkey代码是:

controlGetText, telphoneNumber, Edit1, Untitled - Notepad

我想将此telphoneNumber发送到python文件。

我有办法做到吗?

我是否需要创建python的exe文件然后从autohotkey调用? 例如:

RunWait,  C:\Button\button.exe telphoneNumber

或者我是否需要从autohotkey运行命令提示符命令才能运行python程序?类似的东西:

Run Cmd Python  C:\Button\button.py telphoneNumber

我不知道哪个是最好的方式,因为我是Autohotkey的新手。

任何建议都将受到赞赏。

编辑:

但是我成功通过使用来自autohotkey的run命令发送参数,该命令将从命令提示符执行python文件。

Run Cmd \k "Python  C:\Button\button.py %telphoneNumber%"

但是仍然想知道这是否是正确的解决方案,或者是否有其他解决方案?

3 个答案:

答案 0 :(得分:3)

进程间通信能够在Python脚本运行时发送信息。

论坛主题:http://www.autohotkey.com/forum/topic21699.html(该帖子中有一个很好的文档链接)

您也可以使用TCP / IP网络通信(如下面的帖子所示),但这可能不像使用IPC那样灵活。

论坛主题:http://www.autohotkey.com/forum/topic13829.html

答案 1 :(得分:2)

你实现它的方式是实现你想要的最简单,也许是最好的方法。

应用程序之间的通信可以使用您可能想象的更多方法来完成,但只要它不必是实时的,您就可以使用参数调用程序,因为它简单可靠。

答案 2 :(得分:0)

Python COM 服务器允许使用 AHK 直接调用 Python 函数(带参数和返回值)。
你可以这样使用它:MsgBox % pythonComServer.method(args)

您不需要已经在运行 python 脚本。
ComObjCreate() 将实例化一个 python 实例。

不知道pywin32在后台是如何进行进程间通信的,但是使用起来很简单。

此处有 2 个示例:Call python function with arguments and get returned value in autohotkey