我已经有一些有效的Python代码,可以检测Windows 10中特定USB设备类型的插入/移除(来自这里)。
import wmi
device_connected_wql = "SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA \'Win32_Keyboard\'"
device_disconnected_wql = "SELECT * FROM __InstanceDeletionEvent WITHIN 2 WHERE TargetInstance ISA \'Win32_Keyboard\'"
c = wmi.WMI()
connected_watcher = c.watch_for(raw_wql=device_connected_wql)
disconnected_watcher = c.watch_for(raw_wql=device_disconnected_wql)
while 1:
try:
connected = connected_watcher(timeout_ms=10)
except wmi.x_wmi_timed_out:
pass
else:
if connected:
print("Keyboard connected")
try:
disconnected = disconnected_watcher(timeout_ms=10)
except wmi.x_wmi_timed_out:
pass
else:
if disconnected:
print("Keyboard disconnected")
我希望在运行在Windows 10上的Python脚本中使用这段代码,它在Ubuntu 18.04 (x64)上的VirtualBox 6.0.22中运行,并已安装VirtualBox Guest Additions。
不幸的是,这个脚本无法正常工作,因为插入或移除USB键盘时没有显示任何消息。难道需要更改VirtualBox的配置吗?
然而,在退出脚本时出现以下错误:流程以退出代码-1结束