[英]C# send arrow keys to a Proccess
我正在使用以下代码来运行程序,同时可以向其发送字母,空格等按键 和
\\n
输入。 但是,我无法发送箭头键,因为它们没有ASCII值。
string yourApp = "C:\\program";
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.RedirectStandardInput = true;processInfo.UseShellExecute = false;
processInfo.WindowStyle = ProcessWindowStyle.Normal;
processInfo.FileName = "cmd.exe";
processInfo.WorkingDirectory = yourApp;
processInfo.Arguments = "/c abcdef";
Process cmd = Process.Start(processInfo);
cmd.StandardInput.Write(" "); // press space
cmd.StandardInput.Flush();
cmd.StandardInput.Write("\n"); // press enter
cmd.StandardInput.Flush();
cmd.StandardInput.Write("a"); // press a
cmd.StandardInput.Flush();
有任何想法吗?
如果您的另一个进程是一个窗口,则可以使用SendMessage
或PostMessage
将箭头键事件消息放入另一个进程中使用的窗口的消息队列中。 这将在其他过程中模拟实际的键盘箭头键事件,而不是通过StandardInput
模拟。 这将不是小事。
PInvoke.net是一个很好的资源,可为您将要使用的非托管Windows API查找必要的签名。 您首先必须在其他过程中标识正确的Window句柄,然后初始化必要的事件参数并调用SendMessage
(同步)或PostMessage
(异步)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.