簡體   English   中英

激活熱鍵組合后如何正確模擬鍵盤事件

[英]how to properly simulate keyboard events once a hotkey combination is activated

我有一個注冊用於激活的特定熱鍵組合的程序。 就此問題而言,假設此熱鍵為Ctrl + Alt +D。一旦按下組合鍵,我的程序便會使用SendInput將其他一些鍵盤事件模擬到活動窗口,例如,它可以模擬Ctrl +A。我的問題是Ctrl + A的模擬無法正常工作,因為(我認為)仍然從熱鍵組合中按下了Ctrl鍵。 我想做的解決方案之一是為我的熱鍵組合中的每個鍵發送Key Up事件,然后模擬Ctrl + A,但是我想檢查這是否是正確的處理方法?

首先,要理解經常問有關如何發送鍵盤消息的問題。 我認為您沒有花太多時間尋找以前的答案。 其次,要了解初學者通常會錯誤地認為發送鍵盤消息是最簡單,最有效的解決方案。 事實是,這通常不是最容易的,也不是最有效的,也不是最可靠的。

如果要使用類似Windows的消息,請學習使用Spy ++。 如果您不知道這是什么,請花一點時間來熟悉VS Tools菜單中提供的工具。

一個可能更簡單,更有效和更可靠的解決方案通常是使用WM_GETTEXT和WM_SETTEXT消息。 並預見將來的問題,若要在另一個應用程序中按一個按鈕,則向該按鈕的父級發送BN_CLICKED通知。 您可以使用Spy ++獲得更多有關消息問題的答案。

使用SendInput可能是最適合您的解決方案,但是沒有足夠的需求可以肯定地說。 我認為,SendInput應該是最后的選擇,並且僅在其他可能性不可行時才使用。 請花一些時間閱讀大量與該問題相關的文章和先前的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM