BCB 如何中响应光驱的打开插入事件?
#include <initguid.h>
#include <dbt.h>
DEFINE_GUID( GUID_CLASS_IDE_CDROM, 0x4d36e965, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2B, \
0xe1, 0x03, 0x18);
//{4D36E965-E325-11CE-BFC1-08002BE10318}
DEFINE_GUID( GUID_CLASS_SCSI_CDROM, 0x4d36e965, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, \
0x00, 0x2b, 0xe1, 0x03, 0x18);
//{4D36E965-E325-11CE-BFC1-08002BE10318}
DEFINE_GUID( GUID_CLASS_SCSI_CDROM_A, 0x1186654d, 0x47b5, 0x48b6, 0xbe, 0xb9, 0x7d, \
0xf1, 0x13, 0xae, 0x3c, 0x67);
//{1186654d-47b8-48b9-beb9-7df113ae3c67}
DEFINE_GUID( GUID_CLASS_SCSI_CDROM_B, 0x53f56308, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, \
0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
//{53f56308-b6bf-11d0-94f2-00a0c91efb8b}
DEFINE_GUID( GUID_CLASS_SCSI_CDROM_C, 0x53f5630d, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, \
0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
//{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}
DEFINE_GUID( GUID_CLASS_USBHUB, 0xf18a0e88, 0xc30c, 0x11d0, 0x88, 0x15, 0x00, \
0xa0, 0xc9, 0x06, 0xbe, 0xd8);
DEFINE_GUID(GUID_CLASS_USB_DEVICE, 0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, \
0xC0, 0x4F, 0xB9, 0x51, 0xED);
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
//注册USB响应事件;
HFONT hFont;
HIMAGELIST himl;
HICON hicon;
DEV_BROADCAST_DEVICEINTERFACE broadcastInterface;
// Register to receive notification when a USB device is plugged in.
broadcastInterface.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
broadcastInterface.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
//memcpy( &(broadcastInterface.dbcc_classguid), &(GUID_CLASS_USB_DEVICE), sizeof(struct _GUID));
memcpy( &(broadcastInterface.dbcc_classguid), &(GUID_CLASS_SCSI_CDROM_C), sizeof(struct _GUID));
gNotifyDevHandle = RegisterDeviceNotification(Handle, &broadcastInterface, DEVICE_NOTIFY_WINDOW_HANDLE);
// Now register for Hub notifications.
//memcpy(&(broadcastInterface.dbcc_classguid), &(GUID_CLASS_USBHUB), sizeof(struct _GUID));
}
//---------------------------------------------------------------------------
//光盘信息变化;
int __fastcall TfrmMain::OnDeviceChgMsg(TMessage &Message)
{
switch (Message.WParam)
{
case DBT_DEVICEARRIVAL:
ShowMessage("新插入了一項裝置!");
break;
case DBT_DEVICEREMOVECOMPLETE:
ShowMessage("卸除了一項裝置!");
break;
case DBT_DEVNODES_CHANGED:
ShowMessage("DBT_DEVNODES_CHANGED");
break;
}
return 0;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class TfrmMain : public TForm
{
//......
private:
//按钮动作
void __fastcall UIDownFileAction();//下方打开OUTPUT路径的按钮动作。
public: // User declarations
__fastcall TfrmMain(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DEVICECHANGE,TMessage, OnDeviceChgMsg)
END_MESSAGE_MAP(inherited)
};
代码参照的是USB影响的程序,不知道为什么不会响应光驱的; 怀疑很可能是GUID错了; 当时我把注册表里边光驱有关的GUID都试了,还是不行!
相关推荐
【产品体系】【会计领域】【成本会计】第十九篇 GPU服务器的成本会计01
从内到外依次为:界面氧化层(SiO₂,~0.5nm)、高K介电层(HfO₂或HfZrOₓ,等效氧化层厚度EOT < 0.5nm)、功函数金属层(TiN、TiAlC等多层,总厚度~2-3nm)、钨(W)或钴(Co)栅极填充金属。:服务器操作系统(如Linux发行版)、GPU驱动程序、集群管理软件(如Kubernetes)、虚拟化软件(如VMware)、AI框架(如CUDA、TensorFlow)的商用许可。随后进行绝缘层(SiO2)沉积、阻挡层(Ta/TaN)和种子层(Cu)沉积,电镀填充铜。
通信行业基于MongoDB的安全合规与性能优化:5G时序数据处理、可查询加密及窗口函数应用
内容概要:本文围绕MongoDB在通信行业的深度应用,系统讲解了可查询加密、时间序列集合、窗口函数与性能诊断四大核心技术。通过详实的代码案例,展示了如何利用可查询加密实现敏感数据合规存储与查询,使用时序集合高效处理5G网络KPI等高频写入场景,借助窗口函数进行经营指标的趋势分析,并结合explain()与查询分析器完成性能调优。文章还涵盖分片一致性检查、索引优化等运维实践,全面覆盖通信系统对安全、性能与扩展性的严苛要求。; 适合人群:具备一定数据库基础,从事通信行业研发、架构或运维工作1-3年的技术人员,尤其是参与5G网络监控、客户数据管理或大数据平台建设的相关人员。; 使用场景及目标:① 实现用户手机号、身份证等敏感信息的加密存储与等值查询,满足安全合规要求;② 构建高吞吐、低延迟的5G基站KPI时序数据存储与分析系统;③ 在数据库层直接完成滑动平均、累计求和等经营分析,减少应用层计算负担;④ 诊断慢查询、验证索引有效性,保障系统高性能运行。; 阅读建议:此资源强调理论与实战结合,建议读者在本地或测试环境部署MongoDB 7.0+版本,动手复现文中代码,重点关注schemaMap配置、时序集合参数选择与窗口函数语法细节,并结合explain执行计划理解底层优化机制,从而真正掌握通信级数据架构的设计精髓。
国央企创新负责人如何借助平台实现技术成果的高价值转化与资源精准配置?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?.docx
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?
产业园区运营负责人如何提升园区内技术供需匹配的精准度?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


Windows SDK/API
