將金鑰傳送到後台應用程式:綜合指南
將特定金鑰(例如「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中文網其他相關文章!