C#监控CD-ROM插入/弹出光盘(CDROM_Listener)
其实可以通过多种方式实现C#监控CD-ROM插入/弹出光盘.
用System.Management相关类实现可能是最简单的.
public class CDROM_Listener
{
public static void Test()
{
CDROM_Listener listener = new CDROM_Listener();
ManagementEventWatcher watcher = null;
WqlEventQuery query = null;//表示 WQL 格式的 WMI 事件查询。
ManagementOperationObserver observer = new ManagementOperationObserver(); //系统管理操作观察者
// 绑定本机机器
ConnectionOptions opt = new ConnectionOptions();
opt.EnablePrivileges = true; //是否需要为连接操作启用用户特权。
ManagementScope scope = new ManagementScope("root\\CIMV2", opt);//设置监控范围
try
{
query = new WqlEventQuery();
query.EventClassName = "__InstanceModificationEvent";
query.WithinInterval = new TimeSpan(0, 0, 1);
// DriveType - 5: CDROM
query.Condition = @"TargetInstance ISA ’Win32_LogicalDisk’ and TargetInstance.DriveType=5";
watcher = new ManagementEventWatcher(scope, query);
//绑定事件
watcher.EventArrived += new EventArrivedEventHandler(listener.CDREventArrived);
watcher.Start(); //开始监听...
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
// watcher.Stop(); //停止监听
}
}
// 触发光驱事件
public void CDREventArrived(object sender, EventArrivedEventArgs e)
{
PropertyData pd = e.NewEvent.Properties["TargetInstance"];
if (pd != null)
{
ManagementBaseObject mbo = pd.Value as ManagementBaseObject;
if (mbo.Properties["VolumeName"].Value != null)
{
MessageBox.Show("已经插入光盘");
}
else
{
MessageBox.Show("已经弹出光盘");
}
}
}
}
{
public static void Test()
{
CDROM_Listener listener = new CDROM_Listener();
ManagementEventWatcher watcher = null;
WqlEventQuery query = null;//表示 WQL 格式的 WMI 事件查询。
ManagementOperationObserver observer = new ManagementOperationObserver(); //系统管理操作观察者
// 绑定本机机器
ConnectionOptions opt = new ConnectionOptions();
opt.EnablePrivileges = true; //是否需要为连接操作启用用户特权。
ManagementScope scope = new ManagementScope("root\\CIMV2", opt);//设置监控范围
try
{
query = new WqlEventQuery();
query.EventClassName = "__InstanceModificationEvent";
query.WithinInterval = new TimeSpan(0, 0, 1);
// DriveType - 5: CDROM
query.Condition = @"TargetInstance ISA ’Win32_LogicalDisk’ and TargetInstance.DriveType=5";
watcher = new ManagementEventWatcher(scope, query);
//绑定事件
watcher.EventArrived += new EventArrivedEventHandler(listener.CDREventArrived);
watcher.Start(); //开始监听...
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
// watcher.Stop(); //停止监听
}
}
// 触发光驱事件
public void CDREventArrived(object sender, EventArrivedEventArgs e)
{
PropertyData pd = e.NewEvent.Properties["TargetInstance"];
if (pd != null)
{
ManagementBaseObject mbo = pd.Value as ManagementBaseObject;
if (mbo.Properties["VolumeName"].Value != null)
{
MessageBox.Show("已经插入光盘");
}
else
{
MessageBox.Show("已经弹出光盘");
}
}
}
}
参考文档:
IE浏览器监控程序-监控IE窗体URL动态加载网页等信息
CSFramework.EF数据库框架测试MySqlBulkLoader批量插入功能报错(解决方案)
WinFramework轻量级开发框架 | 煤矿智能化综合防尘监测监控系统平台|C/S开发框架
FileSystemWatcher类监控文件的更改状态并且实时备份文件-C/S开发框架
WinFramework轻量框架-客户案例-煤矿智能防尘监测监控MES系统平台
Api_UserToken列不允许有 Null 值,不能将值 NULL 插入列 'Client'。INSERT 失败
软件开发与设计 - MIS-管理信息系统(监控类数据库设计)
软件开发与设计 - MIS-管理信息系统-财政资金监控管理系统
软件开发与设计 - MIS-管理信息系统--地下水监控管理信息系统
设置表格控件的布局样式|定制新增插入删除按钮|NavigatorCustomButton属性
明细表插入记录Insert报错:行插入位置-2147483648无效。
C#监控文件夹FileSystemWatcher
C# RichTextbox中插入图片
C#中将数据插入到Excel表中
GridView实现自定义按钮及中间插入记录排序功能
使用Scheduler控件实现生产进度监控程序
IE浏览器监控程序-监控IE窗体URL动态加载网页等信息
CSFramework.EF数据库框架测试MySqlBulkLoader批量插入功能报错(解决方案)
WinFramework轻量级开发框架 | 煤矿智能化综合防尘监测监控系统平台|C/S开发框架
FileSystemWatcher类监控文件的更改状态并且实时备份文件-C/S开发框架
WinFramework轻量框架-客户案例-煤矿智能防尘监测监控MES系统平台
Api_UserToken列不允许有 Null 值,不能将值 NULL 插入列 'Client'。INSERT 失败
软件开发与设计 - MIS-管理信息系统(监控类数据库设计)
软件开发与设计 - MIS-管理信息系统-财政资金监控管理系统
软件开发与设计 - MIS-管理信息系统--地下水监控管理信息系统
设置表格控件的布局样式|定制新增插入删除按钮|NavigatorCustomButton属性
明细表插入记录Insert报错:行插入位置-2147483648无效。
C#监控文件夹FileSystemWatcher
C# RichTextbox中插入图片
C#中将数据插入到Excel表中
GridView实现自定义按钮及中间插入记录排序功能
使用Scheduler控件实现生产进度监控程序
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
