通过USB或其他方式连接新驱动器时获取通知(C#)

Phi*_*hil 7 c# antivirus usb-drive removable-drive

我需要检测新驱动器何时通过USB端口,火线端口等插入Windows系统.我知道WM_DEVICECHANGE消息,但这需要打开一个窗口才能使用它.有没有办法在C#中创建后台进程来检测插入新驱动器的时间?

背景信息:我想编写此应用程序以从公司可移动驱动器中删除蠕虫.常规防病毒软件无法删除它.我们有一个将删除蠕虫的脚本,但它必须手动运行,这不足以控制爆发.

Chr*_*nce 4

Windows服务应该可以解决问题

尝试将 CodeProject DriveDetector重新设计为服务,您应该拥有您需要的东西

  • 回顾这个项目,我意识到允许桌面与服务交互并不是一个好的做法。现在,我建议创建一个常规可执行文件并将其放入启动文件夹中。 (3认同)
  • 做到了并且有效。对于服务,我只需确保创建了另一个具有无限循环的线程,该循环不断调用 Application.DoEvents()。如果您不这样做,DriveDetector 将挂起并且无法接收 WM_DEVICECHANGE 消息。另外,我必须确保为该服务启用桌面交互,因为 DriveDetector 使用隐藏表单来完成其工作。 (2认同)