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

Geo*_*Geo 9 ruby wmi windows-xp

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

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

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

JPB*_*anc 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"}
Run Code Online (Sandbox Code Playgroud)

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