L'eternel serial disk mais en VB 2005 ??

Résolu
wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008 - 8 avril 2008 à 07:54
wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008 - 8 avril 2008 à 17:36
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

wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008
8 avril 2008 à 17:36
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 ;)
3
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
8 avril 2008 à 09:17
Salut,
si ça marche pour vs2003, ça devrait pour 2005

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

@+
Megafan
0
wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008
8 avril 2008 à 09:31
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....
0
wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008
8 avril 2008 à 13:29
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 :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 avril 2008 à 14:36
"...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
0
wardavb Messages postés 25 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 12 août 2008
8 avril 2008 à 15:33
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 avril 2008 à 17:19
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
0
Rejoignez-nous