CSkin博客

标题: 【禁止U盘】C#U盘监视自动强制弹出工具 [打印本页]

作者: 乔克斯    时间: 2014-9-13 10:22
标题: 【禁止U盘】C#U盘监视自动强制弹出工具
C#U盘监视自动强制弹出工具
效果图:


源码说明:
一个USB强制弹出小工具,能够自动弹出刚插入的U盘或手动指定弹出,做成指定工具可对插入的U盘进行数据访问或强制禁用。
监听工具基于系统消息实现,重写了WndProc函数,可以获取到插入U盘的盘符以及其他信息:
[C#] 纯文本查看 复制代码
protected override void WndProc(ref Message m)//监视Windows消息
{
    const int WM_DEVICECHANGE = 0x219;
    const int WM_DEVICEARRVIAL = 0x8000;//如果m.Msg的值为0x8000那么表示有U盘插入
    const int WM_DEVICEMOVECOMPLETE = 0x8004;
    switch (m.Msg)
    {
        case WM_DEVICECHANGE:
            {
                ShowDeviceChanged("WM_DEVICECHANGE");
                if (m.WParam.ToInt32() == WM_DEVICEARRVIAL)
                {
                    DriveInfo[] s = DriveInfo.GetDrives();
                    foreach (DriveInfo t in s)
                    {
                        if (t.DriveType == DriveType.Removable)
                        {
                            richTextBox.AppendText("U盘插入,盘符为:" + t.Name + "\r\n");
                            EjectUsb(t.Name);//强制移除
                            Remove();//强制移除
                            break;
                        }
                    }
                    ShowDeviceChanged("WM_DEVICEARRVIAL");
                    return;
                }
                else if (m.WParam.ToInt32() == WM_DEVICEMOVECOMPLETE)
                {
                    ShowDeviceChanged("WM_DEVICEMOVECOMPLETE");
                    return;
                }
            }
            break;
    }
    base.WndProc(ref m); //将系统消息传递自父类的WndProc
}

需要注意的是该代码只是基础代码,如果想要扩展其他功能例如自动访问数据等只需要根据获取到的盘符来操作就行了。源码中在获取到新的U盘以后立刻进行了自动移除,如果想手动移除就把代码注释掉,就是这两句:
[C#] 纯文本查看 复制代码
EjectUsb(t.Name);//根据盘符初始化设备
Remove();//强制移除


案例源码下载: C#U盘监视自动强制弹出工具.rar (62.83 KB, 下载次数: 158, 售价: 1 金钱)

作者: raining1314    时间: 2015-10-8 17:18
非常感謝  我超需要的
作者: suncathay    时间: 2016-4-13 13:26
非常感謝
作者: qinchun2046    时间: 2017-2-15 12:44
回复来看
作者: 浮雨_One    时间: 2017-3-25 00:29
感谢分享!
作者: 浮雨_One    时间: 2017-3-25 00:29
感谢分享!
作者: skycash    时间: 2017-4-7 21:11
这个真不错 正式我所需要的
作者: dongfei520    时间: 2018-5-28 16:57
感觉还不错了  谢谢
作者: zhp6666    时间: 2018-6-2 20:14
谢谢很不错的资 料
作者: 881966    时间: 2018-12-4 19:28
谢谢分享,学习学习
作者: JoQ    时间: 2019-4-5 10:42
非常感謝
作者: 王柄棋    时间: 2020-8-19 11:28
确实不错,正是想要的




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2