鉤子(Hook),是Windows消息處理機(jī)制的一個平臺,應(yīng)用程序可以在上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進(jìn)程所創(chuàng)建的。
13、WH_SHELL Hook
外殼應(yīng)用程序可以使用WH_SHELL Hook去接收重要的通知。當(dāng)外殼應(yīng)用程序是激活的并且當(dāng)頂層窗口建立或者銷毀時,系統(tǒng)調(diào)用WH_SHELL Hook子程。
WH_SHELL 共有5鐘情況:
1. 只要有個top-level、unowned 窗口被產(chǎn)生、起作用、或是被摧毀;
2. 當(dāng)Taskbar需要重畫某個按鈕;
3. 當(dāng)系統(tǒng)需要顯示關(guān)于Taskbar的一個程序的最小化形式;
4. 當(dāng)目前的鍵盤布局狀態(tài)改變;
5. 當(dāng)使用者按Ctrl+Esc去執(zhí)行Task Manager(或相同級別的程序)。
按照慣例,外殼應(yīng)用程序都不接收WH_SHELL消息。所以,在應(yīng)用程序能夠接收WH_SHELL消息之前,應(yīng)用程序必須調(diào)用SystemParametersInfo function注冊它自己。
其實(shí),在MSND之上,也有SetHook的詳細(xì)說明~
相關(guān)推薦:
C++考試輔導(dǎo):內(nèi)存分配的五種方法的區(qū)別 2009年c++二級等考輔導(dǎo):char*和char[]的區(qū)別