首頁 > 後端開發 > C++ > 如何可靠地將鍵盤輸入發送到另一個應用程式?

如何可靠地將鍵盤輸入發送到另一個應用程式?

DDD
發布: 2025-01-04 15:42:38
原創
432 人瀏覽過

How Can I Reliably Send Keyboard Input to Another Application?

如何將金鑰傳送到另一個應用程式:增強指南

將金鑰傳送到其他應用程式是自動化的一個基本方面。雖然提供的程式碼嘗試做到這一點,但它面臨一些挑戰。

問題:

原始程式碼無法將金鑰傳送到記事本,因為它沒有正確啟動應用。設定前台視窗對於所需程式接收擊鍵至關重要。

解決方案:

要成功將金鑰傳送到記事本,程式碼必須先確保應用程式處於活動狀態。這可以透過使用 SetForegroundWindow 函數和目標進程的 MainWindowHandle 來實現。下面的增強程式碼示範了這一點:

// import SetForegroundWindow
[DllImport("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);

private void SendKey()
{
    Process p = Process.GetProcessesByName("notepad").FirstOrDefault();
    if (p != null)
    {
        IntPtr h = p.MainWindowHandle;
        SetForegroundWindow(h);
        SendKeys.SendWait("k");
    }
}
登入後複製

後台發送:

如果不先啟動後台應用程序,則無法將金鑰傳送到後台應用程式.提供的程式碼不支援將密鑰傳送到後台進程。如果記事本未處於活動狀態,按鍵將會遺失。

非管理員應用程式:

如果記事本以管理員身份運行而發送應用程式不是,則該程式碼可能會失敗。這是因為提升的進程對非提升的應用程式的存取受到限制。為了解決這個問題,發送應用程式也必須以管理員身份執行。

以上是如何可靠地將鍵盤輸入發送到另一個應用程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板