【问题标题】:Using Python pywin32 to send keystrokes to interactive win32 console application使用 Python pywin32 将击键发送到交互式 win32 控制台应用程序
【发布时间】:2015-06-09 07:08:49
【问题描述】:

所以我一直在尝试使用 Python pywin32 包将输入发送到基于交互式控制台的 win32 exe,它在执行时为我提供了一堆选项,并根据用户键入的输入显示后续菜单。在网上阅读了一些之后,我确实尝试执行以下代码,但它仍然无法将输入发送到程序,所以如果有人能够实现类似的东西,请告诉我。

我一直在尝试的代码如下:

import win32com.client
def main():
    shell = win32com.client.Dispatch("WScript.Shell")
    shell.run('cmd /K cd "E:\\Documents and Settings\\Owner\\Desktop\\pds\\"   && CONVERT.EXE')
    shell.AppActivate('E:\\Documents and Settings\\Owner\\Desktop\\pds\\CONVERT.EXE')
    print("sending keys...")
    shell.SendKeys("trial.bin")
    shell.SendKeys("{ENTER}")

if __name__ == '__main__':
    main()

【问题讨论】:

  • 事实证明,我正在启动 CONVERT.exe 的应用程序正在创建一个子进程,因为我无法将击键传递给该进程。 SendKeys 只将击键传递给它控制的进程。

标签: python python-2.7 pywin32 win32com


【解决方案1】:

我对@9​​87654321@ 库做了一些小的改进。现在它可以像这样处理控制台窗口:

import pywinauto

app = pywinauto.Application.start('cmd.exe', wait_for_idle=False)
app.Window_().TypeKeys('cmd.exe /?{ENTER}', with_spaces=True, pause=0.1)
app.Window_().TypeKeys('{ENTER 7}', pause=0.1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-08
    • 2013-07-28
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2017-01-25
    相关资源
    最近更新 更多