~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période. Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.
~ Rechercher ~
~ Annuaire VB ~
~ Partenaires ~
|
Fonction GetCurrentDirectory
Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" ( _ ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Versions : . Windows 95/98 : Oui . Windows NT : A partir de 3.1 . Windows 2000/XP : OuiDescription : Cette fonction récupère le répertoire courant sur lequel est positionné l'application.
nBufferLength est la taille du buffer ci-dessous.
lpBuffer est la chaîne qui contiendra le résultat après appel de la fonction.
Comme d'habitude sur les appels de ce genre, il est conseillé d'initialiser la chaîne avec suffisament d'espaces (ex 250), et d'indiquer une taille de chaîne +1 (c-a-d, nBufferLength = Len(lpBuffer)+1).
La fonction retourne la longueur de la chaîne lpBuffer en cas de réussite, sinon 0.
Exemple d'utilisation :
' Déclaration des fonctions API utilisées.
Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" ( _
ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" ( _
ByVal lpPathName As String) As Long
Private Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" ( _
ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
' Déclaration du type utilisé.
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Sub PrepareRep(stRep As String)
' Cette procédure permet de créer le chemin complet donné en paramètre.
Dim lgDepRep As Long, stDepRep As String
Dim lgWhile As Long
' Type Sécurité de la base de registres.
Dim lpAttr As SECURITY_ATTRIBUTES
lgDepRep = 512
stDepRep = Space$(511)
' Mémorise le répertoire courant.
lgWhile = GetCurrentDirectory(lgDepRep, stDepRep)
stDepRep = Left$(stDepRep, lgWhile)
' Affecte les valeurs par défaut des attributs de sécurité.
lpAttr.nLength = 50
lpAttr.lpSecurityDescriptor = 0
lpAttr.bInheritHandle = True
' Initialise la fin de la chaîne.
If Right$(stRep, 1) <> "\" Then stRep = stRep & "\"
' Repère le départ du premier répertoire.
lgWhile = InStr(4, stRep, "\")
Do While (lgWhile > 0)
' Vérifie l'existence du répertoire en se positionnant à l'intérieur.
lgDepRep = SetCurrentDirectory(Left$(stRep, lgWhile))
If lgDepRep = 0 Then
' Crée le répertoire.
CreateDirectory Left$(stRep, lgWhile), lpAttr
End If
lgWhile = InStr(lgWhile + 1, stRep, "\")
Loop
' Retourne sur le répertoire courant d'origine.
SetCurrentDirectory stDepRep
End Sub
Retour à la liste des API |