如何列出电脑上所有的U盘(急用) ( 积分: 200 )

  • 主题发起人 主题发起人 jiabeyondy
  • 开始时间 开始时间
J

jiabeyondy

Unregistered / Unconfirmed
GUEST, unregistred user!
需要知道是那个端口,U盘的容量、文件系统。还有,把空闲的usb 端口也列出来。
 
用GetLogicalDrives和GetDriveType这两个API函数,可以判断某个分区的类型,USB硬盘<br>属于Removable类型。
 
借用了别人写的一个类,现在已经可以在windowsXP下识别U盘了。不过,在windows2000下却无法识别出U盘,这是什么原因呢?
 
盒子上有个关于访问usb设备的pas文件,你去找下,可以试试!
 
SetupDiEnumDeviceInfo<br>主要就是这个<br>你搜一搜离线资料<br>如果不行,留下Email,我发一个给你
 
glacierful@gmail.com<br>谢谢znj_326。
 
已发,请注意查收
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=27863
 
to&nbsp;znj_326<br>已经收到。在我机子上测试了一下。可以检测到接到USB口上的键盘和鼠标,但是检测不到U盘。我用普通U盘和我们专门定制的U盘都试了一下,都没有检测到。
 
我也试了,可以检测到<br>在&nbsp;通用串行总路线控制器&nbsp;里<br>USB&nbsp;Mass&nbsp;Storage&nbsp;Device
 
内容还是有点多,我现在只想要所有的USB端口和端口上所插U盘的序列号。能不能麻烦您把程序内容精简一下。<br>水平还是有点低,对这方面了解太少了,看不太懂。呵呵。
 
abcdefghijklmnopqrstuvwxyz&nbsp;大家发财!
 
我使用CreateFile打开USB&nbsp;hub<br><br>HostControllerName&nbsp;:=&nbsp;'//./HCD'&nbsp;+&nbsp;IntToStr(ControllerIndex);//ControllerIndex从0开始增加<br>HostControllerHandle&nbsp;:=&nbsp;CreateFile(PChar(HostControllerName),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GENERIC_WRITE,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$40000000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILE_SHARE_WRITE,&nbsp;&nbsp;//$00000002;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nil,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OPEN_EXISTING,&nbsp;//3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0);<br><br>在windowsXP下可以获得5个Hub,但到了Windows2000下就变成了4个。<br>应该说CreateFile是个通用得函数吧,怎么到Windows2000就不正常了呢?
 
又有新发现,在windowsXP下检测到的最后一个Hub的所有端口,实际上是前边所有Hub中端口的集合。<br>&nbsp;&nbsp;&nbsp;&nbsp;在windows2000和windowsXP下,当我插普通U盘的时候,检测的U盘是列在实际的端口下的。当插入的是我们的专有U盘的时候,在windowsXP下U盘列在了最后一个Hub的端口下(也就是实际端口的映射);在windows2000下,则根本检测不到,但在资源管理器里边是有的。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;说一下我使用的U盘:这种U盘是被分成了光盘区和普通U盘区的,在资源管理器里边显示的是一个光盘一个普通U盘。
 
后退
顶部