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

2023-12-19

我读了下面的文章:使用 Ruby 和 WMI 检测 USB 驱动器 http://rubyonwindows.blogspot.com/2007/06/using-ruby-wmi-to-detect-usb-drive.html

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

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


我在 Ruby 方面无法为您提供太多帮助,但 WMI 也支持受监视的事件。存在一个外部事件,称为Win32_DeviceChangeEvent http://msdn.microsoft.com/en-us/library/windows/desktop/aa394124%28v=vs.85%29.aspx.

下面是使用它的简单 PowerShell 代码:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不使用 Ruby 和 WMI 轮询的情况下检测 USB 插入? 的相关文章

  • 安全导航相当于 Rails 尝试哈希值

    在 Rails 中 你可以这样做hash try key 这有帮助如果hash是潜在的nil 是否有使用新的 Ruby 2 3 安全导航运算符的等效版本 with 不等同于 Rails 的try 但你可以使用 对于哈希值 就用用吧 没什么特
  • Rails 从视图中调用操作

    希望这里有一个简单的问题 但我似乎无法找到答案 刚刚开始使用 RoR 但之前来自 ASP MVC 我在渲染部分视图时遇到问题 其局部变量不一定与主视图的变量相关联 例如 对于一个博客 我试图渲染一个链接到存档的侧边栏 def sidebar
  • Ruby Shoes 打包程序,包括应用程序中的 Shoes

    我似乎无法让 Ruby Shoes 打包程序正确创建包含 Shoes 的 exe 我正在使用 Raisins 版本 0 r1134 并从 github 替换 pack rb 打包程序制作的 exe 都是 70 80K 文件 它们显然不包括
  • 如何添加到 Ruby 中的现有哈希

    关于添加一个key gt value与 Ruby 中现有的填充哈希配对 我正在学习 Apress 的 Beginning Ruby 并且刚刚完成了哈希章节 我试图找到最简单的方法来使用哈希实现与数组相同的结果 x 1 2 3 4 x lt
  • 如何在 rake 任务中包含 ActionMailer 类?

    我想在我的 rake 任务中使用 ActionMailer 以便在特定时间向人们发送电子邮件 我在 app mailers 文件夹中编写了一个邮件程序类 如下所示 class AlertsMailer lt ActionMailer Bas
  • 分别对用户和管理员进行身份验证

    class ApplicationController lt ActionController Base protect from forgery skip before filter authenticate user only gt w
  • 获取已创建进程的进程句柄 Windows

    我需要获取运行程序时刚刚创建的所有进程的句柄或 PID 到目前为止 我已经使用了这段代码 每次创建进程时都会告诉我 问题是我只获取有关创建的进程的信息 但没有有关进程本身的任何信息 https msdn microsoft com en u
  • 避免在 Ruby 中自动从 Fixnum 转换为 Bignum

    我正在将算法从 C 移植到 Ruby 该算法有一个方法返回一个int有时会溢出 private static int NextRandom int n return 1234567890 n 12345 该算法利用溢出来避免该函数返回的值超
  • close 似乎不适用于 WebSocket

    我有这个简单的 JavaScript 代码 window ws new WebSocket ws 127 0 0 1 8000 ws onopen function ws send hello Ruby 中的服务器如下所示 require
  • Ruby 的 OpenSSL::Random 种子是否足够?

    我对 Ruby 知之甚少 所以如果答案很明显 请原谅我 我注意到在http www ruby doc org stdlib 1 9 3 libdoc securerandom rdoc SecureRandom html http www
  • 在 debian Squeeze 上安装 RoR

    有什么方法可以在我的 debian squeeze 上安装 Ruby 1 9 2 或 1 8 7 Rails 3 吗 您可能不想在生产计算机上使用 RVM 它的 PATH 魔力会在不明显的地方 例如 cron 作业 被破坏 然后你就会陷入困
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • 存根 include_recipe 调用以不采取任何操作,但仍将配方计为包含的内容

    我的食谱的默认食谱仅包含其他几个食谱 我知道我可以使用以下方法测试是否包含适当的食谱 expect chef run to include recipe cookbook recipe name 但是当我像这样存根 include reci
  • Ruby 在带有偏移量的数组中查找

    我正在寻找一种以更简洁的方式在 Ruby 中执行以下操作的方法 class Array def find index with offset offset block offset 1 find block end end offset a
  • BigDecimal 无法强制转换为 BigDecimal

    这应该很简单 但它却爆炸了 有任何想法吗 d BigDecimal new 2 0 YAML load a gt d to yaml TypeError BigDecimal can t be coerced into BigDecimal
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 如何检查水豚中的复选框?

    我正在使用 Rspec 和水豚 我怎样才能写一个步骤来检查checkbox 我试过了check按价值但它找不到我的checkbox 我不知道该怎么做 因为我实际上有相同的 ID 但值不同 这是代码
  • 使用 Ruby 获取 AWS 区域名称

    我正在为 AWS 开发 Rails 应用程序 并希望为区域名称创建下拉菜单 例如 us east 1 等 如果有人已经创建了 gem 来获取它们 我想使用它 有人知道这样的 gem 或有用的 API 吗 适用于 Ruby 的 AWS 开发工
  • 方法调用中是否有记忆约定?

    我想避免在方法调用中重新评估值 直到现在 我一直在这样做 def some method some method begin lot s of code end end 但它最终变得非常丑陋 在一些代码中 我看到类似以下内容 def som
  • 将 ruby​​ 类转换为模块比使用改进更好的方法?

    Module refine http ruby doc org core 2 0 0 Module html method i refine方法接受一个类和一个块并返回一个细化模块 所以我想我可以定义 class Class def inc

随机推荐