如何解决将输入管道输入到 windows 可执行文件的文本窗口的 Python 脚本
我一直在尝试编写一个脚本,将任何给定的字符串通过管道传输到 windows 可执行文件的文本窗口 (Screenshot)。我尝试了以下代码(假设可执行文件从 stdin
读取):
p = Popen(r"cod4x18_dedrun.exe",stdin=PIPE,stdout=PIPE,stderr=PIPE)
p.communicate(input=b'test\n',timeout=10)
变化包括:
- 使用
stdin.write()
而不是communicate()
- Popen 的启动信息:
si = STARTUPINFO() si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW si.wShowWindow = SW_HIDE p = Popen(r"cod4x18_dedrun.exe",stderr=PIPE,startupinfo = si) ...
- 尝试输入前等待 x 时间
- 外壳 = 真
可执行文件中的控制台没有显示我试图通过管道传输的任何输入。似乎 communicate()
总是通过超时终止并且返回值(来自 stdout
和 stderr
的数据)也始终为空。从逻辑上讲,超时是有意义的,因为从 EOF
读取时通信等待 stdout
,但返回值为空表明可执行文件不会写入 stdout
或 stderr
无论如何。
我不确定如何确认可执行文件无法从 stdin
获取输入。无论如何,假设可执行文件不接受来自 stdin
的输入,是否存在将输入通过管道传输到可执行文件的文本窗口 (Screenshot) 的方法?
任何有关解决方法的建议将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。