終於調試完成,已支持XP和Win7,這個小程序中間出現了若干問題,慢慢道來。
HOOK實現的各個按鍵的加鎖。
剛開始桌面,任務欄直接用的隱藏(SW_HIDE),但是出現的問題是,鎖屏之後這些的確都消失了,但是當雙擊屏幕上的區域是,有時開始菜單會自動彈出。
百思不得其解,猜測開始菜單是任務管理器上的一個Button,可能是鉤子函數部分功能導致的該問題。
解決辦法:結束:explorer.exe
方法一:
TerminateProcess(id, 1);
該方法出現問題,網上查了很多資料,通過這樣的方式結束explorer.exe系統會自動再開啓這個Shell進程。
需要在註冊表中將
"Software\\Microsoft\\Windows\ NT\\CurrentVersion\\Winlogon"
子項中的AutoRestartShell設置爲 0
也有的說將註冊表該位置的Shell子項中的值指向任意一個不是explorer.exe的內容(若指向別的值,PC重啓之後會因爲找不到Shell指向的內容而出現加載不了explorer.exe)
該方法在Win7下應該是可以的,但是在XP下還是不可以。
方法二:
system("taskkill /im explorer.exe /f"); //結束explorer.exe
system("start explorer.exe"); //打開explorer.exe
通過該命令結束explorer.exe命令可以實現結束explorer.exe的效果。
方法三:
"Software\\Microsoft\\Windows\ NT\\CurrentVersion\\Winlogon"
將該註冊表項下的Shell子項指向你的應用程序,則,在開機的時候,則會出現你的程序即爲默認的Shell加載程序。
所以explorer.exe相當於被禁掉了,開啓不了了。
上面就是在結束explorer.exe時遇到的問題和相應的解決方法。