我正在尝试获取四种状态(“磁盘存在”,“磁盘不存在”,“打开”,“读取”),并且尝试了很多事情,所有这些都有失败的可能。
以下内容检测打开/关闭,但是如果在程序启动时正在读取磁盘,则会冻结。否则就可以了。不过,它并不能为我提供所有我想要的状态,而且冻结很烦人。
import win32con
import win32file
import time
a = 'E:'
hdevice = win32file.CreateFile('\\\\.\\{0}'.format(a), win32con.GENERIC_READ, 0, None, win32con.OPEN_EXISTING, 0, None)
while True:
try:
win32file.DeviceIoControl(hdevice, 2967564, b"", 0, None)
except Exception:
print('Open')
else:
print('Closed')
time.sleep(0.25
我也尝试过:
import wmi
c = wmi.WMI()
for each in c.Win32_CDROMDrive():
print(each)
但是,只要托盘中没有cd / dvd,则无论托盘是打开还是关闭,“ MediaLoaded”均为False。因此,要使其正常工作,托盘中始终需要有一个磁盘。