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