如何在不使用Ruby和WMI进行轮询的情况下检测USB插入?

时间:2011-11-08 19:14:51

标签: ruby windows-xp wmi

我阅读了以下文章:Using Ruby & WMI to Detect a USB Drive

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

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

1 个答案:

答案 0 :(得分:2)

我对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中处理这样的查询。