C# How to tell if DVD drive tray is open?

帅比萌擦擦* 提交于 2019-12-22 01:35:02

问题


I have a DVD reading and burning app in C#. I want to be able to detect the difference between an empty drive (no disk) and an open drive.

Edit: After some more googling, I think a better problem description is "I want to access the drive tray status - open or closed"

I can use

ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk WHERE DriveType= 5")

to find all the dvd drives in the system, and the properties tell me if there is a disk in the drive. Access property tells me if there is a blank disk.

But Access is null when the drive is open, and when the drive is shut and empty. And I don't see any other property that changes when the drive opens or closes.

Anyone know a way to distinguish an open drive from a closed and empty drive?

I am using Win7, but ideally the solution would work on XP and Vista also.


回答1:


MediaLoaded property (Win32_CDROMDrive) will tell you whether you have a disc loaded. I am bit confused what you are looking for:

  1. disk tray open
  2. disk tray closed - no media
  3. disk tray closed - has media

MediaLoaded property will help in case 2 (False) and 3 (True)




回答2:


IOCTL_DISK_GET_LENGTH_INFO may be of use to you.



来源:https://stackoverflow.com/questions/6341737/c-sharp-how-to-tell-if-dvd-drive-tray-is-open

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!