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

时间:2011-05-13 09:18:07

标签: c# command-line sendkeys

我有一个命令提示符窗口,它运行基于Web的软件。我想在C#中创建一个程序,将命令注入到运行命令提示符窗口。

任何指针?

谢谢,保罗。

1 个答案:

答案 0 :(得分:8)

快速而肮脏的方法:

使用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属性。