Ducis » 15.09.2003 (Пн) 15:36
Вот, юзай:
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Public Const GET_SERIAL = 1
Public Const GET_LABEL = 2
Public Const GET_TYPE = 3
Public Function GetDriveInfo(strDrive As String, iType As Integer) As String
'возвращает информацию о диске
Dim SerialNum As Long
Dim strLabel As String
Dim strType As String
Dim lRetVal As Long
strLabel = Space(256)
strType = Space(256)
lRetVal = GetVolumeInformation(strDrive, strLabel, Len(strLabel), SerialNum, 0, 0, strType, Len(strType))
Select Case iType
Case Is = GET_SERIAL
GetDriveInfo = CStr(SerialNum)
Case Is = GET_LABEL
GetDriveInfo = strLabel
Case Is = GET_TYPE
GetDriveInfo = strType
End Select
End Function
Как ты понял, GET_SERIAL - и есть серийный номер. Только букву диска передавай со слешем (прим.: "Е:\")
Если надо подскажу как по дискам в системе пробежать и определить кто из них кто (флопик, винт, сидюк и т.п.)
Понимаешь? (с)Б.Ельцин.