Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ 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 ~
 Rechercher un site :
  

~ 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 : Oui

Description :
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

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr