begin process at 2012 02 15 00:58:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

API

 > 

SOS : API GetVolumeInformation dans VB.NET


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SOS : API GetVolumeInformation dans VB.NET

mercredi 19 avril 2006 à 18:36:15 | SOS : API GetVolumeInformation dans VB.NET

venka

Bonjour,

Je cherche dédespérément à utiliser la fonction "GetVolumeInformation" de l'API Windows car elle renvoie une information qu'aucune des méthodes de System.IO ne fournit.

Le code est le suivant :

Imports System.Runtime.InteropServices

Imports System.Text

 

' Class to wrap up Windows 32 API constants and functions.

Public Class Win32API

      Public Declare Function GetVolumeInformation Lib "kernel32" _

       Alias "GetVolumeInformationA" _

(ByVal lpRootPathName As String, _

             ByVal lpVolumeNameBuffer As StringBuilder, _

             ByRef nVolumeNameSize As Integer, _

             ByRef lpVolumeSerialNumber As Integer, _

             ByRef lpMaximumComponentLength As Integer, _

             ByRef lpFileSystemFlags As Integer, _

             ByVal lpFileSystemNameBuffer As StringBuilder, _

             ByRef lpFileSystemNameBuffer As Integer , _

             ByRef nFileSystemNameSize As Integer) As Integer

End Class

 

Const StringBufferLength As Integer = 255

 

Dim lsRootPathName As String
Dim lsVolumeNameBuffer As New StringBuilder(StringBufferLength)

Dim lnVolumeNameSize As Integer = StringBufferLength

Dim lnVolumeSerialNumber As Integer

Dim lnMaximumComponentLength As Integer

Dim lnFileSystemFlags As Integer

Dim lsFileSystemNameBuffer As New StringBuilder(StringBufferLength)

Dim lnFileSystemNameSize As Integer = StringBufferLength


Dim
lnReturn As Integer


lsRootPathName = “C:\”

llVolumNmSz = StringBufferLength
llFileSysSz = StringBufferLength

llVolSerNum = 0

llMaxCompnt = 0

llFileSsFlg = 0

lnReturn = Win32API.GetVolumeInformation(lsRootPathName, lsVolumeNameBuffer, lnVolumeNameSize, lnVolumeSerialNumber, lnMaximumComponentLength, lnFileSystemFlags, lsFileSystemNameBuffer, lnFileSystemNameSize)

Quand j'appelle la fonction celle-ci semble fonctionner car j’obtiens une valeur différente de zéro dans lnReturn.

Mais aucun des paramètres n’est renseigné en retour, ils restent désespérément vides. Et je ne peux pas me passer de cette API car elle renvoie le numéro de série du volume qui est une information primordiale dans mon application.

Si quelqu’un peut me dépanner.

Venka

jeudi 20 avril 2006 à 00:03:22 | Re : SOS : API GetVolumeInformation dans VB.NET

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
PREAMBULE: je ne dotnette pas mais y a des trucs qui semblent bizzares.

nVolumeNameSize en ByRef ??? pas cohérent c'est l'info de taille buffer, la valeur doit être directement PUSHée sur la pile et non pas l'adresse de la taille.
nFileSystemNameSize idem.

Essaie avec ces 2 params en ByVal, devrait aller mieux.

ciao...
BruNews, MVP VC++
jeudi 20 avril 2006 à 01:21:23 | Re : SOS : API GetVolumeInformation dans VB.NET

venka

Mille mercis BruNews.
Je ne cherchais pas dans la bonne direction. J'étais persuadé que la fonction utilisait les paramètres de taille de buffer pour indiquer la taille des chaînes inscrites en retour. Ce principe étant mis en oeuvre dans d'autres fonctions de l'API Windows, j'ai pas cherché plus loin.
Encore merci, grâce à toi je vais arrêter de m'arracher les cheveux pour un bout de temps (j'espère).
Bye
Venka


Cette discussion est classée dans : api, integer, getvolumeinformation, stringbuilder, stringbufferlength


Répondre à ce message

Sujets en rapport avec ce message

Api qui ne marche plus avec Win2000 [ par pascal25 ] Bonjour à tous,En VB4, qui saurait me dire pourquoi le remplissage d'une forme avec une couleur en utilisant les API suivants marchait bien sous Win98 Grave PBE avec API findExe [ par leptidev ] Bonjour, j'ai un problème d'écriture de la part de VB directement quand j'essaye d'exécuter l'API : FindExecutable, en plus elle marche pas !Que faire Arrondi .... [ par JsOpdebeeck ] Comment faire un arrondi d'une valeur (genre 8,25 ou 12,98) toujours a l'entier le plus bas (ici 8 et 12).Quand je met a 'integer' j'obtiens un arrond J'ai besoin de votre aide [ par seradji ] BonjourJ'ai vraiment besoin de votre aide. Sur un FORM, je place 2 line et je souhaite qu'ils convergent vers la position de la souris quelque soit so Recherche de l'API Windows ! [ par Thomaz ] Salut, je cherche quelqu'un qui pourrait m'envoyer une liste complète de toutes les fonctions API Windows avec une description de ce qu'elles gèrent. API pour resolution d'ecran [ par greg13 ] Existe t'il une api qui permet de connaitre la resolution de l'ecranMerciGreg Fichier API introuvable [ par MrLoloM ] Bonjour, Je débute avec les API et j'ai un petit problème : mon projet fait référence à un fichier API nommé ACVB65_dll.APX.Le nom d'appel de l'API variables sur plusieurs feuilles [ par marco59 ] Salut à vous,Je suis un novice dans VB et j?ai un problème de variables qu?il faut que je déclare dans plusieurs feuilles. EX :Form1 :Public variable HELP!!!! ombre de fichiers dans un répertoire pas API ou FSO [ par yomm ] voila je souhaiterai obtenir le nombre de fichiers présent dans un répertoire mais en contabilisant également les fichiers présent dans les sous-réper HELP!!!! ombre de fichiers dans un répertoire par API ou FSO [ par yomm ] voila je souhaiterai obtenir le nombre de fichiers présent dans un répertoire mais en contabilisant également les fichiers présent dans les sous-réper


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,296 sec (3)

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