一千萬個為什麽

搜索

如何在不失去WinXP焦點的情況下啟動虛擬鍵盤?

我需要從我的應用程序啟動虛擬鍵盤(即click-n-type)以允許用戶在活動字段中輸入。當用戶關註應用程序窗口中的編輯框時,會彈出虛擬鍵盤以允許輸入。

但是,我無法通過一次點擊即可實現此功能。當我使用“start click-n-type.exe”時,鍵盤正常啟動,但編輯框失去焦點。當我使用“start/min click-n-type.exe”時,編輯框保持焦點但鍵盤最小化。有沒有辦法讓焦點保持不變,虛擬鍵盤就位?

最佳答案

通常情況下,我建議您將應用程序加載為進程dll,但這可能需要進行大量的重新編程。相反,這可能會有所幫助:

  • 始終加載您的應用程序,使其不可見
  • 當活動字段獲得用戶輸入時,將表單設置更改為無邊框並始終位於頂部;
  • 現在應該使用您的應用程序。另一個應用程序現在是Z-Order中的下一個應用程序。確保你有窗口句柄;
  • 當有人在虛擬鍵盤上輸入內容或點擊某些內容時,切換焦點(用戶不會註意到,您總是在頂部)並使用 SendKeys ;
  • 然後將焦點切換回您的應用程序。

還有其他編寫此類應用程序的方法,這些方法更順暢,但需要對窗口消息傳遞模型以及如何從其他應用程序加載/卸載dll有很好的理解。

轉載註明原文: 如何在不失去WinXP焦點的情況下啟動虛擬鍵盤?