OVH Cloud OVH Cloud

path du program files

5 réponses
Avatar
Fabrice
Bonjour,

Comment récupérer le path du Program Files
En effet le fileObjectSystem.GetSpecialfolder (x) permet de trouver le
répertoire system, tempo...
mais pas le path

Merci de votre aide
Fabrice

5 réponses

Avatar
Jacques93
Bonsoir Fabrice,
Fabrice a écrit :
Bonjour,

Comment récupérer le path du Program Files
En effet le fileObjectSystem.GetSpecialfolder (x) permet de trouver le
répertoire system, tempo...
mais pas le path

Merci de votre aide
Fabrice




Voir l'API :

SHGetFolderPath

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderpath.asp

qui permet de récupérer les noms des répertoires. Sur mon système :
================================================================ CSIDL_DESKTOP : C:Documents and SettingsAdministrateurBureau
CSIDL_PROGRAMS : C:Documents and SettingsAdministrateurMenu
DémarrerProgrammes
CSIDL_PERSONAL : C:Documents and SettingsAdministrateurMes documents
CSIDL_FAVORITES : C:Documents and SettingsAdministrateurFavoris
CSIDL_STARTUP : C:Documents and SettingsAdministrateurMenu
DémarrerProgrammesDémarrage
CSIDL_RECENT : C:Documents and SettingsAdministrateurRecent
CSIDL_SENDTO : C:Documents and SettingsAdministrateurSendTo
CSIDL_STARTMENU : C:Documents and SettingsAdministrateurMenu Démarrer
CSIDL_MYMUSIC : C:Documents and SettingsAdministrateurMes
documentsMa musique
CSIDL_MYVIDEO : C:Documents and SettingsAdministrateurMes
documentsMes vidéos
CSIDL_DESKTOPDIRECTORY : C:Documents and SettingsAdministrateurBureau
CSIDL_NETHOOD : C:Documents and SettingsAdministrateurVoisinage réseau
CSIDL_FONTS : C:WINDOWSFonts
CSIDL_TEMPLATES : C:Documents and SettingsAdministrateurModèles
CSIDL_COMMON_STARTMENU : C:Documents and SettingsAll UsersMenu Démarrer
CSIDL_COMMON_PROGRAMS : C:Documents and SettingsAll UsersMenu
DémarrerProgrammes
CSIDL_COMMON_STARTUP : C:Documents and SettingsAll UsersMenu
DémarrerProgrammesDémarrage
CSIDL_COMMON_DESKTOPDIRECTORY : C:Documents and SettingsAll UsersBureau
CSIDL_APPDATA : C:Documents and SettingsAdministrateurApplication Data
CSIDL_PRINTHOOD : C:Documents and SettingsAdministrateurVoisinage
d'impression
CSIDL_LOCAL_APPDATA : C:Documents and SettingsAdministrateurLocal
SettingsApplication Data
CSIDL_COMMON_FAVORITES : C:Documents and SettingsAll UsersFavoris
CSIDL_INTERNET_CACHE : C:Documents and SettingsAdministrateurLocal
SettingsTemporary Internet Files
CSIDL_COOKIES : C:Documents and SettingsAdministrateurCookies
CSIDL_HISTORY : C:Documents and SettingsAdministrateurLocal
SettingsHistorique
CSIDL_COMMON_APPDATA : C:Documents and SettingsAll UsersApplication Data
CSIDL_WINDOWS : C:WINDOWS
CSIDL_SYSTEM : C:WINDOWSsystem32
*CSIDL_PROGRAM_FILES : C:Program Files*
CSIDL_MYPICTURES : C:Documents and SettingsAdministrateurMes
documentsMes images
CSIDL_PROFILE : C:Documents and SettingsAdministrateur
CSIDL_SYSTEMX86 : C:WINDOWSsystem32
CSIDL_PROGRAM_FILES_COMMON : C:Program FilesFichiers communs
CSIDL_COMMON_TEMPLATES : C:Documents and SettingsAll UsersModèles
CSIDL_COMMON_DOCUMENTS : C:Documents and SettingsAll UsersDocuments
CSIDL_COMMON_ADMINTOOLS : C:Documents and SettingsAll UsersMenu
DémarrerProgrammesOutils d'administration
CSIDL_ADMINTOOLS : C:Documents and SettingsAdministrateurMenu
DémarrerProgrammesOutils d'administration
CSIDL_CONNECTIONS :
CSIDL_COMMON_MUSIC : C:Documents and SettingsAll UsersDocumentsMa
musique
CSIDL_COMMON_PICTURES : C:Documents and SettingsAll
UsersDocumentsMes images
CSIDL_COMMON_VIDEO : C:Documents and SettingsAll UsersDocumentsMes
vidéos
CSIDL_RESOURCES : C:WINDOWSresources
CSIDL_CDBURN_AREA : C:Documents and SettingsAdministrateurLocal
SettingsApplication DataMicrosoftCD Burning
======================================================================
Un exemple en VB ici :

http://vbnet.mvps.org/index.html?code/browse/csidl.htm

--
Cordialement,

Jacques.
Avatar
Zoury
Bonjour ! :O)


