2016年3月27日 星期日

The alt+tab hotkey not work in the virtual desktop on Windows 7

之前自己寫的虛擬桌面程式最近發現在 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

沒有留言:

張貼留言