Войти

Показать полную графическую версию : [решено] проверка флешки по SN


Anarasius
23-11-2009, 23:17
Надо чтобы скрипт проверял флешку по серийнику если он правильный то выполнять скрипт дальше.

Iska
24-11-2009, 06:14
Можно попробовать посредством WMI:
AutoItSetOption("MustDeclareVars", 1)

Local $sTargetVolumeSerialNumber = "ABCDEFGH"
Local $bFound = False

Local $oSWbemServicesEx = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Local $cSWbemObjectSet = $oSWbemServicesEx.ExecQuery("SELECT * FROM Win32_LogicalDisk", "WQL", 0)
Local $oSWbemObjectEx


If $cSWbemObjectSet.Count > 0 Then
For $oSWbemObjectEx In $cSWbemObjectSet
ConsoleWrite("Drive: [" & $oSWbemObjectEx.Name & "]" & @TAB & "Serial number: [" & $oSWbemObjectEx.VolumeSerialNumber & "]" & @CRLF) ; Для отладки

If $oSWbemObjectEx.VolumeSerialNumber = $sTargetVolumeSerialNumber Then
ConsoleWrite("Found on drive [" & $oSWbemObjectEx.Name & "]" & @CRLF) ; Для отладки
$bFound = True

ExitLoop
EndIf
Next
EndIf

$oSWbemObjectEx = 0
$cSWbemObjectSet = 0
$oSWbemServicesEx = 0

If Not $bFound Then
Exit(1)
EndIf

;
; Здесь Ваши операторы
;

Exit(0)

amel27
24-11-2009, 07:18
$sSerial = "3634030921"
$sDrive = ""
$aDrives = DriveGetDrive ("REMOVABLE")

If IsArray($aDrives) Then
For $i=1 To $aDrives[0]
If DriveGetSerial($aDrives[$i]) == $sSerial Then $sDrive = $aDrives[$i]
Next
EndIf

If $sDrive == "" Then Exit MsgBox(16, "Ошибка", "Не найден требуемый диск")

Anarasius
24-11-2009, 14:17
А КАК УЗНАТЬ SN ФЛЕШКИ КОТОРЫЙ ВИДИТ СКРИПТ

amel27
24-11-2009, 18:12
Anarasius, пример в справке к DriveGetSerial()




© OSzone.net 2001-2012