我试着得到四种状态(磁盘存在,磁盘不存在,打开,读取),并且尝试了很多事情,所有这些都有它们的下降。
以下检测打开/关闭,但如果程序启动时正在读取磁盘,则将冻结。否则,就没事了。不过,它并没有给我所有的状态,我想和冻结是恼人的。
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”都是假的。所以要让它工作,托盘里必须一直有一个磁盘。