通过向命令窗口发送击键来注入命令?

问题描述:

我有一个运行基于web的软件的命令提示符窗口。我想用C#编写一个程序,将命令注入运行的命令提示符窗口。通过向命令窗口发送击键来注入命令?

任何指针?

谢谢,保罗。

+2

你是什么意思下的“注入命令”?你打算修改正在运行的应用程序还是仅仅发送输入到控制台? – 2011-05-13 09:22:59

+0

只需将输入发送到控制台。 – Paul 2011-05-13 09:33:42

快速和脏方法:

使用SetFocus将焦点设定到cmd窗口,然后使用SendInput到发送键击cmd窗口。

您可以使用this的P/Invoke定义从C#调用SendInput:

[DllImport("user32.dll", SetLastError=true)] 
static extern uint SendInput(uint nInputs, ref INPUT pInputs, int cbSize); 

this一个对SetFocus的

[DllImport("user32.dll")] 
static extern IntPtr SetFocus(IntPtr hWnd); 

为了得到你需要的SetFocus的窗口句柄,您可以使用FindWindow或者使用Process.GetProcessesByName获取适当的cmd进程,然后使用MainWindowHandle属性。

+0

真棒,感谢您的帮助,生病开始挖:-) – Paul 2011-05-13 09:26:47