L'eternel serial disk mais en VB 2005 ??

[Résolu]
Signaler
Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008
-
Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008
-
bonjour a tous
Au secours ! ,j'ai essayé les multiples codes presents sur le sujet mais ils sont tous en un ancien vb

mais voila je n'arrive pas a les faire fonctioner en vb 2005 (vs2005)
(private Declare Function GetVolumeInformation Lib "kernel32.dll" _alias "GetVolumeInformationA" (ByVal lpRootPathName As String
ect ect _
Alors ou il y a un truc autre a faire (une reference ou autre manip ? )
ou alors une commande net framwork 2 equivalente ?
merci d'avance pour votre aide...(je suis nul)

glop glop ;)

7 réponses

Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008

BINGO CA MARCHE !

un grand merci a vous les amis :) le code ci dessus avec tous les "as long" remplacés par des "as integer" fonctionne bien sous vb 2005
 
encore merci

glop glop ;)
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
Salut,
si ça marche pour vs2003, ça devrait pour 2005

http://www.developpez.net/forums/archive/index.php/t-67734.html

@+
Megafan
Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008

He ben non ,ca devrait mais ca ne le fait pas !
ya un petit quelque chose qui fait que ca fait pas !
j'ai essayé sur des modules ,des classes ,ca ne plante pas
mais ca me donne pas le resultat
j'ai essayé 3 ou 4 exemples....
Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008

Arf j'ai essayé le lien de megafan ,en essayant de recoller les morceaux

j'ai obtenu le volume name ,par contre le serialnumber me donne 255 !
ce qui est faut bien evidement
ya encore un petit detail qui coince la
merci si vous avez l'exemple complet qui tourne :)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
"...si ça marche pour vs2003,..."

en parlant d'ancien code, je pense qu'il voulais plutot parler de VB6 pas VB.Net 2003

Donne ton code complet (ou la partie qui marche pas) avec les messages d'erreurs que tu obtiens, que l'on puisse t'aider.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
25
Date d'inscription
samedi 4 juin 2005
Statut
Membre
Dernière intervention
12 août 2008

Voici le code actuellement qui me renvoie le nom du volume ,et me donne valeur 255 (fausse bien sur)pour le serial disk

c'est sous vs 2005 que j'ai des soucis
merci de votre aide

Public Class ClassSerial
Private Declare Function GetVolumeInformation Lib "Kernel32" _
Alias "GetVolumeInformationA" ( _
ByVal rootPathName As String, _
ByVal vNameBuffer As String, _
ByVal vNameSize As Long, _
ByRef vSerialNumber As Long, _
ByVal maximumComponentLength As Long, _
ByVal fileSystemFlags As Long, _
ByVal fileSystemNameBuffer As String, _
ByVal fileSystemNameSize As Long) As Long
'...serial number par ref !
Function RenvoiSerial() As String
Dim Root As String
Dim Volume_name As String
Dim Serial_number As Long
Dim Max_component_length As Integer
Dim File_system_flags As Integer
Dim File_system_name As String
Dim Pos As Integer

root = "c:"
volume_name = Space(1024)
file_system_name = Space(1024)

If GetVolumeInformation(root, volume_name, Len(volume_name), serial_number, max_component_length, file_system_flags, file_system_name, Len(file_system_name)) = 0 Then
MessageBox.Show("Error getting volume information.", "Error Getting Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Return ""
End If
volume_name = volume_name
Dim Retour As String = serial_number.ToString()
Return Retour
End Function
End Class
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Alors déjà pour commencer, dans la déclaration de l'api GetVolumeInformation, remplace tous les long pas des Integer.

Un Long de Windows correspond en fait à un Integer de .Net.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php