当前位置:  开发笔记 > 编程语言 > 正文

如果将pendrive插入USB端口,如何使用c#进行检测?

如何解决《如果将pendrive插入USB端口,如何使用c#进行检测?》经验,为你挑选了1个好方法。

有没有办法找出什么时候在局域网中谁有人插入到USB端口的pendrive?以编程方式(最好在C#中)或通过某种工具.基本上我想象一个客户端应用程序位于每个终端上并监视USB端口并将信息发送到服务器.

a.)我可以获取正在复制的文件的详细信息吗?b.)没有客户申请,有没有办法做到这一点?

编辑

我不想完全禁用USB端口.它需要有基础.基本上只是希望局域网上的用户负责地共享数据,并且知道所传输的任何数据都会受到监控和记录,以后可能会被质疑.



1> MSalters..:

[假设Windows,给出了C#评论.请相应标记]

是的,这是可能的.并且可以获取文件的详细信息.但是,它需要编程.观察WM_DEVICECHANGE并在之后重新枚举驱动器.它将为您提供USB pendrives,还有SD卡.我希望这对你来说是一个奖励.

要在知道驱动器到达后获取更多详细信息,请使用System.IO.FileSystemWatcher

更新 我发现了一个更好的解决方案 - 如果您注册了卷接口通知,您将获得新驱动器的卷路径.首先,创建一个DEV_BROADCAST_DEVICEINTERFACE具有dbcc_classguid=GUID_DEVINTERFACE_VOLUME.然后传递给RegisterDeviceNotification().您将再次获得WM_DEVICECHANGE,但现在可以将消息中的lParam转换为DEV_BROADCAST_DEVICEINTERFACE*.

你可以把dbcc_name你收到的GetVolumeNameForVolumeMountPoint().您也可以通过从所有驱动器号GetLogicalDriveStrings()GetVolumeNameForVolumeMountPoint().您将拥有一个匹配的卷名称; 这是新的驱动器.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有