执行外部应用并发送键事件给它
我找不到适合Python的解决办法。
我可以启动应用程序(用subprocess.Popen或subprocess.call),但我找不到办法来做另外一部分:
我想给刚打开的应用程序发送一系列按键(类似宏)。比如:
Tab
Tab
Enter
Tab
Tab
Delete
...
有没有办法做到这一点,既能在Mac上用,也能在PC上用?如果不行,那只在PC上可以吗?
谢谢你的帮助,
Basil
附言:我知道有一些应用程序可以自动化按键事件,但我想自己做一个。
3 个回答
0
谢谢你的回答。我试着用subprocess.Popen(),但好像不太管用。发送'\t'这个字符串也没效果……它就是没反应……要注意的是,这个应用程序不是基于Python的(它是一个安装程序——基本上就是自动解压缩.zip文件(.exe),而且我有好几百个这样的文件……)
我会尝试其他一些Windows模块的想法……不过我真的更希望能用一些在Mac和PC上都能用的东西……
1
运行 subprocess.Popen()
命令时,传入参数 stdin=subprocess.PIPE
,然后可以使用 Popen 对象的 stdin
文件来向这个进程的标准输入流写入数据。对于你提到的一些命令,标准的字符串转义字符是可以用的(比如 '\t' 表示制表符 TAB)。不过,如果你需要更全面的按键集合,就需要找出旧的 ASCII 表,并通过 chr()
函数来组合这些字符串。
p = subprocess.Popen(['bash',], stdin=subprocess.PIPE)
p.stdin.write('echo "Hello\t\t\tWorld"\n')