读书人

关于U盘插入拨出的消息响应解决方案

发布时间: 2012-02-12 17:16:33 作者: rapoo

关于U盘插入拨出的消息响应
我的代码如下,但为什么每次插入拨出都连续弹出多个对话框呢 ?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls;

type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMDDevicChange(var Message:TMessage);
message WM_DEVICECHANGE;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const DBT_DEVICEARRIVAL=$8000;
const DBT_DEVICEREMOVECOMPLETE=$8004;
c

procedure TForm1.WMDDevicChange(var Message:TMessage);
var
s:string;
begin
{Do Something here}
case Message.WParam of
DBT_DEVICEARRIVAL: s:= '插入了一新的设备,现在此设备可用 ';

DBT_DEVICEREMOVECOMPLETE: s:= '设备已经被删除 ';

end;
ShowMessage(s);
inherited;
end;

end.

[解决办法]
case of 语句写错了

[解决办法]
{Do Something here}
case Message.WParam of
DBT_DEVICEARRIVAL: s:= '插入了一新的设备,现在此设备可用 ';
DBT_DEVICEREMOVECOMPLETE: s:= '设备已经被删除 ';
else s:= ' ';
end;
if(s <> ' ')then ShowMessage(s);
inherited;
[解决办法]
多个消息是正常的,你看看你设备管理器里面是不是少了好几个设备?

读书人网 >.NET

热点推荐