我需要检测新驱动器何时通过 USB 端口、火线端口等插入 Windows 系统。我知道WM_DEVICECHANGE消息,但这需要打开一个窗口才能使用它。有没有办法在 C# 中创建一个后台进程来检测何时插入新驱动器?
背景信息:我想编写此应用程序以从公司可移动驱动器中删除蠕虫。常规的防病毒软件无法将其删除。我们有一个可以删除蠕虫的脚本,但它必须手动运行,这不足以控制爆发。
我需要检测新驱动器何时通过 USB 端口、火线端口等插入 Windows 系统。我知道WM_DEVICECHANGE消息,但这需要打开一个窗口才能使用它。有没有办法在 C# 中创建一个后台进程来检测何时插入新驱动器?
背景信息:我想编写此应用程序以从公司可移动驱动器中删除蠕虫。常规的防病毒软件无法将其删除。我们有一个可以删除蠕虫的脚本,但它必须手动运行,这不足以控制爆发。
A windows service should do the trick
Try reworking the CodeProject DriveDetector as a service and you should have what you need
您需要订阅RegisterDeviceNotification
并将其绑定到服务状态句柄。另请参阅http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/9ae4478a-1133-44ba-8a1c-3e4be3856e37。
我不太清楚如何实现这一点,这是很久以前的事了。
这篇博文展示了如何处理系统事件,https: //web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/howdoi/?p=135也许您可以将它用于以下事件你想处理
您可以创建隐藏窗口或运行服务,因为它应该与窗口句柄或服务状态句柄一起使用。