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

时间:2018-11-02 19:45:19

标签: python-3.x windows winapi

我正在尝试获取四种状态(“磁盘存在”,“磁盘不存在”,“打开”,“读取”),并且尝试了很多事情,所有这些都有失败的可能。

以下内容检测打开/关闭,但是如果在程序启动时正在读取磁盘,则会冻结。否则就可以了。不过,它并不能为我提供所有我想要的状态,而且冻结很烦人。

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。因此,要使其正常工作,托盘中始终需要有一个磁盘。

0 个答案:

没有答案