作者: 乔克斯
查看: 7038|回复: 11
打印 上一主题 下一主题

[源码] 【禁止U盘】C#U盘监视自动强制弹出工具

[复制链接]
跳转到指定楼层
楼主
乔克斯 发表于 2014-9-13 10:22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 7038|回复: 11
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();//强制移除


案例源码下载:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 转播转播
回复 论坛版权

使用道具 举报

沙发
raining1314 发表于 2015-10-8 17:18:18 | 只看该作者
非常感謝  我超需要的
板凳
suncathay 发表于 2016-4-13 13:26:26 | 只看该作者
非常感謝
回复

使用道具 举报

地板
qinchun2046 发表于 2017-2-15 12:44:32 | 只看该作者
回复来看
回复

使用道具 举报

5#
浮雨_One 发表于 2017-3-25 00:29:23 | 只看该作者
感谢分享!
回复

使用道具 举报

6#
浮雨_One 发表于 2017-3-25 00:29:47 | 只看该作者
感谢分享!
回复

使用道具 举报

7#
skycash 发表于 2017-4-7 21:11:31 | 只看该作者
这个真不错 正式我所需要的
8#
dongfei520 发表于 2018-5-28 16:57:47 | 只看该作者
感觉还不错了  谢谢
9#
zhp6666 发表于 2018-6-2 20:14:32 | 只看该作者
谢谢很不错的资 料
10#
881966 发表于 2018-12-4 19:28:03 | 只看该作者
谢谢分享,学习学习
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-6-5 13:31, Processed in 0.665015 second(s), 33 queries , Gzip On.

快速回复 返回顶部 返回列表