叶帆工作室

嵌入式开发爱好者(十年开发经验,精通C/C++/VC/VB/C#...)

用户操作
[即时聊天] [发私信] [加为好友]
刘洪峰ID:yefanqiu
534480次访问,排名79(-1)好友0人,关注者217
微软MVP / CSDN 2008十大MVB/MSDN中文技术论坛版主
yefanqiu的文章
原创 218 篇
翻译 0 篇
转载 3 篇
评论 1099 篇
叶帆的公告
本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时 请注明[叶帆工作室]及文章链接。yefan@vip.sina.com
【简介】叶帆[微软MVP]
【文章】叶帆文章列表
【软件】叶帆共享软件列表
最近评论
BinYu:我用的是vista home basic sp1,但vs2005强行装不上去,请帮忙分析一下,qq:811344767,先谢谢了
wjh6877:算法想好了吗?

没有就是空话
一生好人:其实我也想来正版,但生活逼人,没办法啊
fox23:something like java card;-)
wwqqha:不错不错
文章分类
收藏
    相册
    叶帆照片
    【叶帆软件】
    [01]VB源码之友(V2.1.548)
    [02]API浏览器.net(V5.0)
    [03]叶帆成语词典(V2.0.8)
    [04]叶帆密码库(V1.2.8)
    【叶帆资源】
    DAO 2.0引擎
    叶帆快速通道
    MSDN-MVP
    Windows Embedded 专题
    中文MSDN
    叶帆圈子--工业自动化
    叶帆工作室(博客园)
    叶帆工控--工业自动化
    叶帆群组--工业应用开发
    微软中文技术论坛
    微软硬件创新中心(HIC)
    瑞康社区论坛
    叶帆友情链接
    张欣
    枕善居
    莫依
    葛涵涛
    郑建
    陈辉
    马宁
    马骐
    魏涛序
    黎波
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

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

    新一篇: 线缆管道截面图(设计)--应CSDN一个帖子而做 | 旧一篇: VBScript脚本运用(脚本程序与宿主程序的交互)

    关于这方面的文章挺多,对任务栏、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

    发表于 @ 2004年10月21日 16:28:00|评论(loading...)|编辑

    新一篇: 线缆管道截面图(设计)--应CSDN一个帖子而做 | 旧一篇: VBScript脚本运用(脚本程序与宿主程序的交互)

    评论

    #yefanqiu 发表于2004-11-13 19:11:00  IP: 211.157.84.*
    该控件的核心是VC(MFC)开发的,估计在你的机子上没有安装VC。安装上VC应该没什么问题。
    不过,最好你在别的机子上试试,我在Win2000上的新机器上试也没什么问题。
    #johnzdq 发表于2004-11-13 16:43:00  IP: 218.2.24.*
    这个控件确实不错,帮我解决了大问题。可在win2000下用,提示找不到库文件,并且提示很多次,所有屏蔽也都失败,不只是什么原因?
    #QQ: 82652439 发表于2004-11-27 03:58:00  IP: 221.194.245.*
    能能 在机子启动是运行屏遮启动完后自动取消屏遮

    如果谁回的话回我一下我的QQ82652439
    emall:wenli293@sohu.com
    #johnzdq 发表于2004-11-27 09:18:00  IP: 211.158.95.*
    我试了,是缺少vc运行库,有了vc运行库,一切OK!
    #love00 发表于2004-12-24 09:52:00  IP: 222.240.236.*
    我要在C#中用你的控件,我该怎么做?
    gongpengrong@topuniv.com
    #zengaaa 发表于2005-01-10 11:26:00  IP: 218.89.77.*
    您好!
    我怎么在C++ Builder 中调用呢?
    谢谢!
    e-mail:zeng0099@yahoo.com.cn
    #zengaaa 发表于2005-01-11 17:29:00  IP: 220.166.2.*
    您好!
    我很喜欢您做的控件,但我在C++ builder 中无法调用,能否编译成DLL格式?
    谢谢!!!
    e-mail:zeng0099@yahoo.com.cn
    #dls 发表于2005-01-14 11:09:00  IP: 220.114.70.*
    你好:
    我用的Delphi7,为什么在安装后找不到呢,是不是不能在Delphi下使用呀?
    谢谢!!
    emain:d_lshuang@163.com
    #c945124 发表于2005-01-29 18:14:00  IP: 202.101.161.*
    楼主,我爱你
    #foxzf 发表于2005-01-31 08:52:00  IP: 218.61.21.*
    你好。叶帆。用你的API浏览器大约也有一年多的时间了吧。和你算注册码也绝对不下四次了。所以在此我特点的感谢你。昨天在我们的论坛上发现了这个OCX,但是在易语言里边没有办法使用。我还不知道是你写的。今天一大早来找你的API升级版本,结果发现这个OCX是你写的啊。太好了。我早想写,但是对于DLL注入技术一直没搞清楚。请你在易语言里边测试一下。谢谢。
    #yefanqiu 发表于2005-02-01 20:11:00  IP: 211.157.83.*
    Delphi7和易语言里边主要看他能不能使用标准OCX控件了。
    此外在C#语言里我已经测试过了,和在VB中一样使用
    (在工具条单击右键,添加组件,在“COM”选项栏中添加这个控件即可)。
    #zenglunguo 发表于2005-02-12 16:58:00  IP: 221.236.91.*
    您好!
    我很喜欢您做的控件,但我在C++ builder 中无法调用,能否编译成DLL格式?
    谢谢!!!
    e-mail:zeng0099@yahoo.com.cn

    #RICKY 发表于2005-02-22 14:51:00  IP: 219.137.78.*

    你好,我很想要你这个控件,但你的控件下载地址已经失效了,能否email一份给我?非常谢谢!!!

    我的email是: rickyandsumy@sohu.com
    #gggitxai 发表于2005-03-28 01:31:00  IP: 220.192.13.*
    能否提供这个ocx的源代码???
    #S 发表于2005-03-29 13:11:00  IP: 61.241.100.*
    vc运行库?一般系统自带的吧?
    #suave 发表于2005-04-18 00:44:00  IP: 220.165.171.*
    你好!看了你的文章非常受用,现在我做一个软件必须要屏蔽了Ctrl+n这个我应该怎么实现,谢谢!如果可以帮忙写封信给我,chong_tao@hotmail.com
    #iyaosan 发表于2005-08-29 18:17:00  IP: 211.100.4.*
    你的控件要有管理员权限才行,如果不用管理员用户登陆,是会出错的,如果把这个BUG,解决了可能会方便些, iyaosan@yahoo.com.cn
    #YF(此YF非彼YF) 发表于2005-11-18 15:50:00  IP: 58.15.26.*
    Dephi7下没法用,想试着改改。
    可YF兄,您这也不是源码啊
    #yefanqiu 发表于2005-11-18 17:39:00  IP: 221.217.149.*
    这是用VB封装的控件,其底层还是用VC做的,Dephi7我不大熟,我也不知道怎么在Dephi7跑起来
    #wital 发表于2005-12-11 21:36:00  IP: 219.144.130.*
    我是刚刚才试用的这个控件,怎么我运行时一按win键,开始菜单照样弹出来。但是任务栏没有出来,接着马上提示winlogon.exe错误,接着就蓝屏,我只有重新启动,启动后提示winlogon.exe错误。我用系统的事件查看器查看结果是:错误应用程序 winlogon.exe,版本 0.0.0.0,错误模块 unknown,版本 0.0.0.0,错误地址 0x00b80000。数据是:0000: 41 70 70 6c 69 63 61 74 Applicat
    0008: 69 6f 6e 20 46 61 69 6c ion Fail
    0010: 75 72 65 20 20 77 69 6e ure win
    0018: 6c 6f 67 6f 6e 2e 65 78 logon.ex
    0020: 65 20 30 2e 30 2e 30 2e e 0.0.0.
    0028: 30 20 69 6e 20 75 6e 6b 0 in unk
    0030: 6e 6f 77 6e 20 30 2e 30 nown 0.0
    0038: 2e 30 2e 30 20 61 74 20 .0.0 at
    0040: 6f 66 66 73 65 74 20 30 offset 0
    0048: 30 62 38 30 30 30 30 0b80000


    我的系统是winxp home 是我惠普本本的OEM系统
    请问这是为什么啊?麻烦帮我解决下,你可以联系我:QQ:373001811 MSN:wital@163.com
    E-Mail":wital@163.com
    #wital 发表于2005-12-11 21:37:00  IP: 219.144.130.*
    忘说了,我是在VB下调用的,并且也是用VB运行的。
    #yefan 发表于2005-12-12 11:46:00  IP: 221.217.134.*
    请问你的XP home打过补丁没有,因为该程序要在winlogon.exe中内存中远程注入一个DLL,来屏蔽系统消息,不应该在重启后出现这个问题。

    你可以试做恢复winlogon.exe文件,看看是否坏了。
    #wital 发表于2005-12-12 18:55:00  IP: 219.144.130.*
    不是你理解错了,是我运行程序的时候按WIN键,开始菜单一弹出来winlogon.exe就出错了,然后就蓝屏,按什么都不管用,我只有强行关机在开机,然后开机系统只是告诉我刚才winlogon.exe错误了,我现在winxp是最新的,所有更新都没拉下,winlogon.exe没损坏。
    #叶帆 发表于2005-12-12 19:31:00  IP: 221.220.133.*
    我在我们公司的其中两台机器上出现这个问题,他们是XP 专业版,SP2补丁,就出现类似情况。

    因为改技术采用DLL注入,所以和具体的系统版本特别相关,如果微软更新类似的补丁,有可能技术就失效了。
    #wital 发表于2005-12-13 17:24:00  IP: 219.144.130.*
    一直想实现这个功能但是自己都没能力做,CSDN问了好多人都说VB没能力,看到你的控件仿佛抓住救命稻草,现在继续茫然ING~谢谢你,我会继续关注你的,相信你能帮我解决问题。谢谢
    #wangtao 发表于2005-12-24 17:08:00  IP: 221.201.111.*
    版主 能不能把“管理员权限”这个问题解决一下

    wtaoboy@163.com

    谢谢
    #yefan 发表于2005-12-28 22:07:00  IP: 221.217.156.*
    目前这种实现的方式,必须“管理员权限”
    #miaoge 发表于2006-01-13 12:41:00  IP: 61.150.43.*
    版主,我的程序在win2000下运行时老是弹出一个错误框:“winlogon.err=找不到指定模块”,但是点了错误框的“确定”后程序也能正常运行,能屏蔽掉系统键,是什么原因阿?
    #miaoge 发表于2006-01-12 21:36:00  IP: 61.150.43.*
    楼主啊 ,我 用 这个控件时运行时老是出错“winlogon.err找不到相应的模块”是怎么回事啊
    就是弹出这个错误框,但是点“确定”后程序也能正常运行,能屏蔽,就是不知道为什么会出现这个错误?
    谢谢了
    #miaoge 发表于2006-01-12 21:42:00  IP: 61.150.43.*
    对了,我的系统是 win2000
    谢谢各位给我指点一下!
    #npumine 发表于2006-01-13 16:31:00  IP: 61.150.43.*
    楼主:我在一个窗体中运行得到一些数据,比如说是全是1,存在一个全局数组中,我在另外一个窗体中调用这个数组,发现数据全变为0 ,请问楼主这是什么原因?我得程序运行在98环境。
    #yefan 发表于2006-01-13 14:14:00  IP: 221.217.153.*
    你系统的补丁是多少?SP3?Sp4?
    你最好给我一个截图,给我发邮件 yefanqiu@sohu.com
    #猫 发表于2006-05-18 10:03:00  IP: 124.147.160.*
    楼主好强啊!

    #jack 发表于2006-06-07 15:11:00  IP: 221.11.190.*
    怎这个控件在service pak2 打过补打的系统运却会被拒绝访问的,有什么办法可以不被拒绝访问.
    #liuhm 发表于2006-06-26 19:39:00  IP: 211.138.28.*
    太感谢了!我正需要这个控件,刚才经过测试,在我的计算机上一切OK!
    #jingang123gz 发表于2008-07-19 09:55:03  IP: 58.42.230.*
    我用C#怎么写代码捏???
    #yefanqiu 发表于2008-07-20 10:13:06  IP: 221.217.159.*
    在C#上直接调用该控件吧。
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 叶帆