用钩子捕不到WM_DRIVECHANGE

hy1080 2005-05-11 10:40:19
我试着用钩子捕驱动器改变的消息:(是否有U盘插入),
结果十几种消息类都试过了也没捕到这个消息,
哪 位知道该如何做
...全文
95 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongfa 2005-05-12
  • 打赏
  • 举报
回复
先调用 RegisterDeviceNotification 注册
然后响应 WM_DEVICECHANGE
老夏Max 2005-05-12
  • 打赏
  • 举报
回复
注意:WM_DEVICECHANGED,它是一个消息,是系统发给“窗口”的!!!!!!!
hy1080 2005-05-12
  • 打赏
  • 举报
回复
用户要求,实时监控,所以我想用钩子,
不过今天早上说要做成服务,请高手帮忙
Featured 2005-05-12
  • 打赏
  • 举报
回复
这个何必使用钩子呢,可以直接捕获的啊
是CWnd的标准处理成员。
捕获方法如下:

a.在对话框的 BEGIN_MESSAGE_MAP(CYourDlg, CDialog) 和END_MESSAGE_MAP()
之间放入一句:
ON_WM_DEVICECHANGE()
提示:最好放在
//{{AFX_MSG_MAP(CYourDlg)
//}}AFX_MSG_MAP
的后面,否则ClassWizard会提示“解析错误(Parsing Error)”。
b.给对话框类添加消息处理函数,形式如下:
afx_msg BOOL CYourDlg::OnDeviceChange( UINT nEventType, DWORD dwData )
{
MessageBox("Detected change!");
}

这样,有优盘插入辄会弹出对话框。
hy1080 2005-05-12
  • 打赏
  • 举报
回复
to 42252343(大跃进的猪) ( )
请指教,现在想在服务内实现这个,如何实现。谢谢
42252343 2005-05-12
  • 打赏
  • 举报
回复
WM_DEVICECHANGE 既然是Win32的消息何必要用钩子呢
jxnczxl 2005-05-11
  • 打赏
  • 举报
回复
是否有U盘插入应该捕捉WM_DEVICECHANGED(记不清了,好像就是这个).这是个标准窗口消息。
42252343 2005-05-11
  • 打赏
  • 举报
回复
天啊 这个怎么会想到钩子呢 不可能捕捉的到的
hy1080 2005-05-11
  • 打赏
  • 举报
回复
顶阿

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