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

C#锁定USB

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

方法一:通过修改注册表禁用USB

 

      原理:只要把注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\USBSTOR路径下的Start值改成4即可禁用USB(默认为3,即允许USB)。

      优点:简单易行。

      缺点:地球人都知道,很容易识破。

      建议:用一个timer或者创建一个线程,来锁定这个值。

 

      程序代码:

[csharp] 
using Microsoft.Win32; 
 
/// <summary> 
/// 通过注册表启用USB 
/// </summary> 
/// <returns></returns> 
public bool RegToRunUSB()  

    try 
    { 
        RegistryKey regKey = Registry.LocalMachine; //读取注册列表HKEY_LOCAL_MACHINE 
        string keyPath = @"SYSTEM\CurrentControlSet\Services\USBSTOR"; //USB 大容量存储驱动程序 
        RegistryKey openKey = regKey.OpenSubKey(keyPath, true); 
        openKey.SetValue("Start", 3); //设置键值对(3)为开启USB(4)为关闭 
        openKey.Close(); //关闭注册列表读写流 
        return true; 
    } 
    catch (Exception ex)  
    { 
        throw ex; 
    } 

 
/// <summary> 
/// 通过注册表禁用USB 
/// </summary> 
/// <returns></returns> 
public bool RegToStopUSB()  

    try 
    { 
        RegistryKey regKey = Registry.LocalMachine; 
        string keyPath = @"SYSTEM\CurrentControlSet\Services\USBSTOR"; 
        RegistryKey openKey = regKey.OpenSubKey(keyPath, true); 
        openKey.SetValue("Start", 4); 
        openKey.Close(); 
        return true; 
    } 
    catch (Exception ex) 
    { 
        throw ex; 
    } 

方法二:通过独占USB驱动文件禁用USB

 

      原理:如果U盘第一次在某个电脑上使用,电脑会自动安装该U盘的驱动信息,修改C:\Windows\inf\usbstor.inf和C:\Windows\inf\usbstor.PNF这两个文件。假如我们用C#程序以独占的形式打开他们,那么Windows便无法修改这两个文件,U盘驱动安装不上自然无法使用。

      优点:简单易行,不容易识破。

      缺点:只能禁用未在该电脑上使用过的U盘。 www.2cto.com

      建议:一定要注意独占的时候文件打开对象要用类的成员变量(也就是模块级变量),如果用局部变量,会自动被托管程序释放,达不到独占的效果。

 

      程序代码:

      注:以下fs和fs1对象变量我是放在了窗体中,作为窗体类的成员变量。


[csharp] 
using System.IO; 
 
public FileStream fs = null; 
public FileStream fs1 = null; 
 
//以独占方式打开文件 
fs = new FileStream("C:\\Windows\\inf\\usbstor.inf", FileMode.Open, FileAccess.Read, FileShare.None); 
fs1 = new FileStream("C:\\Windows\\inf\\usbstor.PNF", FileMode.Open, FileAccess.Read, FileShare.None); 


作者:yangyuankp


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
java和C#响应输出的相似度发布时间:2022-07-13
下一篇:
[传智播客学习日记]C#中的常用XML函数总结(写XML)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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