我需要一个程序来检测媒体插入并告诉我驱动器号,以便我可以在其基础上进行构建并添加在触发设备插入事件时要运行的其他功能。
我认为可以使用Win32_VolumeChangeEvent 类使用 WMI 来完成(我在 Powershell 和 C# 中找到了一些实现,但我想使用 Python 来完成)。我知道最终还有wmipython 模块,我从 Python 邮件列表中找到了这段代码,但它似乎不起作用。
然后我还发现这个Python脚本可以满足我的需要。它似乎是为 python 2 编写的,我调整了 print() 函数的括号,以便使其在 python 3 上工作,此外我注意到;代码中有一些不必要的内容。(也许它是从 C 移植的,开发人员错误地将它们留在那里。这个 python 脚本使用 ctypes)。
我向你展示我得到的代码:
import win32api, win32con, win32gui
from ctypes import *
#
# Device change events (WM_DEVICECHANGE wParam)
#
DBT_DEVICEARRIVAL = 0x8000
DBT_DEVICEQUERYREMOVE = 0x8001
DBT_DEVICEQUERYREMOVEFAILED = 0x8002
DBT_DEVICEMOVEPENDING = 0x8003
DBT_DEVICEREMOVECOMPLETE = 0x8004
DBT_DEVICETYPESSPECIFIC = 0x8005
DBT_CONFIGCHANGED = 0x0018
#
# type of …Run Code Online (Sandbox Code Playgroud)