• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#拦截系统消息

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

    看到个软件蛮好玩的,叫做ULOGON,它可以让你只有插入了正确的U盘系统才能工作。其实我们也可以简单的用C#来实现这个功能,本文首先来讨论如何拦截系统的U盘插入消息。
    以前写EFFECTIVEKEY软件的时候就要拦截系统键盘按键消息,但是那时是直接网上拉过来用了,没有仔细研究。今天期末考完了就好好分析下。
    首先我们看下有哪几种拦截系统消息的方法:

以上转自淘软网-水兰色心情版主
    而上次写的软件用的就是第二种方法。因为习惯了,这次还是用这种方法吧。
    现在我们改写这个方法,我们必须知道U盘插入拔出的系统消息。这里我整理了下,告诉大家
DEVICECHANGE   0X219
DEVICEARRVIE    0X8000
DEVICEREMOVE   0X8004

    我们拦截了DEVICECHANGE然后用tostring()方法:
msg=0x219 (WM_DEVICECHANGE) hwnd=0x50e54 wparam=0x8000 lparam=0x475e89c result=0x0
    也就是说,当有驱动器加载时是发送WM_DEVICECHANGE消息,但是判断驱动器是加载还是卸载就要判断WPARAM字段是DEVICEARRIVE还是DEVICEMOVE,所以我们编写如下测试代码。
    程序说明:
编译环境:VISTA+VS2005(C# WINDOWS FORM)
窗体设计:一个TEXTBOX(NAME: TextBox_Message)
        protected override void WndProc(ref Message m)//监视Windows消息
        }
    知道有U盘插入后我们可以判断插入的U盘中有没有我们需要的证书文件,如果没有就锁了电脑~呵呵。
    思路就是这样,当然是十分简单的实现,如果真想写的好点可能还需要重写GINA.DLL,有兴趣的自己去MSDN查查资料吧。

最后祝大家元旦快乐~

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap