通过向命令窗口发送击键来注入命令?
答
快速和脏方法:
使用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
你是什么意思下的“注入命令”?你打算修改正在运行的应用程序还是仅仅发送输入到控制台? – 2011-05-13 09:22:59
只需将输入发送到控制台。 – Paul 2011-05-13 09:33:42