C#怎么判断我当前插入的移动设备是U盘
C#怎么判断我当前插入的移动设备是U盘我是想,当电脑开机,登录后,自动锁屏(即:屏蔽按键功能.我已经做好了,还写了个简单的屏蔽动画在顶层显示,就差这个检查移动设备类型了....
C#怎么判断我当前插入的移动设备是U盘
我是想,当电脑开机,登录后,自动锁屏(即:屏蔽按键功能.我已经做好了,还写了个简单的屏蔽动画在顶层显示,就差这个检查移动设备类型了.),当用户执行了按键事件时,就转到类似,我自己写的屏蔽程序界面(类似开机的登录界面),可供用户密码输入.或是U盘解锁
现在只缺的功能是...
当我插入U盘时...系统检查到当插入移动设备...是否存在我自身指定的一个U盘(U盘里带自己指定的识别功能)..,如果存在..则解锁...否则,马上锁屏,屏蔽按键.执行我自己写的屏蔽动画,(程序)...
还有一些疑问..就是想知道怎么用C#操作gpedit.msc(组策略)的登录脚本的添加,删除,编辑(即:总体操作)
最好把需求分析写一下...需要用到哪些技术...
100分...如果回答得好...有效性高...多加100-200分...
谢谢...
忘记说声,这U盘要实现的功能是:
即插即解...
即拔即锁... 展开
我是想,当电脑开机,登录后,自动锁屏(即:屏蔽按键功能.我已经做好了,还写了个简单的屏蔽动画在顶层显示,就差这个检查移动设备类型了.),当用户执行了按键事件时,就转到类似,我自己写的屏蔽程序界面(类似开机的登录界面),可供用户密码输入.或是U盘解锁
现在只缺的功能是...
当我插入U盘时...系统检查到当插入移动设备...是否存在我自身指定的一个U盘(U盘里带自己指定的识别功能)..,如果存在..则解锁...否则,马上锁屏,屏蔽按键.执行我自己写的屏蔽动画,(程序)...
还有一些疑问..就是想知道怎么用C#操作gpedit.msc(组策略)的登录脚本的添加,删除,编辑(即:总体操作)
最好把需求分析写一下...需要用到哪些技术...
100分...如果回答得好...有效性高...多加100-200分...
谢谢...
忘记说声,这U盘要实现的功能是:
即插即解...
即拔即锁... 展开
4个回答
展开全部
/// <summary>
/// (string)返回中文的磁盘类型表达
/// </summary>
/// <param name="driveType">英文磁盘类型表达</param>
/// <returns>string</returns>
public static string returnCnDriver(DriveType driveType)
{
string tempStr = string.Empty;
switch (driveType)
{
case DriveType.CDRom:
tempStr = "光驱盘符";
break;
case DriveType.Fixed:
tempStr = "固定磁盘";
break;
case DriveType.Network:
tempStr = "网络磁盘";
break;
case DriveType.NoRootDirectory:
tempStr = "无根目录";
break;
case DriveType.Ram:
tempStr="RAM磁盘";
break;
case DriveType.Removable:
tempStr="可移动盘";
break;
default:
tempStr="未知类型";
break;
}
return tempStr;
}
/// (string)返回中文的磁盘类型表达
/// </summary>
/// <param name="driveType">英文磁盘类型表达</param>
/// <returns>string</returns>
public static string returnCnDriver(DriveType driveType)
{
string tempStr = string.Empty;
switch (driveType)
{
case DriveType.CDRom:
tempStr = "光驱盘符";
break;
case DriveType.Fixed:
tempStr = "固定磁盘";
break;
case DriveType.Network:
tempStr = "网络磁盘";
break;
case DriveType.NoRootDirectory:
tempStr = "无根目录";
break;
case DriveType.Ram:
tempStr="RAM磁盘";
break;
case DriveType.Removable:
tempStr="可移动盘";
break;
default:
tempStr="未知类型";
break;
}
return tempStr;
}
展开全部
一楼的正确。坚实监视WINDOWS消息。
这么做最好,最及时。
问题补充:
是的,当你插入U盘的时候WINDOWS会产生一条消息,用一楼的方法获取消息的类型,判断如果是U盘的话,再判断这个U盘的硬件序列号(序列号是唯一的),如果是你允许的序列号则解锁。
同样当拔下U盘的时候WINDOWS也会产生一条消息。方法同上。
这么做最好,最及时。
问题补充:
是的,当你插入U盘的时候WINDOWS会产生一条消息,用一楼的方法获取消息的类型,判断如果是U盘的话,再判断这个U盘的硬件序列号(序列号是唯一的),如果是你允许的序列号则解锁。
同样当拔下U盘的时候WINDOWS也会产生一条消息。方法同上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
protected override void WndProc(ref Message m)//监视Windows消息
{
const int WM_DEVICECHANGE = 0x219;
const int WM_DEVICEARRVIAL = 0x8000;
//如果m.Msg的值为0x8000那么表示有U盘插入
if(m.Msg == ..............
}
其他的值我记不清了
你可以具体去MSDN查看 m的个种值表示的是什么意思
{
const int WM_DEVICECHANGE = 0x219;
const int WM_DEVICEARRVIAL = 0x8000;
//如果m.Msg的值为0x8000那么表示有U盘插入
if(m.Msg == ..............
}
其他的值我记不清了
你可以具体去MSDN查看 m的个种值表示的是什么意思
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用用这个,试一下了,我不知道是不是你想要的
//获取所有磁盘卷标
string[] arr = Environment.GetLogicalDrives();
然后用个判断
if (di.DriveType.ToString() != "CDRom")
上面是我判断是不是光驱,你自己试试判断是不是移动盘就行了。
//获取所有磁盘卷标
string[] arr = Environment.GetLogicalDrives();
然后用个判断
if (di.DriveType.ToString() != "CDRom")
上面是我判断是不是光驱,你自己试试判断是不是移动盘就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询