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

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

a.)我可以获取要复制的文件的详细信息吗?
b.)没有客户端应用程序有办法吗?

编辑

我不想完全禁用USB端口.它需要有依据.基本上只需要LAN上的用户负责地共享数据,并且知道传送的数据是被监视和记录的,并且可以稍后询问.

[假设 Windows,给出了C#的意见.请标记相应]

是的,这是可能的并且可以获取文件的详细信息.然而,它将需要编程.观看WM_DEVICECHANGE,然后重新列举驱动器.它会让你的USB pendrives,而且SD卡.我期望这是一个奖金.

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

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

您可以将您收到的dbcc_name传递给GetVolumeNameForVolumeMountPoint().您还可以将所有驱动器号从GetLogicalDriveStrings()传递给GetVolumeNameForVolumeMountPoint().您将有一个匹配的卷名称;这是新的驱动器.

相关文章
相关标签/搜索