屏蔽Windows98/2000/XP任务栏、win键、Ctrl+Esc、Alt+Tab、Ctrl+Alt+Del

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

关于这方面的文章挺多,对任务栏、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.bjjr.com.cn/yefan/SourceCode/YFSysKey.rar

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航