begin process at 2008 05 17 03:04:07
1 173 899 membres
32 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

INFORMATION DISQUE DUR


Information sur la source

Catégorie :Système Niveau : Initié Date de création : 28/11/2004 Vu / téléchargé: 9 330 / 2 122

Note :
9,5 / 10 - par 8 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note


Description

Ce code permet de retourner diverses information sur le disque dur comme le numéro de série, le modèle, etc...

Pour information il retourne le numéro du disque et non pas le numéro de partition qui elle change après un formatage.

Ce code n'est pas de moi, je le poste ici uniquement pour information, je ne serais donc pas responsable des désagrément qu'il pourrait engendrer.
Je ne garantis pas non plus qu'il fonctionne sur tout les types de disque dur, en tout cas il fonctionne chez moi.
Testé sur win98 et 2000.

J'ai trouvé ce code sur dBforums :
http://www.dbforums.com/t876711.html

Conclusion

Je pense que ce code est une bonne base de départ pour récupérer d'autres types d'info. Il peut être amélioré.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de DeadlyPredator le 29/11/2004 06:18:21

    ATTENTION!!! Uniquement les disque durs utilisant la technologie Smart vont fonctionner... cependant, je crois que tout les disque durs datant de 4 ans le sont. C'est vérifier. Fonctionne sous Win98 Se.

  • signaler à un administrateur
    Commentaire de Renfield le 29/11/2004 08:53:59 administrateur CS

    NT4 aussi....

    tout OS visiblement...

  • signaler à un administrateur
    Commentaire de amer_ezahir le 18/01/2005 01:07:11

    ton code source est super car malgré on formate le disque dur le n° de série reste le même ,merci
    je te souhaite bon courage
    je veux demande seulement c'est tu peux ajouter des commentaire sur chaque procédure ou linge du ton code source "Informations Disque dur"

  • signaler à un administrateur
    Commentaire de Nocturne le 18/01/2005 02:38:44

    C'est vrai, il manque qq commentaires mais actuellement j'ai pas trop le temps de rajouter des commentaires vu que je bosse sur un gros projet. De plus comme je l'ai indiqué, ce code n'est pas a 100% de moi. J'ai juste fait qq modifications a vous maintenant de l'améliorer.
    Il est posté ici juste pour information car beaucoup d'entre vous cherche a recupérer le numéro du disque.
    Bonne Prog.

  • signaler à un administrateur
    Commentaire de gui636 le 08/04/2005 11:02:43

    Je te remercie d'avoir posté ce prog, ca peut être assez utile, cependant j'ai une question:

    si on possède plusieurs disques durs, quel est le code affiché par le programme? Celui contenant le système d'exploitation? ou celui sur lequel on exécute le programme?

  • signaler à un administrateur
    Commentaire de Nocturne le 08/04/2005 11:56:44

    Salut gui636,

    Actuellement ce code donne le numéro du 1er disque dur ("c:\"), PRIMARY_MASTER (0).

    Il est tout a fait possible après qq modifications de récupérer les numéros des autres disques, PRIMARY_SLAVE (1), SECONDARY_MASTER (2) ou SECONDARY_SLAVE (3).

    Nocturne

  • signaler à un administrateur
    Commentaire de P__ROMEO le 23/10/2005 12:22:20

    Salut nocturne.

    j'ai passé le site en revu, et aucun code n'était juste. heuresement que jack m'a dirigé vers ce poste.
    Bon travail.

  • signaler à un administrateur
    Commentaire de adil2006 le 27/02/2006 00:32:44

    Merci Nocturne de poster ce joli programme...c trés utile..
    Bn courage.

  • signaler à un administrateur
    Commentaire de CHARFEDDINE1205 le 08/05/2006 15:13:37

    j'ai tester cette application sur deux ordinateurs différents.Elle a bien marchée sur le premier mais sur le deusieme elle affiche le message "not present" alors qu'il existe un disque dur.SVP essaier de m'expliquer qu'est cequi ne marche pas bien?

  • signaler à un administrateur
    Commentaire de Nocturne le 08/05/2006 16:50:15

    Si cela ne fonctionne pas sur ton 2eme ordi, c'est peut etre que le disque dur installé sur ta machine n'utilise pas la technologie Smart.

  • signaler à un administrateur
    Commentaire de sharkus le 14/01/2007 17:31:08

    Super cette source.
    J'avais trouvé comment récupérer le No de série de la partition mais pas le No de série du disque physique.

    Merci beaucoup

  • signaler à un administrateur
    Commentaire de docjokos le 03/07/2007 14:12:33

    Bonjour, merci pour ce programme bien utile... j'ai toutefois une demande : le programme se lance-t-il forcément dans une fenêtre pour s'exécuter ? son utilisation en ligne de commande (genre pour récupérer le résultat avec un script) est-elle possible ?

  • signaler à un administrateur
    Commentaire de Nocturne le 03/07/2007 20:44:02

    Pour l instant il se lance dans une fenêtre.
    Il pourrait être modifier sans fenêtre et avec qq lignes de programmation pour écrire les résultats dans un fichier sous windows.
    En ligne de commande tu pourrais a ce moment la, faire une lecture du fichier afin de récupérer le résultat.

    a+

  • signaler à un administrateur
    Commentaire de Sinsitrus le 13/08/2007 21:00:12

    Salut !
    Et comment on peux modifier ce numéro de série ?
    Il s'avère utile pour des ligiciels qui enregistre ce numéro et en veut plus s'installer même après mille formatage.

  • signaler à un administrateur
    Commentaire de Sinsitrus le 13/08/2007 21:01:02

    10/10 ^^ parfait ! j'ai adoré ^^

  • signaler à un administrateur
    Commentaire de CmTop le 01/12/2007 15:51:13

    SUPERBE Prog, mais ne fonctionne pas avec SATA 150, ET RAID

  • signaler à un administrateur
    Commentaire de zorasalem le 09/05/2008 00:16:53

    Salut
         J'aime bien en tirer profit de ce programme que  j'ai tant cherché, mais... pouvez-vous cher Mr m'indiquer s'il est possible de l'adapter à DELPHI dans la mesure de votre possible, je vous en serai reconnaissant.
                                       Amicalement
                                              SALEM

  • signaler à un administrateur
    Commentaire de Renfield le 09/05/2008 04:25:00 administrateur CS

    oui, bien sur

  • signaler à un administrateur
    Commentaire de nourwahiba le 12/05/2008 11:54:05

    bonjour a tous
    j'ai exécuter ce programme sur pas mal de pc (5) dont un n'a rien afficher ( le numéro de disque dur n'apparait  pas )
    j'aimerai bien savoir pourquoi ?
    merci et bonne suite

  • signaler à un administrateur
    Commentaire de Nocturne le 12/05/2008 12:29:31

    C'est peut-être que ton disque n'utilise pas la technologie Smart???

  • signaler à un administrateur
    Commentaire de nourwahiba le 12/05/2008 13:08:28

    mais je nai pas bien saisie la technologie smart ????
    dans la société ou je travaille , on utilise des disque dure sata et IDE

  • signaler à un administrateur
    Commentaire de Nocturne le 12/05/2008 19:48:57

    =>Nourwahiba,
    Self-Monitoring, Analysis, and Reporting Technology, ou S.M.A.R.T., (littéralement Technologie d'Auto-surveillance, d'Analyse et de Rapport) est un système de surveillance du disque dur d'un ordinateur.

    Je ne suis pas spécialiste mais normalement tout les disques durs utilisent S.M.A.R.T., alors je ne pense pas que cela soit ton problème.

    Il y a peut-être un problème de compatibilité avec ta carte mère???

    Il faut aussi etre administrateur de sa machine.

    Je n'ai pas trop d'idée.
    Bonne recherche,

  • signaler à un administrateur
    Commentaire de CmTop le 13/05/2008 07:51:41

    He! non, Le RAID Sata 150 n'utilise pas cette techno.

  • signaler à un administrateur
    Commentaire de nourwahiba le 13/05/2008 10:53:44

    bonjour
    merci pour vous Nocturne   et CmTop  pour ces informations
    j'ai trouvé une solution trés imoprtante sur le net qui donne le numéro de serie logique( de la partition) et le numero materiel( physique) qui ne change pas meme si on formate notre disque dure et les voila les deux procedures pour ceux qui les cherche!!!!
    il faut avoir une forme, 2 textbox  text1 et text2 , 1label( label1)

    sur text1 ----------------> n de serie logique
    sur text2----------------->n de série materiel
    vous copiez ce code sur la partie code de la forme



    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
    '------------------------------------------------
    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
          

    Text2.Text = Trim$(.SerialNumber)

    Label1.Caption = "N° de série du disque dur"
    Text1.Text = NoSerieDisque("D:\")
                
          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

    Private Sub Command1_Click()
        End
    End Sub
    '**********************


    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
    '**********************

    bon courage  

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS