标签:style blog http color io os ar for 文件
看到个软件蛮好玩的,叫做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)
知道有U盘插入后我们可以判断插入的U盘中有没有我们需要的证书文件,如果没有就锁了电脑~呵呵。
思路就是这样,当然是十分简单的实现,如果真想写的好点可能还需要重写GINA.DLL,有兴趣的自己去MSDN查查资料吧。
标签:style blog http color io os ar for 文件
原文地址:http://www.cnblogs.com/milantgh/p/4007289.html