如何在当U盘被插入机时,能让VB程序知道,并获得该U盘的路径啊

如何在当U盘被插入机时,能让VB程序知道,并获得该U盘的路径啊,第1张

呵呵,刚刚恶补来的, 相信你应该知道怎么改成你需要的了吧把代码放到timer事件里面定期检测一次 通过u值来知道有没有移动盘

如果有的话,可以通过b数组的值来返回a数组中存储的盘符:

Option Explicit

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _

(ByVal nDrive As String) As Long

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" _

(ByVal nBufferLength As Long, ByVal lPBuffer As String) As Long

Private Sub Command1_Click()

Dim rtn As String, a, b$(), i%, u As Boolean

Dim AllDrives As String

AllDrives = Space$(64) '设置缓冲

rtn = GetLogicalDriveStrings(Len(AllDrives), AllDrives) '调用函数得到包含所有驱动器的字符串

AllDrives = Left(AllDrives, rtn)

a = Split(Trim(AllDrives), Chr(0))

ReDim b(UBound(a))

u = False

For i = 0 To UBound(a) - 1

b(i) = GetDriveType(a(i))

If b(i) < 2 Or b(i) > 6 Then b(i) = 1

b(i) = Choose(Val(b(i)), "未知类型", "移动盘", "硬盘", "映射盘", "光驱", "内存盘")

If b(i) = "移动盘" Then u = True

Next

Text1 = ""

Text1 = IIf(u, "发现有移动盘!", "未发现移动盘!") & vbCrLf

For i = 0 To UBound(a) - 1

Text1 = Text1 & a(i) & "---" & b(i) & vbCrLf

Next

End Sub

实现起来也比较简单!

给你思路吧!自己琢磨出来了就不会忘了!

用openfiledialog这个控件就可以实现点击“打开”按钮然后打开一个框让你选择!把该控件的filter属性设为 word文件(doc)|doc|PDF文件(pdf)|pdf|CAJ文件(caf)|caj

这样就能打开指定格式的文件了!

保存文件可以参照一下这里:>

首先说一下思路:

按你的意思是插上U盘自动复制,这样就需要一个时间控件来不断检测,是不是有可移动磁盘,如果有,则复制,我把主要的工作做一下,代码如下:

Private

Declare

Function

GetDriveType

Lib

"kernel32"

Alias

"GetDriveTypeA"

(ByVal

nDrive

As

String)

As

Long

Private

Sub

Timer1_Timer()

Dim

i

As

Long,

hui

As

Long

For

i

=

Asc("A")

To

Asc("Z")'从盘符A到盘符Z检测,看是不是移动磁盘

hui

=

GetDriveType(Trim(Chr(i))

&

":")

If

hui

=

2

Then'移动磁盘的返回值是2

Timer1Enabled

=

False'停止时间控件,避免重复复制。你具体做的时候,可以加入其它检测,时间控件不能停止,否则再插入U盘就不会自动复制了。比如加入一个字符串或数组,正在复制的做个标志,每次检测循环的时候可以检测标志的数组,如果标志数组不是移动磁盘,说明磁盘已经拔掉,改回标志,下次插入还会复制。

Shell

"cmdexe

/c

xcopy

"

&

Chr(i)

&

":\

D:\qbh

/V/C/I/H/K/Y/E",

6'复制文件到d:\qbh文件夹下,可以根据需要具体设置,楼上的Jackiejor兄后面的参数是vbhide,那样有没有复制完,你并不知道。而且没有加参数E,没有这个参数,不会复制文件夹。

End

If

Next

i

End

Sub

采纳哦

dim str1 as string

str1="\Device\HarddiskVolume1\Windows\System32\svchostexe"

dim a() as string

a=split(str1,"\")

//如果是C盘的话,直接连接字符串就行了

dim str2 as string

str2="c:"

for i=3 to ubound(a)-1

str2=str2 & "\" & a(i)

next i

//str2就是你想要的路径。

Option Explicit

Private Declare Function GetDriveType Lib "kernel32dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Private Sub Command1_Click()

If Ydcp() = False Then MsgBox "没有检测到移动磁盘" Else MsgBox "检测到移动磁盘"

End Sub

Private Function Ydcp() As Boolean

Dim i As Integer

Ydcp = False

For i = 65 To 90

If GetDriveType(Chr(i) & ":\") = 2 Then

Ydcp = True

Exit Function

End If

Next i

End Function

请参考我的空间文章:

以上就是关于如何在当U盘被插入机时,能让VB程序知道,并获得该U盘的路径啊全部的内容,包括:如何在当U盘被插入机时,能让VB程序知道,并获得该U盘的路径啊、求助:用vb做从u盘(未知盘符)复制文件到其他盘、在Vb中,如何编制代码,实现考贝U盘里所有的文件到电脑中另一个驱动器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9392518.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存