我为CMD.EXE创建一个隐藏的窗口过程,如下所示:
// Create the process start window.
var processStartInfo = new ProcessStartInfo("cmd.exe", null);
// Set the options.
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;
processStartInfo.CreateNoWindow = true;
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// Specify redirection.
processStartInfo.RedirectStandardError = true;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
// Create the process.
currentProcess = new Process();
然后我通过重定向流自己处理所有输入/输出。但是,我希望“tab”显示自动完成数据。我尝试将'\ t'发送到输入流 - 没有快乐。如果窗口可见,我在进程结构中有窗口句柄,可以将其设置为前台并使用“SendKeys”。但这是不可接受的,因为我需要窗口不可见。
那么有没有人知道如何将键击发送到进程ID?
提前致谢!
答案 0 :(得分:0)
代码项目中有一个项目可以满足您的需求。它是关于如何将密钥发送到另一个应用程序的教程。这确实需要是一个活跃的窗口。
我知道你的窗户需要隐藏,只是将它移到屏幕的可视区域之外吗?所以它仍然可见,但不在可见区域。
http://www.codeproject.com/Articles/18366/Sending-Keystrokes-to-another-Application-in-C
此外,您是否可以直接启动进程而不是调用cmd.exe。
例如,调用ipconfig.exe而不是cmd.exe并发送ipconfig.exe按键。