Python 在运行VirtualBox的Windows 10上检测USB输入设备的插入/删除
我已经有了一些Python代码,可以检测Windows 10中特定USB设备类型的插入/删除(从) 我想在一个Python脚本中使用这段代码,该脚本在Ubuntu18.04(x64)上的VirtualBox的Windows10上运行。已安装VirtualBox来宾添加 不幸的是,该脚本无法工作,因为在插入或删除USB键盘时,它不会显示任何消息。是否需要为此更改VirtualBox配置 但是,退出脚本时会出现以下错误:Python 在运行VirtualBox的Windows 10上检测USB输入设备的插入/删除,python,windows-10,usb,virtualbox,Python,Windows 10,Usb,Virtualbox,我已经有了一些Python代码,可以检测Windows 10中特定USB设备类型的插入/删除(从) 我想在一个Python脚本中使用这段代码,该脚本在Ubuntu18.04(x64)上的VirtualBox的Windows10上运行。已安装VirtualBox来宾添加 不幸的是,该脚本无法工作,因为在插入或删除USB键盘时,它不会显示任何消息。是否需要为此更改VirtualBox配置 但是,退出脚本时会出现以下错误: 过程使用退出代码-1完成。首先,使用而不是而不是而使用1:,如果为True:。
过程使用退出代码-1完成。首先,使用而不是而不是而使用1:
,如果为True:
。然后,确保在VirtualBox中正确配置了USB驱动器(这可能会有所帮助)。对于退出代码为-1的过程,我发现所有这些都与PyCharm,idk有关,如果您使用这个。希望这能有所帮助。非常感谢您的提示。不幸的是,我的Ubuntu系统上的VirtualBox没有显示任何可供选择的连接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")