Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Определить серийный номер устройства с которого запущен скрипт. (http://forum.oszone.net/showthread.php?t=204378)

Centrinar 09-04-2011 22:44 1654918

Определить серийный номер устройства с которого запущен скрипт.
 
Собственно как определить серийник если устройство может быть как и флешка так и HDD ну и т.д. Спасибо!

Iska 10-04-2011 01:07 1655016

Что подразумевается под «серийный номер устройства»? WMI, класс «Win32_LogicalDisk», свойство «VolumeSerialNumber», оно же «DriveGetSerial ()»?!

Centrinar 10-04-2011 02:08 1655036

DriveGetSeria

madmasles 10-04-2011 05:35 1655072

Centrinar,
Код:

#include <WinAPIEx.au3>

$sProcess = 'notepad.exe'
Run('notepad.exe', '', @SW_MINIMIZE)
Sleep(1000)
$PID = ProcessExists($sProcess)
If $PID Then
    $sPath = _WinAPI_GetProcessFileName($PID)
    $sDrive = _WinAPI_PathStripToRoot($sPath)
    $sSerial = DriveGetSerial($sDrive)
    MsgBox(64, 'Info', 'Процесс: ' & $sProcess & @LF & 'Путь: ' & $sPath & @LF & 'Диск: ' & _
            $sDrive & @LF & '№: Диска ' & $sDrive & ' = ' & $sSerial)
    ProcessClose($sProcess)
EndIf

WinAPIEx.au3

AZJIO 10-04-2011 10:27 1655118

Centrinar, MsgBox(0, 'Это что ли?', DriveGetSerial(StringLeft(@ScriptDir, 2)))

Iska 10-04-2011 10:30 1655123

Код:

#include <file.au3>
AutoItSetOption("MustDeclareVars", 1)

Local $sDrive, $sDir, $sFName, $sExt
_PathSplit(@ScriptFullPath, $sDrive, $sDir, $sFName, $sExt)
ConsoleWrite(Hex(Number(DriveGetSerial($sDrive))) & @CRLF)


Local $oFSO = ObjCreate("Scripting.FileSystemObject")
ConsoleWrite(Hex($oFSO.GetDrive($oFSO.GetDriveName(@ScriptFullPath)).SerialNumber) & @CRLF)
$oFSO = 0


Local $oSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
ConsoleWrite($oSWbemLocator.ConnectServer(".", "root\cimv2").Get("Win32_LogicalDisk.DeviceID='" & $sDrive & "'").VolumeSerialNumber & @CRLF)
$oSWbemLocator = 0


AZJIO 10-04-2011 13:35 1655192

Можно просто hex сделать MsgBox(0, 'Это что ли?', Hex(DriveGetSerial(StringLeft(@ScriptDir, 2))))

Centrinar 10-04-2011 14:20 1655218

Для не знающих, что значит HEX

Iska 10-04-2011 14:27 1655225

Перевод числа в строку в шестнадцатеричной системе счисления.
Цитата:

Цитата Function Reference
Hex

Returns a string representation of an integer or of a binary type converted to hexadecimal.



Время: 21:24.

Время: 21:24.
© OSzone.net 2001-