遮蔽Windows98/2000/XP工作列 win鍵 Ctrl+Esc Alt+Tab Ctrl+Alt+Del
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
關於這方面的文章挺多,對工作列、win鍵、Ctrl+Esc、Alt+Tab的遮蔽,一般方法較為簡單,最多用底層鍵盤鉤子+DLL就能完美解決。但是針對Ctrl+Alt+Del的遮蔽,方法基本有兩種,一種是採用Gina Dll技術,替換Window自帶的MSGINA.DLL,這個技術不僅不易除錯(很容易系統就無法進入了),並且效果很不好,按Ctrl+Alt+Del三鍵雖然不會出現工作管理員,但螢幕閃爍;另一種是採用DLL注入技術,在訊息迴圈中真正遮蔽Ctrl+Alt+Del鍵,效果很好,不會出現第一種方法中的閃屏現象。
本程式就是採用了第二種方法有效的遮蔽了Ctrl+Alt+Del。除此之外,在遮蔽工作列時還有一個技術難點,就是當用戶設定工作列為自動隱藏時,不能很好的遮蔽工作列(在Win2000滑鼠滑到底部,工作列還會出現),在XP下通過API函式SHAppBarMessage很有效的解決了該問題,不過同樣的程式碼在Win2000中不起作用,MSDN有一段話說,在Win2000下無法用程式設定該設定,只能手動設定(天知道微軟為何遮蔽該功能?),所以我也沒有辦法,用API函式keybd_event勉強解決了該問題(如果解決不好,它會提示你關閉工作列自動隱藏功能)。
此外,最大的一個改變是,我把所有的功能整合到一個只有29K的控制元件裡,只需兩個方法就可以完美搞定。
下面是示例原始碼:
'************************************************************
'**模 塊 名:frmDemo
'**說 明:YFsoft 版權所有2004 - 2005(C)
'**創 建 人:葉帆
'**日 期:2004-10-21 15:47:15
'**修 改 人:
'**日 期:
'**描 述:遮蔽系統鍵 Win98/Win2000/WinXP
'**版 本:V1.0.0
'************************************************************
Option Explicit
'************************************************************
'**函 數 名:Command1_Click
'**輸 入:Index(Integer) - 0,1
'**輸 出:無
'**功能描述:遮蔽系統鍵
'**全域性變數:
'**呼叫模組:
'**作 者:葉帆
'**日 期:2004-10-21 15:47:12
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'************************************************************
Private Sub Command1_Click(Index As Integer)
If Index = 0 Then
YFSysKey1.HideSysKey '遮蔽
Else
YFSysKey1.ShowSysKey '顯示
End If
End Sub
-------------------------------
原始碼下載地址:http://www.sky-walker.com.cn/yefan/SourceCode/YFSysKey.rar