作爲一個業餘的任何低於VB/VBS(C++的WINAPI是我的經驗的人的噩夢)我不知道如何去構建一個長的lParam C++中的簡單KEYDOWN消息,可能花費更多時間尋找比值得體面的解釋,有人能夠準確描述如何去做這件事?C++ WINAPI:如何使用SendMessage/PostMessage WM_KEYDOWN lparam
看來,在其他論壇上幾乎對這個問題的每一個迴應都是「爲什麼」或「使用SendInput」,而沒有真正回答問題;我猜測這對於人們來說太簡單了。反正這裏是從MSDN的描述,非常感謝一個體面的解釋或鏈接到一個可以和樣例如果可能的話:
重複計數,掃描代碼, 擴展鍵標誌,上下文代碼, 以前鍵狀態標誌和 轉換狀態標誌,如圖所示...
0-15當前 消息的重複計數。該值是按鍵 乘以 鍵的自動重複次數 。如果足夠長的擊鍵長度,則發送多個消息。 但是,重複計數不是 累計。 16-23掃描碼。 值取決於OEM。
24表明密鑰是否是 擴展鍵,如右側 ALT和CTRL鍵出現一個 增強101或102鍵鍵盤上。如果它是擴展密鑰,則 的值爲1; 否則爲0. 25-28保留;做 不使用
29上下文代碼。如果 ALT鍵處於關閉狀態,而按鍵爲 則值爲1;如果WM_SYSKEYDOWN 消息被髮布到活動窗口 ,則爲0,因爲沒有窗口具有焦點的鍵盤 。
30上一個關鍵狀態。如果密鑰在發送 消息之前關閉,則值爲 ;如果密鑰 已啓動,則值爲0。
31過渡狀態。對於WM_SYSKEYDOWN消息,值爲 始終爲0。
改爲使用SendInput。真。如果您不相信,請提出一個問題。 – 2010-10-23 10:58:57
對SendMessage最感興趣的是在自動GUI界面中處理重複任務的對話框(例如,在由CMS控制的數據庫中添加/更新記錄,這將不允許直接訪問SQL數據庫);理想情況下,這可以做到沒有失去焦點的風險,所以沒有整個計算機佔用。沒有強大的編碼背景,所以它似乎是處理輸入類型=「文件」元素的最簡單/最安全的方式,而不是直接尋址表單 – 2010-10-24 13:18:26