如何将击键发送到隐藏窗口

本文关键字:隐藏 窗口 | 更新日期: 2023-09-27 18:26:20

我为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();

然后,我自己通过重定向流处理所有输入/输出。但是,我希望"选项卡"显示自动完成数据。我已经尝试过将"''t"发送到输入流-没有乐趣。如果窗口可见,我在流程结构中有窗口句柄,可以将其设置为前台并使用"SendKeys"。但这是不能接受的,因为我需要隐形的窗户。

那么,有人知道如何向进程ID发送击键吗?

提前感谢!

如何将击键发送到隐藏窗口

代码项目中有一个项目可以满足您的需求。这是一个关于如何将密钥发送到另一个应用程序的教程。这确实需要是一个活动窗口。

我知道你的窗口需要不可见,可以选择将其移动到屏幕的可视区域之外吗?所以它仍然是可见的,但只是不在可视区域。

http://www.codeproject.com/Articles/18366/Sending-Keystrokes-to-another-Application-in-C

此外,你能直接启动一个进程而不是调用cmd.exe.吗

例如,调用ipconfig.exe而不是cmd.exe并发送ipconfig.exe击键。