执行外部应用程序并向其发送一些关键事件

时间:2010-09-10 12:29:49

标签: python wxpython

我无法找到Python的解决方案。

我很擅长启动应用程序(使用subprocess.Popen或subprocess.call),但我找不到另一种方法:

我想向刚刚打开的应用程序发送一系列密钥(一种宏)。像:

标签 标签 输入 标签 标签 删除 ...

有没有办法解决Mac和PC兼容的问题?或者,如果没有,只有PC?

感谢您的帮助, 罗勒

PS。我知道有一些应用程序可以自动执行某些键事件,但我想自己创建。

3 个答案:

答案 0 :(得分:2)

在Windows下,您可以使用古老的SendKeys来执行此操作。有一些实现浮动。一,使用win32 extentions或者两个,甚至还有一对即用modules available

答案 1 :(得分:0)

使用参数subprocess.Popen()运行stdin=subprocess.PIPE命令,然后使用Popen对象的stdin文件将数据写入进程的标准输入流。对于您提到的一些命令,可以使用标准字符串转义(例如TAB的'\ t')。但是,如果您需要更全面的键集,则需要打破旧的ASCII表并通过chr()函数将字符串拼凑在一起。

p = subprocess.Popen(['bash',], stdin=subprocess.PIPE)
p.stdin.write('echo "Hello\t\t\tWorld"\n')

答案 2 :(得分:0)

感谢您的回答。我尝试使用subprocess.Popen(),但似乎它不起作用。发送'\ t'字符串不起作用......它什么都不做......注意应用程序不是基于python的(它是一个安装应用程序 - 基本上,它们是自动解压缩zip文件(.exe)而且我有数以百计......)

我会用一些Windows模块尝试另一个想法...但我真的更喜欢使用Mac和PC兼容的东西......