vb(vb.net)能不能修改计算机中指定驱动器的盘符? 我想在U盘插入时通过序列号识别指定设备并
vb(vb.net)能不能修改计算机中指定驱动器的盘符?我想在U盘插入时通过序列号识别指定设备并将其盘符修改至指定盘符,问能否实现,望大神赐教。...
vb(vb.net)能不能修改计算机中指定驱动器的盘符? 我想在U盘插入时通过序列号识别指定设备并将其盘符修改至指定盘符,问能否实现,望大神赐教。
展开
1个回答
展开全部
Sub RenameVolume()
'利用Shell函数在命令提示符下执行Diskpart命令的脚本,并存入日志文件
'达到替换逻辑盘符的目的
'在WindowsXp系统下测试成功
'获取临时文件路径
Temp = Environ("TEMP") & "\"
'获取命令提示符路径
Cmd = Environ("ComSpec")
'设置脚本文件和日志文件路径
ScriptFile = Temp & "DiskpartScript.txt"
ScriptLog = Temp & "DiskpartScript.log"
'回车符和换行符
vbLfCr = vbLf & vbCr
'脚本文件内容
'选择卷e
'移除盘符e
'分配盘符m
'退出Diskpart
ScriptTxt = "select volume e" & vbLf & vbCr & _
"Remove letter = e" & vbLf & vbCr & _
"assign letter = m" & vbLf & vbCr & _
"exit" & vbLf & vbCr
'打开脚本文件并读取内容
Open ScriptFile For Output As #1
Print #1, ScriptTxt
Close #1
'打开错误处理
On Error Resume Next
'删除原有日志文件
Kill ScriptLog
'关闭错误处理
On Error GoTo 0
'执行脚本
ShellTxt = Cmd & " /c ""diskpart.exe /S " & ScriptFile & " > " & ScriptLog & """"
Shell ShellTxt
'打开错误处理
On Error Resume Next
Do
Err.Number = 0
'打开日志文件并读取内容,因日志文件存取速度慢,必须以锁定方式打开,否则会出错
Open ScriptLog For Input Lock Read Write As #1
DoEvents
Loop Until Err.Number = 0
'关闭错误处理
On Error GoTo 0
'日志文件中含有中文字符,必须以InputB函数以字节方式读取,否则长度会超出
LogTxt = InputB(LOF(1), #1)
Close #1
'转换以字节方式读取的日志文件内容
LogTxt = StrConv(LogTxt, vbUnicode)
'如果日志中出现两次成功,则认为执行成功,否则认为失败
If Len(LogTxt) - Len(Replace(LogTxt, "成功", "", 1)) = 4 Then
MsgBox "盘符替换成功!"
Else
MsgBox "盘符替换失败!"
End If
'删除临时文件
Kill ScriptFile
Kill ScriptLog
End Sub
'利用Shell函数在命令提示符下执行Diskpart命令的脚本,并存入日志文件
'达到替换逻辑盘符的目的
'在WindowsXp系统下测试成功
'获取临时文件路径
Temp = Environ("TEMP") & "\"
'获取命令提示符路径
Cmd = Environ("ComSpec")
'设置脚本文件和日志文件路径
ScriptFile = Temp & "DiskpartScript.txt"
ScriptLog = Temp & "DiskpartScript.log"
'回车符和换行符
vbLfCr = vbLf & vbCr
'脚本文件内容
'选择卷e
'移除盘符e
'分配盘符m
'退出Diskpart
ScriptTxt = "select volume e" & vbLf & vbCr & _
"Remove letter = e" & vbLf & vbCr & _
"assign letter = m" & vbLf & vbCr & _
"exit" & vbLf & vbCr
'打开脚本文件并读取内容
Open ScriptFile For Output As #1
Print #1, ScriptTxt
Close #1
'打开错误处理
On Error Resume Next
'删除原有日志文件
Kill ScriptLog
'关闭错误处理
On Error GoTo 0
'执行脚本
ShellTxt = Cmd & " /c ""diskpart.exe /S " & ScriptFile & " > " & ScriptLog & """"
Shell ShellTxt
'打开错误处理
On Error Resume Next
Do
Err.Number = 0
'打开日志文件并读取内容,因日志文件存取速度慢,必须以锁定方式打开,否则会出错
Open ScriptLog For Input Lock Read Write As #1
DoEvents
Loop Until Err.Number = 0
'关闭错误处理
On Error GoTo 0
'日志文件中含有中文字符,必须以InputB函数以字节方式读取,否则长度会超出
LogTxt = InputB(LOF(1), #1)
Close #1
'转换以字节方式读取的日志文件内容
LogTxt = StrConv(LogTxt, vbUnicode)
'如果日志中出现两次成功,则认为执行成功,否则认为失败
If Len(LogTxt) - Len(Replace(LogTxt, "成功", "", 1)) = 4 Then
MsgBox "盘符替换成功!"
Else
MsgBox "盘符替换失败!"
End If
'删除临时文件
Kill ScriptFile
Kill ScriptLog
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询