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

标签 ruby windows-xp wmi

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

但是,此方法需要我在循环内保持轮询。是否可以注册并在插入/弹出 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 中处理这样的查询。

关于ruby - 如何在不使用 Ruby 和 WMI 进行轮询的情况下检测 USB 插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055839/

相关文章:

mysql - 使用 apache 网络服务器从 perl 连接到 mysql?

windows-xp - 在 Windows XP 上从 Aptana Studio 3 启动 JRuby

c++ - CreateSnapshot()是否不会生成Hyper-V虚拟机快照?

ruby - Rubocop 只检查修改后的行

ruby - Padrino、compass 和 heroku 的只读文件系统

delphi - 外部异常 C0000006

c# - 以编程方式管理 IIS

c# - 我有一个用户帐户的 SID,我想要它所属组的 SID

Ruby 私有(private)和公共(public)访问器

ruby - 调用堆栈 "around"ruby​​代码