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