使用Python pywin32向交互式win32控制台应用程序发送击键

使用Python pywin32向交互式win32控制台应用程序发送击键,python,python-2.7,pywin32,win32com,Python,Python 2.7,Pywin32,Win32com,因此,我一直在尝试使用Pythonpywin32包将输入发送到一个基于交互式控制台的win32 exe,它在执行时根据用户键入的输入为我提供了一系列选项,随后将显示菜单。在网上阅读了一些内容后,我尝试执行以下代码,但仍然无法将输入发送到程序,因此如果有人能够实现类似的功能,请告诉我 我一直在尝试的代码如下: import win32com.client def main(): shell = win32com.client.Dispatch("WScript.Shell") sh

因此,我一直在尝试使用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()

我在图书馆做了些小改进。现在它可以像这样处理控制台窗口:

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)

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