Un exemple en VB ici :
http://vbnet.mvps.org/index.html?code/browse/csidl.htm



Hehe ! il y a beaucoup de code là dedans.. :O)

Pour ceux qui ne sont pas trop familier avec les APIs, vous trouverez
peut-être ce petit bout de code moins impressionant et plus facile à
comprendre.. ;O)
'***
' Module1
Option Explicit

Private Declare Function SHGetFolderPathA _
Lib "shfolder.dll" _
( _
ByVal hWnd As Long, _
ByVal nFolder As Long, _
ByVal lToken As Long, _
ByVal lFlag As Long, _
ByVal sPath As String _
) As Long

Private Const MAX_PATH As Long = 260
Private Const CSIDL_PROGRAM_FILES As Long = &H26

Private Sub Main()

Debug.Print GetSpecialDirectory(CSIDL_PROGRAM_FILES)

End Sub

Private Function GetSpecialDirectory(ByRef csidl As Long) As String

Dim sRet As String

' on créer le buffer pour récupérer le path
sRet = Space$(MAX_PATH)
' on appel la fonction, si la valeur de retour est 0
' cela signifie que sRet contient notre chemin
If (SHGetFolderPathA(0, csidl, 0, 0, sRet) = 0) Then
' on tronque les caractères en trop (tout juste avant le )
GetSpecialDirectory = Left$(sRet, InStr(1, sRet, Chr$(0)) - 1)
End If

End Function
'***

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Jacques93
Bonsoir Zoury,
Zoury a écrit :
Bonjour ! :O)



Un exemple en VB ici :
http://vbnet.mvps.org/index.html?code/browse/csidl.htm




Hehe ! il y a beaucoup de code là dedans.. :O)

Pour ceux qui ne sont pas trop familier avec les APIs, vous trouverez
peut-être ce petit bout de code moins impressionant et plus facile à
comprendre.. ;O)
'***
' Module1
Option Explicit

Private Declare Function SHGetFolderPathA _
Lib "shfolder.dll" _
( _
ByVal hWnd As Long, _
ByVal nFolder As Long, _
ByVal lToken As Long, _
ByVal lFlag As Long, _
ByVal sPath As String _
) As Long

Private Const MAX_PATH As Long = 260
Private Const CSIDL_PROGRAM_FILES As Long = &H26

Private Sub Main()

Debug.Print GetSpecialDirectory(CSIDL_PROGRAM_FILES)

End Sub

Private Function GetSpecialDirectory(ByRef csidl As Long) As String

Dim sRet As String

' on créer le buffer pour récupérer le path
sRet = Space$(MAX_PATH)
' on appel la fonction, si la valeur de retour est 0
' cela signifie que sRet contient notre chemin
If (SHGetFolderPathA(0, csidl, 0, 0, sRet) = 0) Then
' on tronque les caractères en trop (tout juste avant le )
GetSpecialDirectory = Left$(sRet, InStr(1, sRet, Chr$(0)) - 1)
End If

End Function
'***




Effectivement, parfois je me pose la question

- soit répondre uniquement à la question posée, sans chercher
plus loin
- soit indiquer les possibilités (sans être exhaustif, je ne pense
pas qu'on puisse l'être), qui pourraient être utiles
à d'autres lecteurs éventuels.
- soit indiquer d'autres voies qui me semblent plus judicieuses, bien
que la question telle qelle est posée mérite une réponse, donc
on revient au point n°1

Ton expérience à ce sujet m'interesse. Merci de tes conseils à ce sujet :-)

--
Cordialement,

Jacques.
Avatar
Zoury
hehe ! :O)

<monde vaguement utopique>
J'suis d'avis que l'on aide un collègue plus efficacement en lui apprenant à
pêcher qu'en lui donnant du poisson tout cuit. La première option peut
prendre plus de temps, mais deviendra inévitablement plus payante à la
longue... Le collègue pourra, après peu de temps, se nourrir à sa guise et
quand bon lui semblera. Éventuellement il pourra même l'enseigner à
d'autres.
</monde vaguement utopique>

alors quand j'ai la chance (et le temps), je fais un bref survol des
possibilités et des meilleures pratiques en offrant des liens vers des
soures compétentes.. bref la même chose que toi. :O)

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Jacques93
Bonjour Zoury,
Zoury a écrit :
hehe ! :O)

<monde vaguement utopique>
J'suis d'avis que l'on aide un collègue plus efficacement en lui apprenant à
pêcher qu'en lui donnant du poisson tout cuit. La première option peut
prendre plus de temps, mais deviendra inévitablement plus payante à la
longue... Le collègue pourra, après peu de temps, se nourrir à sa guise et
quand bon lui semblera. Éventuellement il pourra même l'enseigner à
d'autres.
</monde vaguement utopique>

alors quand j'ai la chance (et le temps), je fais un bref survol des
possibilités et des meilleures pratiques en offrant des liens vers des
soures compétentes.. bref la même chose que toi. :O)




Et actuellement que pêche t-on au Québec, je veux dire une pêche de
saison, qui ferait saliver un breton de banlieue parisienne ? ;-)

Peut être à bientot sur m.p.f.d.vb, où j'aurais plein de questions à poser.

--
Cordialement,

Jacques.