2011-10-05 122 views
2

我已經看過一些示例代碼來開發一個alt-tab鍵盤鉤子,但我似乎並不瞭解整個事情。我知道一個.dll文件被寫入,並以某種方式被注入到所有進程中。C++ Alt-Tab鉤子

是否有從頂部到底部指導如何做到這一點從寫入DLL加載它?

+0

我不確定鍵盤掛鉤是否是正確答案。我傾向於在註冊了原始Alt + Tab熱鍵的進程中使用消息掛鉤。 – CodesInChaos

+0

@CodeInChaos:'Alt + Tab'是一個系統定義的熱鍵,用於在打開的窗口之間進行切換。它不是應用程序定義的熱鍵。 –

+0

@SirRoot:你究竟對它不瞭解?它非常直截了當。該DLL實現了一個回調函數來處理鍵盤事件,然後DLL或EXE調用SetWindowsHookEx()來註冊該OS的回調函數。鉤子是鏈接的,所以當回調被調用時,它需要調用CallNextHookEx()將數據傳遞給鏈中的下一個鉤子。當你完成鉤住鍵盤時,調用'UnhookWindowsHookEx()'釋放你的鉤子。什麼令人困惑呢? –

回答

1

鍵盤掛鉤是一個真正的共享資源,即它依賴於不彼此跺腳的程序。將其中一個插入鏈條總是有點冒險。我能問一下鉤子的用途嗎?你試圖用鉤子最終完成什麼?

+0

我想關閉我的軟件,因爲我正在做一些嵌入式Windows XP的實驗。我不希望用戶使用alt-tab,control-alt-del或其他任何東西來獲得系統的主要用途,並在操作系統周圍釣魚。我讀過鍵盤過濾器或鉤子是防止alt-tab的唯一方法,除非有另一種方式? – SirRoot