begin process at 2012 02 04 14:39:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > LIRE LE NUMERO DE SÉRIE D'UN DISQUE

LIRE LE NUMERO DE SÉRIE D'UN DISQUE


 Information sur la source

Note :
9,2 / 10 - par 5 personnes
9,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :api, getvolumeinformation, numéro, série, disque Niveau :Initié Date de création :14/01/2000 Vu :17 019

Auteur : pepito

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

Créer un nouveau projet.
Ajouter sur la feuille:
- un Bouton de commande (pour quitter)
- un Label
- une TextBox sous le label
Ajouter le code ci-dessous dans le code de "Form1".


Source

  • Private Declare Function GetVolumeInformation Lib "kernel32.dll" _
  • 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
  • '------------------------------------------------
  • Function NoSerieDisque(strDrive As String) As Long
  • Dim SerialNum As Long
  • Dim Res As Long
  • Dim Trucnull As Long
  • Dim Strnul As String
  • Res = GetVolumeInformation(strDrive, Strnul, _
  • Trucnull, SerialNum, Trucnull, Trucnull, Strnul, Trucnull)
  • Me.Caption = strDrive
  • NoSerieDisque = SerialNum
  • End Function
  • '**********************
  • Private Sub Command1_Click()
  • End
  • End Sub
  • '**********************
  • Private Sub Form_Load()
  • Label1.Caption = "N° de série du disque dur"
  • Text1.Text = NoSerieDisque("C:\")
  • End Sub
Private Declare Function GetVolumeInformation Lib "kernel32.dll" _
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
'------------------------------------------------
Function NoSerieDisque(strDrive As String) As Long
Dim SerialNum As Long
Dim Res As Long
Dim Trucnull As Long
Dim Strnul As String
Res = GetVolumeInformation(strDrive, Strnul, _
Trucnull, SerialNum, Trucnull, Trucnull, Strnul, Trucnull)
Me.Caption = strDrive
NoSerieDisque = SerialNum
End Function
'**********************
Private Sub Command1_Click()
    End
End Sub
'**********************
Private Sub Form_Load()
    Label1.Caption = "N° de série du disque dur"
    Text1.Text = NoSerieDisque("C:\")
End Sub

 Conclusion

Dans cet exemple, "C:\" est en dur, mais on peut passer n'importe quelle designation d'unité logique.


 Sources du même auteur

FORCER LES MAJUSCULES DANS UNE TEXTBOX
EMPECHER LA SAISIE DANS UNE TEXTBOX
PASSAGE DE PARAMETRES À UN "SHELL"

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

 Sources en rapport avec celle ci

Source avec Zip NUMÉRO DE SÉRIE EN FONCTION DU PC par Tioneb
Source avec Zip LECTURE DES ATTRIBUTS SMART D'UN DIQUE DUR IDE (TEMPÉRATURE ... par ShareVB
Source avec Zip NUMÉRO DE SÉRIE DANS EXE par Lebidouilleux
Source avec Zip CATALOGUER UN DISQUE: FILESYSTEMOBJECT VS. FONCTION API par FlyKiller
RECUPERER LE LABEL ET LE NUMERO DE SERIE D'UN DISQUE DUR par Nix

Commentaires et avis

Commentaire de aKheNathOn le 27/09/2002 00:36:46

Franchement c trop cool ce code , c exactement ce que je recherchais , c trés utile pour les pgm de sécurité ... mais le n° de série de la carte mére c possible aussi ?

Commentaire de thedudul le 30/09/2003 00:39:44

Franchement nikel, pile ce que je cherchai !

Commentaire de chiffre le 16/02/2004 21:15:22

Merci!
Beaucoup

Pour le code pour avoir accès au numéro du disque dur.
J'ai vu bien des codes mais le tiens est simplement tout ce qu'il faut.
Encore Merci

Chiffre
Jean-Marc

Commentaire de ana_adil le 21/12/2004 19:40:36

Ton code donne le n de série de la partition et non du disque dur.

Commentaire de donsagbo le 14/06/2006 18:11:01

je ne comprend pas

Commentaire de Gnain le 15/06/2006 03:47:35

n de série de la partition changera si l'ordinateur est formater mais le n serie de disque dur lui reste le meme

Commentaire de vbmarh le 26/01/2007 02:13:13

Salut Gnain trés bonne remarque tu dois avoir une idée pour ca aller courage vend la meche! ici c fé pour s entre aider

Commentaire de Lucky Hal le 02/05/2007 18:53:02

Bonjour,
Je ne suis pas arrivé à faire fonctionner ce code, par contre j'ai trouver autre chose et je crois qu'il s'agit du numéro de disque physique : (http://www.c2i.fr/code.aspx?IDCode=556)

            Dim oDisk As New ManagementObject("Win32_LogicalDisk.DeviceID=""c:""")
            oDisk.Get()
            MsgBox("Num disque " + oDisk("VolumeSerialNumber").ToString)

Commentaire de Gnain le 03/05/2007 01:34:18

Voici le code qui va chercher le vraie numéro de serie du disque dur. Il vous faut un form1 et un textbox appelé text1


'***********placer ce code dans un form1**********

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
                                       (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
                                      (ByVal hwnd As Long, ByVal nIndex As Long, _
                                        ByVal dwNewLong As Long) As Long



Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const OPEN_EXISTING = 3
Private Const CREATE_NEW = 1
Private Const INVALID_HANDLE_VALUE = -1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const IDENTIFY_BUFFER_SIZE = 512
Private Const OUTPUT_DATA_SIZE = IDENTIFY_BUFFER_SIZE + 16

'GETVERSIONOUTPARAMS contains the data returned
'from the Get Driver Version function
Private Type GETVERSIONOUTPARAMS
   bVersion       As Byte 'Binary driver version.
   bRevision      As Byte 'Binary driver revision
   bReserved      As Byte 'Not used
   bIDEDeviceMap  As Byte 'Bit map of IDE devices
   fCapabilities  As Long 'Bit mask of driver capabilities
   dwReserved(3)  As Long 'For future use
End Type

'IDE registers
Private Type IDEREGS
   bFeaturesReg     As Byte 'Used for specifying SMART "commands"
   bSectorCountReg  As Byte 'IDE sector count register
   bSectorNumberReg As Byte 'IDE sector number register
   bCylLowReg       As Byte 'IDE low order cylinder value
   bCylHighReg      As Byte 'IDE high order cylinder value
   bDriveHeadReg    As Byte 'IDE drive/head register
   bCommandReg      As Byte 'Actual IDE command
   bReserved        As Byte 'reserved for future use - must be zero
End Type

'SENDCMDINPARAMS contains the input parameters for the
'Send Command to Drive function
Private Type SENDCMDINPARAMS
   cBufferSize     As Long     'Buffer size in bytes
   irDriveRegs     As IDEREGS  'Structure with drive register values.
   bDriveNumber    As Byte     'Physical drive number to send command to (0,1,2,3).
   bReserved(2)    As Byte     'Bytes reserved
   dwReserved(3)   As Long     'DWORDS reserved
   bBuffer()      As Byte      'Input buffer.
End Type

'Valid values for the bCommandReg member of IDEREGS.
Private Const IDE_ID_FUNCTION = &HEC            'Returns ID sector for ATA.
Private Const IDE_EXECUTE_SMART_FUNCTION = &HB0 'Performs SMART cmd.
                                                'Requires valid bFeaturesReg,
                                                'bCylLowReg, and bCylHighReg

'Cylinder register values required when issuing SMART command
Private Const SMART_CYL_LOW = &H4F
Private Const SMART_CYL_HI = &HC2

'Status returned from driver
Private Type DRIVERSTATUS
   bDriverError  As Byte          'Error code from driver, or 0 if no error
   bIDEStatus    As Byte          'Contents of IDE Error register
                                  'Only valid when bDriverError is SMART_IDE_ERROR
   bReserved(1)  As Byte
   dwReserved(1) As Long
End Type

Private Type IDSECTOR
   wGenConfig                 As Integer
   wNumCyls                   As Integer
   wReserved                  As Integer
   wNumHeads                  As Integer
   wBytesPerTrack             As Integer
   wBytesPerSector            As Integer
   wSectorsPerTrack           As Integer
   wVendorUnique(2)           As Integer
   sSerialNumber(19)          As Byte
   wBufferType                As Integer
   wBufferSize                As Integer
   wECCSize                   As Integer
   sFirmwareRev(7)            As Byte
   sModelNumber(39)           As Byte
   wMoreVendorUnique          As Integer
   wDoubleWordIO              As Integer
   wCapabilities              As Integer
   wReserved1                 As Integer
   wPIOTiming                 As Integer
   wDMATiming                 As Integer
   wBS                        As Integer
   wNumCurrentCyls            As Integer
   wNumCurrentHeads           As Integer
   wNumCurrentSectorsPerTrack As Integer
   ulCurrentSectorCapacity    As Long
   wMultSectorStuff           As Integer
   ulTotalAddressableSectors  As Long
   wSingleWordDMA             As Integer
   wMultiWordDMA              As Integer
   bReserved(127)             As Byte
End Type

'Structure returned by SMART IOCTL commands
Private Type SENDCMDOUTPARAMS
  cBufferSize   As Long         'Size of Buffer in bytes
  DRIVERSTATUS  As DRIVERSTATUS 'Driver status structure
  bBuffer()    As Byte          'Buffer of arbitrary length for data read from drive
End Type

'Vendor specific feature register defines
'for SMART "sub commands"
Private Const SMART_ENABLE_SMART_OPERATIONS = &HD8

'Status Flags Values
Public Enum STATUS_FLAGS
   PRE_FAILURE_WARRANTY = &H1
   ON_LINE_COLLECTION = &H2
   PERFORMANCE_ATTRIBUTE = &H4
   ERROR_RATE_ATTRIBUTE = &H8
   EVENT_COUNT_ATTRIBUTE = &H10
   SELF_PRESERVING_ATTRIBUTE = &H20
End Enum

'IOCTL commands
Private Const DFP_GET_VERSION = &H74080
Private Const DFP_SEND_DRIVE_COMMAND = &H7C084
Private Const DFP_RECEIVE_DRIVE_DATA = &H7C088

Private Type ATTR_DATA
   AttrID As Byte
   AttrName As String
   AttrValue As Byte
   ThresholdValue As Byte
   WorstValue As Byte
   StatusFlags As STATUS_FLAGS
End Type

Private Type DRIVE_INFO
   bDriveType As Byte
   SerialNumber As String
   Model As String
   FirmWare As String
   Cilinders As Long
   Heads As Long
   SecPerTrack As Long
   BytesPerSector As Long
   BytesperTrack As Long
   NumAttributes As Byte
   Attributes() As ATTR_DATA
End Type

Private Enum IDE_DRIVE_NUMBER
   PRIMARY_MASTER
  
End Enum

Private Declare Function CreateFile Lib "kernel32" _
   Alias "CreateFileA" _
  (ByVal lpFileName As String, _
   ByVal dwDesiredAccess As Long, _
   ByVal dwShareMode As Long, _
   lpSecurityAttributes As Any, _
   ByVal dwCreationDisposition As Long, _
   ByVal dwFlagsAndAttributes As Long, _
   ByVal hTemplateFile As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" _
  (ByVal hObject As Long) As Long
  
Private Declare Function DeviceIoControl Lib "kernel32" _
  (ByVal hDevice As Long, _
   ByVal dwIoControlCode As Long, _
   lpInBuffer As Any, _
   ByVal nInBufferSize As Long, _
   lpOutBuffer As Any, _
   ByVal nOutBufferSize As Long, _
   lpBytesReturned As Long, _
   lpOverlapped As Any) As Long
  
Private Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (hpvDest As Any, _
   hpvSource As Any, _
   ByVal cbCopy As Long)
  
Private Type OSVERSIONINFO
   OSVSize As Long
   dwVerMajor As Long
   dwVerMinor As Long
   dwBuildNumber As Long
   PlatformID As Long
   szCSDVersion As String * 128
End Type

Private Declare Function GetVersionEx Lib "kernel32" _
   Alias "GetVersionExA" _
  (LpVersionInformation As OSVERSIONINFO) As Long

Private Sub Form_Load()

'
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) Xor WS_MAXIMIZEBOX
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(Me.hwnd, GWL_STYLE) Xor WS_MINIMIZEBOX
'
'
'

    Dim di As DRIVE_INFO
   Dim drvNumber As Long
   For drvNumber = PRIMARY_MASTER To QUARTIARY_SLAVE
    di = GetDriveInfo(drvNumber)
      
          
      With di
      

Text1.Text = Trim$(.SerialNumber)

    
            
      End With
      
   Next


End Sub

  
Private Function GetDriveInfo(drvNumber As IDE_DRIVE_NUMBER) As DRIVE_INFO
    
   Dim hDrive As Long
   Dim di As DRIVE_INFO
  
   hDrive = SmartOpen(drvNumber)
  
   If hDrive <> INVALID_HANDLE_VALUE Then
  
      If SmartGetVersion(hDrive) = True Then
      
         With di
            .bDriveType = 0
            .NumAttributes = 0
            ReDim .Attributes(0)
            .bDriveType = 1
         End With
        
         If SmartCheckEnabled(hDrive, drvNumber) Then
            
            If IdentifyDrive(hDrive, IDE_ID_FUNCTION, drvNumber, di) = True Then
        
               GetDriveInfo = di
              
            End If   'IdentifyDrive
         End If   'SmartCheckEnabled
      End If   'SmartGetVersion
   End If   'hDrive <> INVALID_HANDLE_VALUE
  
   CloseHandle hDrive
  
End Function


Private Function IdentifyDrive(ByVal hDrive As Long, _
                               ByVal IDCmd As Byte, _
                               ByVal drvNumber As IDE_DRIVE_NUMBER, _
                               di As DRIVE_INFO) As Boolean
    
  'Function: Send an IDENTIFY command to the drive
  'drvNumber = 0-3
  'IDCmd = IDE_ID_FUNCTION or IDE_ATAPI_ID
   Dim SCIP As SENDCMDINPARAMS
   Dim IDSEC As IDSECTOR
   Dim bArrOut(OUTPUT_DATA_SIZE - 1) As Byte
   Dim cbBytesReturned As Long
  
   With SCIP
      .cBufferSize = IDENTIFY_BUFFER_SIZE
      .bDriveNumber = CByte(drvNumber)
        
      With .irDriveRegs
         .bFeaturesReg = 0
         .bSectorCountReg = 1
         .bSectorNumberReg = 1
         .bCylLowReg = 0
         .bCylHighReg = 0
         .bDriveHeadReg = &HA0 'compute the drive number
         If Not IsWinNT4Plus Then
            .bDriveHeadReg = .bDriveHeadReg Or ((drvNumber And 1) * 16)
         End If
         'the command can either be IDE
         'identify or ATAPI identify.
         .bCommandReg = CByte(IDCmd)
      End With
   End With
  
   If DeviceIoControl(hDrive, _
                      DFP_RECEIVE_DRIVE_DATA, _
                      SCIP, _
                      Len(SCIP) - 4, _
                      bArrOut(0), _
                      OUTPUT_DATA_SIZE, _
                      cbBytesReturned, _
                      ByVal 0&) Then
                      
      CopyMemory IDSEC, bArrOut(16), Len(IDSEC)

      di.Model = StrConv(SwapBytes(IDSEC.sModelNumber), vbUnicode)
      di.SerialNumber = StrConv(SwapBytes(IDSEC.sSerialNumber), vbUnicode)
      
      IdentifyDrive = True
      
    End If
    
End Function


Private Function IsWinNT4Plus() As Boolean

  'returns True if running Windows NT4 or later
   Dim osv As OSVERSIONINFO

   osv.OSVSize = Len(osv)

   If GetVersionEx(osv) = 1 Then
  
      IsWinNT4Plus = (osv.PlatformID = VER_PLATFORM_WIN32_NT) And _
                     (osv.dwVerMajor >= 4)

   End If

End Function


Private Function SmartCheckEnabled(ByVal hDrive As Long, _
                                   drvNumber As IDE_DRIVE_NUMBER) As Boolean
  
  'SmartCheckEnabled - Check if SMART enable
  'FUNCTION: Send a SMART_ENABLE_SMART_OPERATIONS command to the drive
  'bDriveNum = 0-3
   Dim SCIP As SENDCMDINPARAMS
   Dim SCOP As SENDCMDOUTPARAMS
   Dim cbBytesReturned As Long
  
   With SCIP
  
      .cBufferSize = 0
      
      With .irDriveRegs
           .bFeaturesReg = SMART_ENABLE_SMART_OPERATIONS
           .bSectorCountReg = 1
           .bSectorNumberReg = 1
           .bCylLowReg = SMART_CYL_LOW
           .bCylHighReg = SMART_CYL_HI

           .bDriveHeadReg = &HA0
            If Not IsWinNT4Plus Then
               .bDriveHeadReg = .bDriveHeadReg Or ((drvNumber And 1) * 16)
            End If
           .bCommandReg = IDE_EXECUTE_SMART_FUNCTION
          
       End With
      
       .bDriveNumber = drvNumber
      
   End With
  
   SmartCheckEnabled = DeviceIoControl(hDrive, _
                                      DFP_SEND_DRIVE_COMMAND, _
                                      SCIP, _
                                      Len(SCIP) - 4, _
                                      SCOP, _
                                      Len(SCOP) - 4, _
                                      cbBytesReturned, _
                                      ByVal 0&)
End Function


Private Function SmartGetVersion(ByVal hDrive As Long) As Boolean
  
   Dim cbBytesReturned As Long
   Dim GVOP As GETVERSIONOUTPARAMS
  
   SmartGetVersion = DeviceIoControl(hDrive, _
                                     DFP_GET_VERSION, _
                                     ByVal 0&, 0, _
                                     GVOP, _
                                     Len(GVOP), _
                                     cbBytesReturned, _
                                     ByVal 0&)
  
End Function


Private Function SmartOpen(drvNumber As IDE_DRIVE_NUMBER) As Long

  'Open SMART to allow DeviceIoControl
  'communications and return SMART handle

   If IsWinNT4Plus() Then
      
      SmartOpen = CreateFile("\\.\PhysicalDrive" & CStr(drvNumber), _
                             GENERIC_READ Or GENERIC_WRITE, _
                             FILE_SHARE_READ Or FILE_SHARE_WRITE, _
                             ByVal 0&, _
                             OPEN_EXISTING, _
                             0&, _
                             0&)

   Else
      
      SmartOpen = CreateFile("\\.\SMARTVSD", _
                              0&, 0&, _
                              ByVal 0&, _
                              CREATE_NEW, _
                              0&, _
                              0&)
   End If
  
End Function


Private Function SwapBytes(b() As Byte) As Byte()
  
  'Note: VB4-32 and VB5 do not support the
  'return of arrays from a function. For
  'developers using these VB versions there
  'are two workarounds to this restriction:
  '
  '1) Change the return data type ( As Byte() )
  '   to As Variant (no brackets). No change
  '   to the calling code is required.
  '
  '2) Change the function to a sub, remove
  '   the last line of code (SwapBytes = b()),
  '   and take advantage of the fact the
  '   original byte array is being passed
  '   to the function ByRef, therefore any
  '   changes made to the passed data are
  '   actually being made to the original data.
  '   With this workaround the calling code
  '   also requires modification:
  '
  '      di.Model = StrConv(SwapBytes(IDSEC.sModelNumber), vbUnicode)
  '
  '   ... to ...
  '
  '      Call SwapBytes(IDSEC.sModelNumber)
  '      di.Model = StrConv(IDSEC.sModelNumber, vbUnicode)
  
   Dim bTemp As Byte
   Dim cnt As Long

   For cnt = LBound(b) To UBound(b) Step 2
      bTemp = b(cnt)
      b(cnt) = b(cnt + 1)
      b(cnt + 1) = bTemp
   Next cnt
      
   SwapBytes = b()
      
End Function

Commentaire de vbmarh le 03/05/2007 03:34:17

Merci Gnain ca aide top

Commentaire de Lucky Hal le 04/05/2007 17:35:53

Bonjour,
J'aurais bien voulu tester le code de Gnain, mais je n'ai que vb2005, et donc plus d'une centaine d'erreurs a la compilation, j'ai essayer de passer ce code dans l'assistant de mise a jour du code vb6, mais il reste des erreurs que je n'arrive pas a corriger...Y aurait il quelqu'un qui pourrais traduire ce code pour vb2005 svp ?
Merci d'avance...

Commentaire de Gnain le 04/05/2007 19:43:24

Salut Lucky Hal
voici ce qu'il faut faire pour VB4-32 et VB5
suivre ces instructions.

Private Function SwapBytes(b() As Byte) As Byte()
  
  'Note: VB4-32 and VB5 do not support the
  'return of arrays from a function. For
  'developers using these VB versions there
  'are two workarounds to this restriction:
  '
  '1) Change the return data type ( As Byte() )
  '   to As Variant (no brackets). No change
  '   to the calling code is required.
  '
  '2) Change the function to a sub, remove
  '   the last line of code (SwapBytes = b()),
  '   and take advantage of the fact the
  '   original byte array is being passed
  '   to the function ByRef, therefore any
  '   changes made to the passed data are
  '   actually being made to the original data.
  '   With this workaround the calling code
  '   also requires modification:
  '
   '     di.Model = StrConv(SwapBytes(IDSEC.sModelNumber), vbUnicode)
  '
  '   ... to ...
  '
  '      Call SwapBytes(IDSEC.sModelNumber)
  '      di.Model = StrConv(IDSEC.sModelNumber, vbUnicode)
  
   Dim bTemp As Byte
   Dim cnt As Long

   For cnt = LBound(b) To UBound(b) Step 2
      bTemp = b(cnt)
      b(cnt) = b(cnt + 1)
      b(cnt + 1) = bTemp
   Next cnt
      
   SwapBytes = b()
      
End Function

Commentaire de playmore75 le 12/12/2007 23:28:15

thanks gain

Commentaire de bmwzezette le 18/04/2008 16:48:25 10/10

TRES TRES BIEN TON CODE  GNAIN
questions:
Pour moi qui debute, comment faire POUR AFFICHER dans des MsgBox ou dans une fenetre texte le bDriveType, le nb de Cilinders, de heads,de SecPerTrack,et de BytesperSector ? merci par avance pour ta reponse et pour des exemples

Commentaire de thony64270 le 09/09/2008 22:57:26

Gnain ton code ne marche pas sur toute les machine.
J'ai une machine vista qui renvoie rien.

Commentaire de Gnain le 10/09/2008 18:47:04

salut thony64270, malheureusement je ne peu t'aider car je ne suis pas encore passé a vista. Par contre si tu veut récupérer ce numéro pour un programme de sécurité, il est beaucoup plus façile de récupérer le numéros de série de windows au lieu du disque dur. Un code sources pour le numéros de série de windows est bon pour toute les machines peu importe la version.

Commentaire de Relax62 le 22/12/2011 15:58:01

Bonjour,

Désolé pour le déterrage de post !
Il y a quelques adaptations à effectuer pour le faire tourner en .net (au niveau de la déclaration).
Voici ce que j'ai du mettre pour compiler :

Private Declare Auto Function GetVolumeInformation Lib "kernel32.dll" ( _
     ByVal RootPathName As String, _
     ByVal VolumeNameBuffer As System.Text.StringBuilder, _
     ByVal VolumeNameSize As UInt32, _
     ByRef VolumeSerialNumber As UInt32, _
     ByRef MaximumComponentLength As UInt32, _
     ByRef FileSystemFlags As UInt32, _
     ByVal FileSystemNameBuffer As System.Text.StringBuilder, _
     ByVal FileSystemNameSize As UInt32) As UInt32

En espérant que ça puisse servir...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

numéro de série d'un disque dure [ par schamssi ] SalutComment identifier le numéro de série d'un disque dure directement à partir d'un code Visual BasicMerci Numéro de série du disque dur [ par mohapop ] Bon , c'est la vie j'ai un probl&#232;me tr&#233;s simple je veut un ActiveX qui m'envoyer le num&#232;ro de s&#233;rie de la disque dur (sous VB bien Numéro de série du disque dur [ par Jujufouq ] Salut tout le monde, j'aurais besoin de votre aide :Savez-vous comment trouver le numéro de série d'un disque dur en vb6?Merci d'avance à tous.Jujufou numéro de série du disque dur [ par oudjedi ] salut , je m'appel babi , j'ai un petite problem comment réstorer ( connétre ) le numéro de série du disque dur ( constructeur ) , avec un delphi Numéro de série réel du disque dur [ par catisback ] Bonjour &#224; tous,Quelqu'un connaitrait-il le moyen de r&#233;cup&#233;rer le num&#233;ro de s&#233;rie d'un disque dur (LE VRAI pas celui cr&#233;& Numéro de série disque dur [ par DD05 ] Bonjour, Je recherche une méthode pour trouver le numéro de série du disque dur. Il y a quelques codes sur le forum mais ces codes ne donnent pas le v Formatage [ par Sinsitrus ] Salut à tousje ne sais pas si vous avez remarqués mais sûrement ce fut le cas, quand on achète un disque dur et on y met le systeme, certains logiciel Récupérer le serialnumber d'un PC portable [ par lolokun ] Bonjour à tous,Tout d'abord je tenais à féliciter les admins et les membres réguliers car ce forum est vraiment très bien et j'ai appris beaucoup de c Numéro de Série [ par metalcoder ] Bonjour a tous, comment fait on pour convertir le numéro de serie que l'on trouve avec la fonction drive.serialnumber de l'objet FSO en un numero du numéro de série [ par mas_atef ] comment modifier le numéro de série d'un disque dur ?


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales