我的应用是想解决USB的插入和拔出的区分.
一个很简单的方法是:
interface
......
private
{ Private declarations }
procedure wmdevicechange(var msg:TMessage);message WM_DEVICECHANGE;......implementation......procedure TForm1.wmdevicechange(var msg: TMessage);
begin
if (Msg.WParam=7) and (Msg.LPARAM=0) then
begin
ShowMessage('有了优盘!');
end;
end;但是此种方法是在太简单,无法判断是哪种usb设备的插入和拔除
也无法区分是插入还是拔除。但是参照WM_DEVICECHANGE的sdk说明,确是可以区分是插入或是拔出
而且在DBT_DEVICEARRIVAL中Lparam指向了具体的设备信息(Pointer to a structure identifying the device inserted)。我想请问大家应该如何解决呢,如何获得这个Lparam所指向的信息。
有人说可以用“RegisterDeviceNotification”,不知道到是否是这样,请大家指点。
一个很简单的方法是:
interface
......
private
{ Private declarations }
procedure wmdevicechange(var msg:TMessage);message WM_DEVICECHANGE;......implementation......procedure TForm1.wmdevicechange(var msg: TMessage);
begin
if (Msg.WParam=7) and (Msg.LPARAM=0) then
begin
ShowMessage('有了优盘!');
end;
end;但是此种方法是在太简单,无法判断是哪种usb设备的插入和拔除
也无法区分是插入还是拔除。但是参照WM_DEVICECHANGE的sdk说明,确是可以区分是插入或是拔出
而且在DBT_DEVICEARRIVAL中Lparam指向了具体的设备信息(Pointer to a structure identifying the device inserted)。我想请问大家应该如何解决呢,如何获得这个Lparam所指向的信息。
有人说可以用“RegisterDeviceNotification”,不知道到是否是这样,请大家指点。
解决方案 »
- 怎么创建一个tiff的文件?
- Fri, 10 Sep 2010 22:46:28 +0800转化成日期格式
- 模拟鼠标点击(送高分)
- 两个IMAGE重叠,上面放置透明图片问题
- 如何在磁盘上建立并读写一个2进制的文件。如果用Stream操作怎么实现?
- 如何在程序中接收SQL存储过程的结果?
- 动态创建的listview控件如何响应其columnclick事件?
- 请问如何在Image控件上输出不规则大小的字体,如16*14大小的字体!
- 程序执行中,能不能转到1个txt文件得代码中去执行?
- 请问怎么去掉这个提示:windows socker error:不知道这样的主机。(11001),on API 'AYnc Lookup'?
- SQL高手帮帮忙呀,这净利润到底是怎么算出来的!如果出现这样的情况,那怎么算?
- 菜鸟论坛找不到菜鸟,郁闷,散分~~~
我也不懂
在VC下调试的时候也是这样Wparam=0x07,Lparam的值=0x00。
但是据说可以用“RegisterDeviceNotification”解决,但我自己也没试过
不知道,大家是否知道,这样做能解决吗?
但是对于USB设备,取不到这两个参数的,这两个参数的值(在WM_DEVICECHANGE)中只会是Wparam=7,Lparam的值=0