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

Pau*_*aul 6 c# command-line sendkeys

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

有什么指针吗?

谢谢,保罗.

Ben*_*ehn 8

快速而肮脏的方法:

使用SetFocus将焦点设置为cmd窗口,然后使用SendInput将键击发送到cmd窗口.

您可以使用 P/Invoke定义从c#调用SendInput:

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

一个SetFocus的

[DllImport("user32.dll")]
static extern IntPtr SetFocus(IntPtr hWnd);
Run Code Online (Sandbox Code Playgroud)

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