请问怎么枚举出计算机上的所有 U盘
并取得他们的盘号谢谢
并取得他们的盘号谢谢
解决方案 »
- Label 隐藏一部分(不能覆盖图片)
- API函数:如何取得listview,treeview的内容?(listview有N行M列,treeview的各个节点及子、孙节点内容)
- 如何将xp文件信息(路径和文件名)传递给vb编写的无窗体的exe文件,谢谢
- 快升四角了(差3分),提前散分!
- 如何实现货币大写的转换
- 如何用程序实现将远程共享文件夹的文件下载和上传文件?
- vb 访问access数据库
- 谁知道“黑标检测”的英文是什么?
- 请vb高手帮忙,小妹在编个小程序时遇到难题了。
- 如何用自己的滚动条替换已经具有滚动条的控件的滚动条
- 如何将具有滚动条的文本框滚动到最后一行显示?
- 如何在ActiveX控件中打开选择文件夹的对话框,不是在窗体中
http://community.csdn.net/Expert/topic/4753/4753892.xml?temp=.8596155
http://community.csdn.net/Expert/topic/4839/4839099.xml?temp=.5031855枚举U盘并不一定需要什么高深的API,呵呵,你要知道,U盘的盘符分配也是从A开始到Z之间的(我要说的是这符合盘符分配的规则),所以你只要挨个列举他们的类型,并得到是U盘的就可以了,具体代码:Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate Function USBDISK()
Dim i As Long
For i = Asc("A") To Asc("Z")
If GetDriveType(Chr(i) + ":") = 2 Then DEBUG.Print "现有U盘: " & Chr(i)
Next i
End Function调用这个函数时DEBUG窗口就将依次输出所有U盘的盘符
谢谢 zcsor (偶是业余的) 啊啊
我看过你的帖子 你好象写外挂把
你说的问题我没有测试,因为电脑上没有软驱,呵呵,认为用不上,配电脑的时候就没要。
如果真的是那样,那么我们修改一下代码就可以了。思路如下:
方法1:软盘通常为A或B,那么我们从C往后搜索方法2:U盘通常在硬盘盘符后,那么我们取DT为硬盘的后面的DT=2的盘。其实同出一辙了,方法1比较简单,修改代码如下:
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As LongPrivate Function USBDISK()
Dim i As Long
For i = Asc("C") To Asc("Z")
If GetDriveType(Chr(i) + ":") = 2 Then DEBUG.Print "现有U盘: " & Chr(i)
Next i
End Function
这就可以了其实如果是正常的思路,我们应该先取USB设备,进一步取其中为USB DISK的,而后取USB DISK对应的USB DRIVER ,从而得到其盘符,不过还真麻烦,但确实可以实现的,如果你有兴趣我可以给你代码。另外大家是不是了解盘符在WINDOWS中到底是怎么标志的呢?我的意思是,我们可以通过操作注册表或INI来获得这些值,如果想得到这些值的位置,很容易,用一个注册表和文件监视软件扫描当前盘,然后插入U盘,或者用WINDOWS优化大师等工具更改盘符,就可以发现被更改位置,自己看看就知道了,提供一个思路方法而已,偶么做回,不过这在编程中通常是非常有效的取得实现方法的方法。
------------------------------------------
其实如果是正常的思路,我们应该先取USB设备,进一步取其中为USB DISK的,而后取USB DISK对应的USB DRIVER ,从而得到其盘符,不过还真麻烦,但确实可以实现的,如果你有兴趣我可以给你代码。
------------------------------------------谢谢 zcsor(偶是业余的,分不够问问题,请求捐赠,谢谢大家) 俺要代码 :)俺的 mail : [email protected]