How to use Windows Management Instrumentation (WMI) to determine if a "USB Mass Storage Device" is inserted.
require 'win32ole' wmi = WIN32OLE.connect("winmgmts://") devices = wmi.ExecQuery("Select * From Win32_USBControllerDevice") for device in devices do device_name = device.Dependent.gsub('"', '').split('=')[1] usb_devices = wmi.ExecQuery("Select * From Win32_PnPEntity Where DeviceID = '#{device_name}'") for usb_device in usb_devices do puts usb_device.Description if usb_device.Description == 'USB Mass Storage Device' # DO SOMETHING HERE end end end
Further details can be found here.