高分解决VB中如何侦测U盘

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:44:12
如题:
1.只能在U盘插入或拔出时自动侦测、
2.如何自动格式化U盘(要可选折:盘符号,格化类型,LABEL等)、
3.当选的是软盘时不格式化。(不使用 IF drive="a:"来判断 )
4.自动格式化时要三种类型都可用(FAT32,FAT,NTFS)
5.可自动格式为DOS引导类型
zorrowh:

谢谢。不过这段代码不能侦测U盘,WMI应该可以的!
有没WMI的技术指南

luojianshu:

GetDriveType 可以。
不过我要的是不使用TIMER控件,要当U盘插入或拔出才侦测。

在U盘插入或拔出时自动侦测 可以用 WMI
举个小例子吧!先工程引用Microsoft WMI Scripting V1.2 Library
窗体代码如下:
Private Sub Form_Load()
Dim Wql As String
Set objSWbemSink = New SWbemSink
Set objSWbemServices = GetObject("winmgmts:\\" & "." & "\root\cimv2")
Wql = "Select * from Win32_VolumeChangeEvent"
objSWbemServices.ExecNotificationQueryAsync objSWbemSink, Wql
End Sub
Private Sub objSWbemSink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, _
ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
Dim S As String
If objWbemObject.Properties_.Item("EventType").Value = 2 Then S = "插入"
If objWbemObject.Properties_.Item("EventType").Value = 3 Then S = "弹出"
MsgBox objWbemObject.Properties_.Item("DriveName").Value & "盘" & S
End Sub
'!!!!!!!!!!!!!!!!把我的加上 GetDriveType 不就行了,我的可以监