通过发送按键到命令窗口注入命令?

6
我有一个运行基于Web的软件的命令提示窗口。我想用C#编写一个程序,将命令注入正在运行的命令提示窗口中。
有什么建议吗?
谢谢,Paul。

2
你所说的“注入命令”是指什么?你是想修改正在运行的应用程序还是只是向控制台发送输入? - Anton Semenov
只需将输入发送到控制台即可。 - Paul
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接