将密钥发送到后台应用程序:综合指南
将特定密钥(例如“k”)发送到另一个应用程序的任务,例如记事本,需要对.NET中的进程处理有更深入的了解。让我们深入研究这个问题及其潜在的解决方案。
要将密钥发送到另一个应用程序,该应用程序需要位于前台。在给定的代码中,正在尝试使用 SetForegroundWindow 执行此步骤。但是,实现可能需要进一步完善。
为了在发送密钥之前确保记事本确实是活动窗口,我们应该:
这是代码的增强版本:
[DllImport("User32.dll")] static extern int SetForegroundWindow(IntPtr point); Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); if (p != null) { IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k"); }
如果记事本尚未运行,我们需要启动它并等待它准备好,然后再发送key:
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k");
值得注意的是,如果记事本以提升的权限启动(例如,以管理员身份)并且您的应用程序不是,SetForegroundWindow 调用可能无法正常工作。在这种情况下,请探索替代方法或相应地调整应用程序权限。
以上是如何将密钥发送到 .NET 中的后台应用程序?的详细内容。更多信息请关注PHP中文网其他相关文章!