|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
Comment (avec SHGetSpecialFolderLocation ?) localiser le dossier (genre "C:\Users\Public" sous Vista ou bien "C:\Documents and Settings\All Users" sous XP) où tous les utilisateurs peuvent écrire ? A l'avance, merci ! Joël |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Voici ma fonction:
function SpecialFolder(Folder: Integer): String; var SFolder : pItemIDList; SpecialPath : Array[0..MAX_PATH] Of Char; begin SHGetSpecialFolderLocation(Application.Handle, Folder, SFolder); SHGetPathFromIDList(SFolder, SpecialPath); Result := StrPas(SpecialPath); RajouterAntiSchlachSiBesoin (Result); --> fonction perso, a virer, rajoute un antischlash a la fin. end; a appeler avec : CSIDL_APPDATA Dossier_USER := SpecialFolder (CSIDL_APPDATA); Pascal07 |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Joël a écrit :
> Bonjour, > > Comment (avec SHGetSpecialFolderLocation ?) localiser le dossier (genre > "C:\Users\Public" sous Vista ou bien "C:\Documents and Settings\All > Users" sous XP) où tous les utilisateurs peuvent écrire ? > > A l'avance, merci ! > > Joël Tout cela sans problème dans la Jcl (JclFileUtils). JP |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
C'est CSIDL_COMMON_DOCUMENTS
Si tu es sous D7 voici les constantes à rajouter et la fonction. const CSIDL_COMMON_APPDATA = $0023; CSIDL_COMMON_DOCUMENTS = $002E; function SpecialFolder(Folder: Integer): string; // // * CSIDL_APPDATA : Répertoire contenant les données des applications. // * CSIDL_COMMON_FAVORITES : Répertoire contenant les Favoris commun à tous les utilisateurs. // * CSIDL_COMMON_STARTMENU : Répertoire du menu démarrer commun à tous les utilisateurs. // * CSIDL_COMMON_PROGRAMS : Répertoire Programmes du menu démarrer commun à tous les utilisateurs. // * CSIDL_COMMON_STARTUP : Répertoire du groupe Démarrage du menu démarrer commun à tous les utilisateurs. // * CSIDL_COMMON_DESKTOPDIRECTORY : Répertoire correspondant au bureau commun à tous les utilisateurs. // * CSIDL_ : Répertoire ou sont stockés les d'Internet Explorer. // * CSIDL_DESKTOP : Répertoire correspondant à votre Bureau. // * CSIDL_DESKTOPDIRECTORY : Répertoire correspondant à votre Bureau. // * CSIDL_FAVORITES : Répertoire Favoris. // * CSIDL_FONTS : Répertoire dans lequel sont stockées toutes les polices de caractères. // * CSIDL_HISTORY : Répertoire contenant les historiques d'Internet Explorer. // * CSIDL_INTERNET_CACHE : Répertoire ou sont stockés les fichiers temporaires d'Internet Explorer. // * CSIDL_NETHOOD : Répertoire Voisinage Réseau. // * CSIDL_PERSONAL : Répertoire Mes Documents. // * CSIDL_PRINTHOOD : Répertoire de voisinage d'impression. // * CSIDL_PROGRAMS : Répertoire Programmes du Menu Démarrer. // * CSIDL_RECENT : Répertoire dans lequel se trouvent les raccourcis vers les Fichiers récemment ouverts. // * CSIDL_SENDTO : Répertoire dans lequel se trouvent les raccourcis Envoyer vers // * CSIDL_STARTMENU : Répertoire Menu Démarrer. // * CSIDL_STARTUP : Répertoire du groupe Démarrage du Menu Démarrer. // * CSIDL_TEMPLATES : Répertoire contenant les modèles de documents de Windows. var SFolder: pItemIDList; SpecialPath: array[0..MAX_PATH] of Char; begin SHGetSpecialFolderLocation(0, Folder, SFolder); SHGetPathFromIDList(SFolder, SpecialPath); Result := StrPas(SpecialPath); end; "Joël" <jleporcq@free.fr> a écrit dans le message de news: ga2g4i$r5o$1@ns22854.ovh.net... > Bonjour, > > Comment (avec SHGetSpecialFolderLocation ?) localiser le dossier (genre > "C:\Users\Public" sous Vista ou bien "C:\Documents and Settings\All Users" > sous XP) où tous les utilisateurs peuvent écrire ? > > A l'avance, merci ! > > Joël |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Ca c'est ProgramData, pas les documents publiques
AMHA <mrim07@orange.fr> a écrit dans le message de news: ga2sn3$att$1@ns22854.ovh.net... > Voici ma fonction: > > function SpecialFolder(Folder: Integer): String; > var > SFolder : pItemIDList; > SpecialPath : Array[0..MAX_PATH] Of Char; > begin > SHGetSpecialFolderLocation(Application.Handle, Folder, SFolder); > SHGetPathFromIDList(SFolder, SpecialPath); > Result := StrPas(SpecialPath); > > RajouterAntiSchlachSiBesoin (Result); --> fonction perso, a virer, > rajoute un antischlash a la fin. > > end; > > a appeler avec : CSIDL_APPDATA > > Dossier_USER := SpecialFolder (CSIDL_APPDATA); > > Pascal07 > > |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
OK, merci beaucoup (me manquait la constante CSIDL_COMMON_DOCUMENTS = $002E)
"Joël" <jleporcq@free.fr> a écrit dans le message de news:ga2g4i$r5o$1@ns22854.ovh.net... > Bonjour, > > Comment (avec SHGetSpecialFolderLocation ?) localiser le dossier (genre > "C:\Users\Public" sous Vista ou bien "C:\Documents and Settings\All Users" > sous XP) où tous les utilisateurs peuvent écrire ? > > A l'avance, merci ! > > Joël |
|
![]() |
| Outils de la discussion | |
|
|