Py学习  »  Python

使用python3的Windows上的CD驱动器状态?

scott • 4 年前 • 416 次点击  

我试着得到四种状态(磁盘存在,磁盘不存在,打开,读取),并且尝试了很多事情,所有这些都有它们的下降。

以下检测打开/关闭,但如果程序启动时正在读取磁盘,则将冻结。否则,就没事了。不过,它并没有给我所有的状态,我想和冻结是恼人的。

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”都是假的。所以要让它工作,托盘里必须一直有一个磁盘。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40689
 
416 次点击