C#檢測(cè)pc光驅(qū)里是否插入了光盤(pán)的方法
本文實(shí)例講述了C#檢測(cè)pc光驅(qū)里是否插入了光盤(pán)的方法。分享給大家供大家參考。具體如下:
C# 檢測(cè)pc光驅(qū)里是否插入了光盤(pán),需要添加System.Management.dll 的引用
using System;
using System.Management;
namespace CDROMManagement
{
class WMIEvent
{
static void Main(string[] args)
{
WMIEvent we = new WMIEvent();
ManagementEventWatcher w = null;
WqlEventQuery q;
ManagementOperationObserver observer = new ManagementOperationObserver();
// Bind to local machine
ConnectionOptions opt = new ConnectionOptions();
opt.EnablePrivileges = true; //sets required privilege
ManagementScope scope = new ManagementScope( "root\\CIMV2", opt );
try
{
q = new WqlEventQuery();
q.EventClassName = "__InstanceModificationEvent";
q.WithinInterval = new TimeSpan( 0, 0, 1 );
// DriveType - 5: CDROM
q.Condition = @"TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 5";
w = new ManagementEventWatcher( scope, q );
// register async. event handler
w.EventArrived += new EventArrivedEventHandler( we.CDREventArrived );
w.Start();
// Do something usefull,block thread for testing
Console.ReadLine();
}
catch( Exception e )
{
Console.WriteLine( e.Message );
}
finally
{
w.Stop();
}
}
// Dump all properties
public void CDREventArrived(object sender, EventArrivedEventArgs e)
{
// Get the Event object and display it
PropertyData pd = e.NewEvent.Properties["TargetInstance"];
if (pd != null)
{
ManagementBaseObject mbo = pd.Value as ManagementBaseObject;
// if CD removed VolumeName == null
if (mbo.Properties["VolumeName"].Value != null)
{
Console.WriteLine("CD has been inserted");
}
else
{
Console.WriteLine("CD has been ejected");
}
}
}
}
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#檢測(cè)是否有u盤(pán)插入的方法
- c#檢測(cè)usb設(shè)備撥插類(lèi)庫(kù)USBClassLibrary分享
- C#獲取硬盤(pán)序列號(hào)的問(wèn)題小結(jié)
- C#實(shí)現(xiàn)讀取指定盤(pán)符硬盤(pán)序列號(hào)的方法
- C#獲取機(jī)器碼的方法詳解(機(jī)器名,CPU編號(hào),硬盤(pán)編號(hào),網(wǎng)卡mac等)
- C#獲取硬盤(pán)編號(hào)的方法
- C#利用win32 Api 修改本地系統(tǒng)時(shí)間、獲取硬盤(pán)序列號(hào)
- 用C#獲取硬盤(pán)序列號(hào),CPU序列號(hào),網(wǎng)卡MAC地址的源碼
- C#檢測(cè)移動(dòng)硬盤(pán)并獲取移動(dòng)硬盤(pán)盤(pán)符的方法
相關(guān)文章
C#使用WinRar命令進(jìn)行壓縮和解壓縮操作的實(shí)現(xiàn)方法
這篇文章主要介紹了C#使用WinRar命令進(jìn)行壓縮和解壓縮操作的實(shí)現(xiàn)方法,涉及C#基于Process類(lèi)操作WinRar命令的相關(guān)實(shí)現(xiàn)技巧,代碼簡(jiǎn)潔實(shí)用,需要的朋友可以參考下2016-06-06
Unity的BuildPlayerProcessor實(shí)用案例深入解析
這篇文章主要為大家介紹了Unity的BuildPlayerProcessor實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
C#實(shí)現(xiàn)提取Word中插入的多媒體文件(視頻,音頻)
在Word中可將文件通過(guò)OLE對(duì)象嵌入的方式插入到文檔,包括Word、excel、PDF、PPT、圖片、宏文件、文件包等在內(nèi)的多種文件類(lèi)型。本文將利用C#實(shí)現(xiàn)提取插入在Word文件中的這些多媒體文件,感興趣的可以了解一下2022-02-02
C#使用Socket快速判斷數(shù)據(jù)庫(kù)連接是否正常的方法
這篇文章主要介紹了C#使用Socket快速判斷數(shù)據(jù)庫(kù)連接是否正常的方法,涉及C#中socket操作的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
C#中的除法運(yùn)算符與VB.NET中的除法運(yùn)算符
這篇文章主要介紹了C#中的除法運(yùn)算符與VB.NET中的除法運(yùn)算符,需要的朋友可以參考下2014-10-10
C# 泛型類(lèi)(函數(shù))的實(shí)例化小例子
C# 泛型類(lèi)(函數(shù))的實(shí)例化小例子,需要的朋友可以參考一下2013-04-04

