检测WM_DEVICECHANGE消息时,为什么会收到两次WM_DEVICECHANGE消息(100分)

  • 主题发起人 主题发起人 liaolion
  • 开始时间 开始时间
L

liaolion

Unregistered / Unconfirmed
GUEST, unregistred user!
我通过处理WM_DEVICECHANGE消息来检测光驱中光盘插入、弹出。但是发现每次插入或者弹出光盘,都会收到<br>两次同样的WM_DEVICECHANGE消息,致使我的处理过程要运行两次。这是为什么?怎样避免?
 
procedure mywmdevicechange(var msessage:tmessage);<br>const skipnext=true;<br>begin<br>if skipnext then<br>begin<br>//我看其他的电源关闭也都是两次<br>end;<br>skipnext:=not skipnext;<br>end;
 
常量不能改变哪!
 
改用私有变量?
 
同意ugvanxk的<br><br>而<br>const skipnext=true;<br><br>声明的是一个类型化常量。<br><br>声明一个常量的类型时,delphi为该常量留出内存并把它作为一个变量,可以分配一个<br>新的值给这个常量并保持它。在C++中这个实体被称为静态变量。<br><br>不过这是维持向后兼容性的<br>
 
后退
顶部