исправил свой скрипт для DevEject.exe
Code: | ' ===============================================
' Вызывает окно безопасного отключения USB-дисков
' Автор: SkOle
' ===============================================
Dim WSH
Set WSH = CreateObject("WScript.Shell")
Commander_Path = WSH.ExpandEnvironmentStrings("%COMMANDER_PATH%")
Exe = (chr(34) & Commander_Path + "\System\Bin\DevEject\deveject.exe" & chr(34))
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
For Each objDisk In objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive")
If objDisk.InterfaceType = "USB" Then
If MsgBox("Отключить " & objDisk.Caption & " ?", vbYesNo + vbQuestion, "Безопасное извлечение устройств") = vbYes Then
WSH.Run Exe & " -EjectId:" & objDisk.PNPDeviceID
End If
End If
Next |
работает с несколькими устройствами, автоматически определяет все устройства типа "USB" и поочередно предлагает их отключить, извлечение устройств идет по ID, а не по букве диска |