我最近也在为USB的事烦,不过我的要求没你这么深入,我仅要求能监测到USB的拔插就行了,以下是我的问题,若你对此有所了解的话,不望见教,
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2505562
关于监测USB接口的拔插消息WM_DEVICECHANGE,Message.wParam的值都是一样的,都等于7,怎么办???
为此我也查了一些资料,我发现关于USB的讨论,在CSDN的VC版块中还相对多一些,另外台湾的http://delphi.ktop.com.tw 中也有一些关于这方面的讨论,俺们大富翁论坛里倒相对少一些。你可去那边查一下,这里我有一些关于USB的讨论,你看看吧
回复人: snakezzg() ( ) 信誉:100 2002-9-19 9:03:54 得分:0
转录:kingcaiyao
操作系统之所以能够识别出到底是移动硬盘或是PDA,这是通过INF文件来找到的。这个INF文件通常会放在Windows/Inf目录下,这个INF文件记录该产品的PID(产品ID号),VID(销售商ID号)及该设备需要的驱动程序.Sys等一些配置信息, 如果操作系统找不到这个设备的inf文件,就会用默认的文件来代替它,也就是我们经常看到的-在设备管理中的未知设备。在首次安装成功后,OS就会将你的硬件配置信息写到注册表中。
对于你想在应用程序这一级实现USB设备的类型判断,这恐怕需要写VXD这类程序来完成或者由硬件生产商提供相应的开发包给你(因为从检测到硬件设备接入到识别到硬件设备并最终完成安装这一过程是由OS来完成的)。
同时需要说的是:USB设备分为简单的USB设备和复合的USB设备,比如说HID设备就是属于简单的USB设备(USB鼠标就属于这一类),这个在程中通过HID.Dll来找出它的性能,PDA就属于复合设备(这和PC连接可以通讯,但本身也可以工作)你可以下载一个WINDOWS DDK, 它里面有一个关于USB的例程,可以看看。