之前自己寫的虛擬桌面程式最近發現在 Windows 7 上
轉到虛擬桌面時熱鍵 windows 熱鍵例如 alt+tab 會失效
但是微軟自己出的 Desktops.exe 都正常
後來發現網路上有人說 Desktops.exe 監控 keyboard 輸入並且 post message 給 explorer
原本以為要 hook keyboard 需要做 inject dll
但是 Desktops.exe 只有一個執行檔並沒有dll
實在搞不懂他是怎麼做到這件事的?
網路上找不到答案
只好做苦工自己 debug desktops.exe
發現他有 call SetWindowsHookEx
threadID 用 0
應該就是要 inject dll 才對阿
dll 在哪裡勒?
原來... WH_KEYBOARD_LL 是 SetWindowsHookEx 的一個例外
在這邊有說到 不需要 inject dll
所以 desktops.exe 的行為的確跟網路上說的一樣
就是 monitor keyboard input 並且 post 給 explorer.exe
沒有留言:
張貼留言