將金鑰傳送到外部應用程式
當嘗試將特定金鑰傳送到另一個應用程式(例如記事本)時,程式設計師可能會遇到阻止程式碼無法如預期運作。本文旨在透過探索程式碼並提供替代解決方案來解決這些挑戰。
提供的程式碼包含以下問題:
要解決這些問題,建議進行以下程式碼修改:
對於已經運行的記事本:
using System.Diagnostics; ... // Get the first running instance of Notepad Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); if (p != null) { // Get the main window handle IntPtr h = p.MainWindowHandle; SafeNativeMethods.SetForegroundWindow(h); SendKeys.SendWait("k"); }
對於啟動記事本並發送金鑰:
... // Start Notepad Process p = Process.Start("notepad.exe"); // Wait for the input queue to stabilize p.WaitForInputIdle(); // Get the main window handle IntPtr h = p.MainWindowHandle; SafeNativeMethods.SetForegroundWindow(h); SendKeys.SendWait("k");
透過實作這些變更,程式碼將首先驗證記事本是否正在運行,並且在啟動記事本的情況下,將等待應用程式完全運行在發送金鑰之前初始化。
非活動視窗注意事項:
雖然不可能直接將密鑰發送到後台應用程序,但有一些方法可以將目標應用程式帶到前台,然後發送密鑰。 SetForegroundWindow 函數允許此功能,如第一個範例中提供的程式碼所示。
以上是如何可靠地將金鑰傳送到記事本等外部應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!