keybd_event跟SendMessage,PostMessage模拟键盘消息的区别 z
生活随笔
收集整理的這篇文章主要介紹了
keybd_event跟SendMessage,PostMessage模拟键盘消息的区别 z
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先你會發現keybd_event函數中是沒有窗口句柄作為參數的,好奇的你一定會覺得很奇怪,那是因為,keybd_event是全局模擬按鍵的,只對前臺窗口(即當前的活動窗口)才可以,但是如果模擬的按鍵正好也是某個窗口的全局熱鍵消息,那該窗口也能接收到的
? 而SendMessage 、PostMessage是對指定句柄窗口都其作用的,對于做一些一外掛是非常有用的。例如可以做成這樣的效果:即用SendMessage/PostMessage在某一個窗口模擬動作,而同時自己可以在其他窗口做其他事情,互不影響的!
? 但是有一點要注意,很多人在模擬鍵盤消息的時候,都會忘記模擬WM_KEYUP的消息。。。
? 還有一點就是,PostMessage中的窗口句柄參數,可以設置為HWND_BROADCAST,即廣播,但不要理所當然地認為是對所有的窗口都起作用!!!它只對系統的頂層窗口起作用,子窗口是收不到這個消息的!!!
? 還要注意的是SendMessage是沒有HWND_BROADCAST參數的,那是因為,SendMessage總是等發送的消息在對應的窗口消息隊列 中處理完畢后才返回的(這是一種負責的行為), 細想一下就知道為什么SendMessage沒有HWND_BROADCAST參數了!!
總結
以上是生活随笔為你收集整理的keybd_event跟SendMessage,PostMessage模拟键盘消息的区别 z的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法学习】枚举与剪枝(一)
- 下一篇: MDT2012部署问题,MDT中的驱动是