如果不使用Ruby和WMI进行轮询,我如何检测USB插入?

我阅读了以下文章: 使用Ruby和WMI检测USB驱动器

但是,这种方法需要我在循环中保持轮询。 是否可以注册并在插入/弹出USB时通知我的脚本?

我正在寻找一个Windows XP解决方案。

我对Ruby无法帮助你,但WMI也支持受监控的事件。 存在一个名为Win32_DeviceChangeEvent的外部事件。

这是一个使用它的简单PowerShell代码:

$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType=2" Register-WMIEvent -Query $query -Action { Write-Host "A device has been inserted"} 

每次插入设备时都会调用Action参数中的代码。 我不知道在Ruby中处理这样的查询。