Repertoires Systéme [Résolu]
Repertoires Systéme [Résolu]
Bonjour a tous
J'ai perdu dans mes sauvegarde la manière de récupérer le nom d'un répertoire système en fonction d’une valeur numérique de 0 à 255.
Par exemple
Debug GetDirectory(X) retournerait "C:\Mes documents"
Merci de venir à mon aide !
J'ai perdu dans mes sauvegarde la manière de récupérer le nom d'un répertoire système en fonction d’une valeur numérique de 0 à 255.
Par exemple
Debug GetDirectory(X) retournerait "C:\Mes documents"
Merci de venir à mon aide !
Dernière modification par brossden le jeu. 22/déc./2011 9:32, modifié 1 fois.
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Re: Repertoires Systéme
En Cherchant mieux j'ai trouvé, mais la variable ne peux aller que de 0 à 64 !! :
Code : Tout sélectionner
Procedure.s GetSpecialFolderLocationx(Valeur.l)
If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0
SpecialFolderLocation.s = Space(#MAX_PATH)
SHGetPathFromIDList_(Dossier_ID, @SpecialFolderLocation)
If SpecialFolderLocation
If Right(SpecialFolderLocation, 1) <> "\"
SpecialFolderLocation + "\"
EndIf
EndIf
EndIf
ProcedureReturn SpecialFolderLocation.s
EndProcedure
For n =1 To 64
Debug GetSpecialFolderLocation(n)
Next
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Re: Repertoires Systéme [Résolu]
Le Soldat avait trouvé :
et ça de je sais plus qui :; Voici la liste des valeurs obtenues sous Windows XP (Certaines valeurs n'ont pas de dossier sous d'autres version de Windows)
; 00 C:\Documents And Settings\Le Soldat Inconnu\Bureau\
; 01 Pas de dossier, il s'agit de : Internet Explorer
; 02 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\Programmes\
; 03 Pas de dossier, il s'agit de : Panneau de configuration
; 04 Pas de dossier, il s'agit de : Imprimantes et télécopieurs
; 05 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\
; 06 C:\Documents And Settings\Le Soldat Inconnu\Favoris\
; 07 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\Programmes\Démarrage\
; 08 C:\Documents And Settings\Le Soldat Inconnu\Recent\
; 09 C:\Documents And Settings\Le Soldat Inconnu\SendTo\
; 10 Pas de dossier, il s'agit de : Corbeille
; 11 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\
; 13 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\Ma musique\
; 16 C:\Documents And Settings\Le Soldat Inconnu\Bureau\
; 17 Pas de dossier, il s'agit de : Poste de travail
; 18 Pas de dossier, il s'agit de : Favoris réseau
; 19 C:\Documents And Settings\Le Soldat Inconnu\Voisinage réseau\
; 20 C:\WINDOWS\Fonts\
; 21 C:\Documents And Settings\Le Soldat Inconnu\Modèles\
; 22 C:\Documents And Settings\All Users\Menu Démarrer\
; 23 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\
; 24 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\Démarrage\
; 25 C:\Documents And Settings\All Users\Bureau\
; 26 C:\Documents And Settings\Le Soldat Inconnu\Application Data\
; 27 C:\Documents And Settings\Le Soldat Inconnu\Voisinage D'impression\
; 28 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Application Data\
; 31 C:\Documents And Settings\All Users\Favoris\
; 32 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Temporary Internet Files\
; 33 C:\Documents And Settings\Le Soldat Inconnu\Cookies\
; 34 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Historique\
; 35 C:\Documents And Settings\All Users\Application Data\
; 36 C:\WINDOWS\
; 37 C:\WINDOWS\system32\
; 38 C:\Program Files\
; 39 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\Mes images\
; 40 C:\Documents And Settings\Le Soldat Inconnu\
; 41 C:\WINDOWS\system32\
; 43 C:\Program Files\Fichiers communs\
; 45 C:\Documents And Settings\All Users\Modèles\
; 46 C:\Documents And Settings\All Users\Documents\
; 47 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\Outils D'administration\
; 49 Pas de dossier, il s'agit de : Connexions réseau
; 54 C:\Documents And Settings\All Users\Documents\Mes images\
; 56 C:\WINDOWS\Resources\
; 59 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Application Data\Microsoft\CD Burning\
; 61 Pas de dossier, il s'agit de : Réseau
; Voici la liste des valeurs obtenues sous Windows ME
; 00 C:\WINDOWS\Bureau\
; 01 Pas de dossier, il s'agit de : Internet explorer
; 02 C:\WINDOWS\Menu Démarrer\Programmes\
; 03 Pas de dossier, il s'agit de : Panneau de configuration
; 04 Pas de dossier, il s'agit de : Imprimantes et télécopieurs
; 05 C:\Mes documents\
; 06 C:\WINDOWS\Favoris\
; 07 C:\WINDOWS\Menu Démarrer\Programmes\Démarrage\
; 08 C:\WINDOWS\Recent\
; 09 C:\WINDOWS\SendTo\
; 10 Pas de dossier, il s'agit de : Corbeille
; 11 C:\WINDOWS\Menu Démarrer\
; 13 C:\Mes documents\Ma musique\
; 14 C:\Mes documents\Mes vidéos\
; 16 C:\WINDOWS\Bureau\
; 17 Pas de dossier, il s'agit de : Poste de travail
; 18 Pas de dossier, il s'agit de : Favoris réseau
; 19 C:\WINDOWS\Voisinage réseau\
; 20 C:\WINDOWS\FONTS\
; 21 C:\WINDOWS\Modèles\
; 24 C:\WINDOWS\All Users\Menu Démarrer\Programmes\Démarrage\
; 25 C:\WINDOWS\All Users\Bureau\
; 26 C:\WINDOWS\Application Data\
; 27 C:\WINDOWS\Voisinage d'impression\
; 28 C:\WINDOWS\Application Data\
; 32 C:\WINDOWS\Temporary Internet Files\
; 33 C:\WINDOWS\COOKIES\
; 34 C:\WINDOWS\Historique\
; 35 C:\WINDOWS\All Users\Application Data\
; 36 C:\WINDOWS\
; 37 C:\WINDOWS\SYSTEM\
; 38 C:\Program Files\
; 39 C:\Mes documents\Mes images\
; 41 C:\WINDOWS\SYSTEM\
; 43 C:\Program Files\Fichiers communs\
; 46 C:\WINDOWS\All Users\Documents\
; 49 Pas de dossier, il s'agit de : Connexions réseau
; Voici la liste des valeurs obtenues sous Windows 98
; 00 C:\WINDOWS\Bureau\
; 01 Pas de dossier, il s'agit de : Internet explorer
; 02 C:\WINDOWS\Menu Démarrer\Programmes\
; 03 Pas de dossier, il s'agit de : Panneau de configuration
; 04 Pas de dossier, il s'agit de : Imprimantes et télécopieurs
; 05 C:\Mes documents\
; 06 C:\WINDOWS\Favoris\
; 07 C:\WINDOWS\Menu Démarrer\Programmes\Démarrage\
; 08 C:\WINDOWS\Recent\
; 09 C:\WINDOWS\SendTo\
; 10 Pas de dossier, il s'agit de : Corbeille
; 11 Menu Démarrer C:\WINDOWS\Menu Démarrer\
; 16 C:\WINDOWS\Bureau\
; 17 Pas de dossier, il s'agit de : Poste de travail
; 18 Pas de dossier, il s'agit de : Favoris réseau
; 19 C:\WINDOWS\Voisinage réseau\
; 20 C:\WINDOWS\FONTS\
; 21 C:\WINDOWS\ShellNew\
; 26 C:\WINDOWS\Application Data\
; 27 C:\WINDOWS\PrintHood\
; 32 C:\WINDOWS\Temporary Internet Files\
; 33 C:\WINDOWS\Cookies\
; 34 C:\WINDOWS\Historique\
Code : Tout sélectionner
#CSIDL_PROFILES = 62
Procedure.s GetFolderLocation(Value.l)
If SHGetSpecialFolderLocation_(#Null, Value , @ret) = #S_OK
Loc.s = Space(#MAX_PATH)
SHGetPathFromIDList_(ret, @Loc)
ProcedureReturn Loc
Else
ProcedureReturn #Null$
EndIf
EndProcedure
Macro GetDesktop ; Dossier virtuel représentant le bureau Windows
GetFolderLocation(#CSIDL_DESKTOP)
EndMacro
Macro GetInternet ; Dossier virtuel représentant l'Internet *
GetFolderLocation(#CSIDL_INTERNET)
EndMacro
Macro GetPrograms ; Dossier systeme contenant le groupe de programmes de l'utilisateur
GetFolderLocation(#CSIDL_PROGRAMS)
EndMacro
Macro GetControls ; Dossier virtuel contenant les icônes du panneau de contrôle *
GetFolderLocation(#CSIDL_CONTROLS)
EndMacro
Macro GetPrinters ; Dossier virtuel contenant les imprimantes installées *
GetFolderLocation(#CSIDL_PRINTERS)
EndMacro
Macro GetMyDocuments ; Dossier virtuel représenté par l'icône "Mes Documents" sur le bureau
GetFolderLocation(#CSIDL_PERSONAL)
EndMacro
Macro GetFavorites ; Dossier système contenant les favoris (Internet Explorer) de l'utilisateur
GetFolderLocation(#CSIDL_FAVORITES)
EndMacro
Macro GetStartup ; Dossier système contenant les programmes lancés au démarrage de la session utilisateur
GetFolderLocation(#CSIDL_STARTUP)
EndMacro
Macro GetRecent ; Dossier système contenant les raccourcis vers les document récents
GetFolderLocation(#CSIDL_RECENT)
EndMacro
Macro GetSendTo ; Dossier système contenant les éléments du menu "Envoyer vers"
GetFolderLocation(#CSIDL_SENDTO)
EndMacro
Macro GetRecycle ; Dossier virtuel contenant les objets de la corbeille *
GetFolderLocation(#CSIDL_BITBUCKET)
EndMacro
Macro GetStartMenu ; Dossier système contenant les éléments du menu "Démarrer" de l'utilisateur
GetFolderLocation(#CSIDL_STARTMENU)
EndMacro
Macro GetMyDocuments_2 ; Dossier virtuel représenté par l'icône "Mes Documents" sur le bureau *
GetFolderLocation(#CSIDL_MYDOCUMENTS)
EndMacro
Macro GetMyMusic ; Dossier système contenant les musiques de l'utilisateur
GetFolderLocation(#CSIDL_MYMUSIC)
EndMacro
Macro GetMyVideo ; Dossier système contenant les vidéos de l'utilisateur
GetFolderLocation(#CSIDL_MYVIDEO)
EndMacro
Macro GetDesktopDir ; Dossier système contenant les éléments du bureau de l'utilisateur
GetFolderLocation(#CSIDL_DESKTOPDIRECTORY)
EndMacro
Macro GetDrives ; Dossier virtuel représenté par l'icône "Poste de Travail" *
GetFolderLocation(#CSIDL_DRIVES)
EndMacro
Macro GetNetwork ; Dossier virtuel représentant le "Voisinage Réseau" *
GetFolderLocation(#CSIDL_NETWORK)
EndMacro
Macro GetNetHood ; Dossier système contenant les liens vers les postes du "Voisinage Réseau"
GetFolderLocation(#CSIDL_NETHOOD)
EndMacro
Macro GetFonts ; Dossier système contenant les polices
GetFolderLocation(#CSIDL_FONTS)
EndMacro
Macro GetTemplates ; Dossier système contenant les modèles de documents
GetFolderLocation(#CSIDL_TEMPLATES)
EndMacro
Macro GetCommonStartMenu ; Dossier système contenant les éléments du menu "Démarrer" commun
GetFolderLocation(#CSIDL_COMMON_STARTMENU)
EndMacro
Macro GetCommonPrograms ; Dossier systeme contenant le groupe de programmes commun
GetFolderLocation(#CSIDL_COMMON_PROGRAMS)
EndMacro
Macro GetCommonStartup ; Dossier système contenant les programmes lancés au démarrage d'une session commune
GetFolderLocation(#CSIDL_COMMON_STARTUP)
EndMacro
Macro GetCommonDesktopDir ; Dossier système contenant les éléments du bureau commun
GetFolderLocation(#CSIDL_COMMON_DESKTOPDIRECTORY)
EndMacro
Macro GetAppData ; Dossier système contenant les données des applications de l'utilisateur
GetFolderLocation(#CSIDL_APPDATA)
EndMacro
Macro GetPrintHood ; Dossier système contenant les liens vers les objets du dossier virtuel "Imprimantes"
GetFolderLocation(#CSIDL_PRINTHOOD)
EndMacro
Macro GetLocalAppData ; Dossier système contenant les données des applications locales de l'utilisateur
GetFolderLocation(#CSIDL_LOCAL_APPDATA)
EndMacro
Macro GetAltStartup ; Dossier système contenant les programmes lancés au démarrage d'une session *
GetFolderLocation(#CSIDL_ALTSTARTUP)
EndMacro
Macro GetCommonAltStartup ; Dossier système contenant les programmes lancés au démarrage d'une session *
GetFolderLocation(#CSIDL_COMMON_ALTSTARTUP)
EndMacro
Macro GetCommonFavorites ; Dossier système contenant les favoris (Internet Explorer) communs
GetFolderLocation(#CSIDL_COMMON_FAVORITES)
EndMacro
Macro GetInternetCache ; Dossier système contenant le cache internet de l'utilisateur
GetFolderLocation(#CSIDL_INTERNET_CACHE)
EndMacro
Macro GetCookies ; Dossier système contenant les cookies de l'utilisateur
GetFolderLocation(#CSIDL_COOKIES)
EndMacro
Macro GetHistory ; Dossier système contenant l'historique de navigation de l'utilisateur
GetFolderLocation(#CSIDL_HISTORY)
EndMacro
Macro GetCommonAppDatas ; Dossier système contenant les données des applications communes
GetFolderLocation(#CSIDL_COMMON_APPDATA)
EndMacro
Macro GetWindows ; Dossier système Windows (Racine du système)
GetFolderLocation(#CSIDL_WINDOWS)
EndMacro
Macro GetSystem ; Dossier "System" ou "System32"
GetFolderLocation(#CSIDL_SYSTEM)
EndMacro
Macro GetProgramFiles ; Dossier "Program Files"
GetFolderLocation(#CSIDL_PROGRAM_FILES)
EndMacro
Macro GetMyPictures ; Dossier système contenant les images de l'utilisateur
GetFolderLocation(#CSIDL_MYPICTURES)
EndMacro
Macro GetProfile ; Dossier système contenant le profil de l'utilisateur
GetFolderLocation(#CSIDL_PROFILE)
EndMacro
Macro GetCommonProgramFile; Dossier système contenant les éléments partagé des programmes
GetFolderLocation(#CSIDL_PROGRAM_FILES_COMMON)
EndMacro
Macro GetCommonTemplates ; Dossier système contenant les modèles de documents communs
GetFolderLocation(#CSIDL_COMMON_TEMPLATES)
EndMacro
Macro GetDocuments ; Dossier système "Documents" commun
GetFolderLocation(#CSIDL_COMMON_DOCUMENTS)
EndMacro
Macro GetCommonAdminTools ; Dossier système contenant les outils d'administration communs
GetFolderLocation(#CSIDL_COMMON_ADMINTOOLS)
EndMacro
Macro GetAdminTools ; Dossier système contenant les outils d'administration de l'utilisateur *
GetFolderLocation(#CSIDL_ADMINTOOLS)
EndMacro
Macro GetCommonMusic ; Dossier système contenant les musiques communes
GetFolderLocation(#CSIDL_COMMON_MUSIC)
EndMacro
Macro GetCommonPictures ; Dossier système contenant les images communes
GetFolderLocation(#CSIDL_COMMON_PICTURES)
EndMacro
Macro GetCommonVideos ; Dossier système contenant les vidéos communes
GetFolderLocation(#CSIDL_COMMON_VIDEO)
EndMacro
Macro Get_CD_BurnArea ; Dossier système contenant les données à graver
GetFolderLocation(#CSIDL_CDBURN_AREA)
EndMacro
Macro GetProfiles ; Dossier contenant les profils de tous les utilisateurs *
GetFolderLocation(#CSIDL_PROFILES)
EndMacro
Debug GetAdminTools
Re: Repertoires Systéme
Bien bon çabrossden a écrit :En Cherchant mieux j'ai trouvé, mais la variable ne peux aller que de 0 à 64 !! :
Code : Tout sélectionner
Procedure.s GetSpecialFolderLocationx(Valeur.l) If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0 SpecialFolderLocation.s = Space(#MAX_PATH) SHGetPathFromIDList_(Dossier_ID, @SpecialFolderLocation) If SpecialFolderLocation If Right(SpecialFolderLocation, 1) <> "\" SpecialFolderLocation + "\" EndIf EndIf EndIf ProcedureReturn SpecialFolderLocation.s EndProcedure For n =1 To 64 Debug GetSpecialFolderLocation(n) Next

Juste histoire de pas lister les entrées vides et d'afficher les ID correspondant à chaque dossier.
Code : Tout sélectionner
Procedure.s GetSpecialFolderLocationx(Valeur.l)
If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0
SpecialFolderLocation.s = Space(#MAX_PATH)
SHGetPathFromIDList_(Dossier_ID, @SpecialFolderLocation)
If SpecialFolderLocation
If Right(SpecialFolderLocation, 1) <> "\"
SpecialFolderLocation + "\"
EndIf
EndIf
EndIf
ProcedureReturn SpecialFolderLocation.s
EndProcedure
For n = 1 To 64
folder.s = GetSpecialFolderLocation(n)
If folder <> ""
Debug "Id "+ Str(n) +" : " + GetSpecialFolderLocation(n)
EndIf
Next
Dernière modification par Ar-S le jeu. 22/déc./2011 16:57, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: Repertoires Systéme [Résolu]
Mon dernier code 
Adresse et icône des dossiers spécifiques de Windows

Adresse et icône des dossiers spécifiques de Windows
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4.3
; Explication du programme :
; Récupérer le nom, l'adresse et l'icône des dossiers spéciaux de windows
; Liste des dossiers
#CSIDL_DESKTOP = $0000 ; <DESKTOP>
#CSIDL_PROGRAMS = $0002 ; START MENU\PROGRAMS
#CSIDL_CONTROLS = $0003 ; MY COMPUTER\CONTROL PANE
#CSIDL_PRINTERS = $0004 ; MY COMPUTER\PRINTERS
#CSIDL_PERSONAL = $0005 ; MY DOCUMENTS
#CSIDL_FAVORITES = $0006 ; <USER NAME>\FAVORITES
#CSIDL_STARTUP = $0007 ; START MENU\PROGRAMS\STARTUP
#CSIDL_RECENT = $0008 ; <USER NAME>\RECENT
#CSIDL_SENDTO = $0009 ; <USER NAME>\SENDTO
#CSIDL_BITBUCKET = $000A ; <DESKTOP>\RECYCLE BIN
#CSIDL_STARTMENU = $000B ; <USER NAME>\START MENU
; #CSIDL_MYDOCUMENTS = #CSIDL_PERSONAL ; Personal was just a silly name For My Documents
#CSIDL_MYMUSIC = $000D ; "MY MUSIC" FOLDER
#CSIDL_MYVIDEO = $000E ; "MY VIDEOS" FOLDER
#CSIDL_DESKTOPDIRECTORY = $0010 ; <USER NAME>\DESKTOP
#CSIDL_DRIVES = $0011 ; MY COMPUTER
#CSIDL_NETHOOD = $0013 ; <USER NAME>\NETHOOD
#CSIDL_FONTS = $0014 ; WINDOWS\FONTS
#CSIDL_TEMPLATES = $0015
#CSIDL_COMMON_STARTMENU = $0016 ; ALL USERS\START MENU
#CSIDL_COMMON_PROGRAMS = $0017 ; ALL USERS\START MENU\PROGRAMS
#CSIDL_COMMON_STARTUP = $0018 ; ALL USERS\STARTUP
#CSIDL_COMMON_DESKTOPDIRECTORY = $0019 ; ALL USERS\DESKTOP
#CSIDL_APPDATA = $001A ; <USER NAME>\APPLICATION DATA
#CSIDL_PRINTHOOD = $001B ; <USER NAME>\PRINTHOOD
#CSIDL_ALTSTARTUP = $001D ; NON LOCALIZED STARTUP
#CSIDL_COMMON_ALTSTARTUP = $001E ; NON LOCALIZED COMMON STARTUP
#CSIDL_COMMON_FAVORITES = $001F
#CSIDL_INTERNET_CACHE = $0020
#CSIDL_COOKIES = $0021
#CSIDL_HISTORY = $0022
#CSIDL_COMMON_APPDATA = $0023 ; ALL USERS\APPLICATION DATA
#CSIDL_WINDOWS = $0024 ; WINDOWS\
#CSIDL_PROGRAM_FILES = $0026 ; C:\PROGRAM FILES
#CSIDL_MYPICTURES = $0027 ; C:\PROGRAM FILES\MY PICTURES
#CSIDL_PROFILE = $0028 ; USERPROFILE
#CSIDL_SYSTEMX86 = $0029 ; X86 SYSTEM DIRECTORY ON RISC
#CSIDL_PROGRAM_FILESX86 = $002A ; X86 C:\PROGRAM FILES ON RISC
#CSIDL_PROGRAM_FILES_COMMON = $002B ; C:\PROGRAM FILES\COMMON
#CSIDL_PROGRAM_FILES_COMMONX86 = $002C ; X86 PROGRAM FILES\COMMON ON RISC
#CSIDL_COMMON_TEMPLATES = $002D ; ALL USERS\TEMPLATES
#CSIDL_COMMON_DOCUMENTS = $002E ; ALL USERS\DOCUMENTS
#CSIDL_COMMON_ADMINTOOLS = $002F ; ALL USERS\START MENU\PROGRAMS\ADMINISTRATIVE TOOLS
#CSIDL_ADMINTOOLS = $0030 ; <USER NAME>\START MENU\PROGRAMS\ADMINISTRATIVE TOOLS
#CSIDL_CONNECTIONS = $0031 ; NETWORK AND DIAL-UP CONNECTIONS
#CSIDL_COMMON_MUSIC = $0035 ; ALL USERS\MY MUSIC
#CSIDL_COMMON_PICTURES = $0036 ; ALL USERS\MY PICTURES
#CSIDL_COMMON_VIDEO = $0037 ; ALL USERS\MY VIDEO
#CSIDL_RESOURCES = $0038 ; RESOURCE DIRECOTRY
#CSIDL_RESOURCES_LOCALIZED = $0039 ; LOCALIZED RESOURCE DIRECOTRY
#CSIDL_COMMON_OEM_LINKS = $003A ; LINKS TO ALL USERS OEM SPECIFIC APPS
#CSIDL_CDBURN_AREA = $003B ; USERPROFILE\LOCAL SETTINGS\APPLICATION DATA\MICROSOFT\CD BURNING
#CSIDL_FLAG_DONT_VERIFY = $4000 ; COMBINE WITH CSIDL_ VALUE TO RETURN AN UNVERIFIED FOLDER PATH
#CSIDL_FLAG_DONT_UNEXPAND = $2000 ; COMBINE WITH CSIDL_ VALUE TO AVOID UNEXPANDING ENVIRONMENT VARIABLES
#CSIDL_FLAG_NO_ALIAS = $1000 ; COMBINE WITH CSIDL_ VALUE TO INSURE NON-ALIAS VERSIONS OF THE PID
#CSIDL_FLAG_MASK = $FF00 ; MASK FOR ALL POSSIBLE FLAG VALUES
ProcedureDLL.s GetSpecialFolderLocation2(CSIDL.L) ; Récupère l'adresse d'un dossier spécifique de Windows
Protected SpecialFolderLocation.s, PIDL.L, Dossier.SHFILEINFO
SpecialFolderLocation = Space(#MAX_PATH)
If SHGetFolderPath_(0, CSIDL, 0, #SHGFP_TYPE_DEFAULT, @SpecialFolderLocation) = 0
If SpecialFolderLocation
If Right(SpecialFolderLocation, 1) <> "\"
SpecialFolderLocation + "\"
EndIf
EndIf
EndIf
ProcedureReturn SpecialFolderLocation
EndProcedure
ProcedureDLL.s GetSpecialFolderName2(CSIDL.L) ; Récupère le nom d'un dossier spécifique de Windows
Protected Dossier.SHFILEINFO, PIDL.L
If SHGetSpecialFolderLocation_(0, CSIDL, @PIDL) = 0
SHGetFileInfo_(PIDL, 0, @Dossier, SizeOf(SHFILEINFO), #SHGFI_PIDL | #SHGFI_DISPLAYNAME)
EndIf
ProcedureReturn PeekS(@Dossier\szDisplayName)
EndProcedure
#SHIL_SMALL = $1
#SHIL_LARGE = $0
#SHIL_EXTRALARGE = $2
#SHIL_JUMBO = $4
#LOAD_LIBRARY_AS_DATAFILE = 2
DataSection
IID_IImageList :
Data.l $46EB5926
Data.w $582E, $4017
Data.b $9F, $DF, $E8, $99, $8D, $AA, $09, $50
EndDataSection
Structure IMAGELISTDRAWPARAMS
cbSize.l
himl.l
i.l
hdcDst.l
x.l
y.l
cx.l
cy.l
xBitmap.l
yBitmap.l
rgbBk.l
rgbFg.l
fStyle.l
dwRop.l
fState.l
frame.l
crEffect.l
EndStructure
Interface IImageList2 Extends iUnknown
Add(hbmImage, hbmMask, pi)
ReplaceIcon(i, hIcon, pi)
SetOverlayImage(iImage, iOverlay)
Replace(i, hbmImage, hbmMask)
AddMasked(hbmImage, crMask, pi)
Draw(pimldp.IMAGELISTDRAWPARAMS)
Remove(i)
GetIcon(i, flags, picon)
GetImageInfo(i, pImageInfo.IMAGEINFO)
Copy(iDst, punkSrc.IImageList, iSrc, uFlags)
Merge(i1, punk2.IImageList, i2, dx, dy, riid, ppv)
Clone(riid, ppv)
GetImageRect(i, prc.RECT)
GetIconSize(cx, cy)
SetIconSize(cx, cy)
GetImageCount(pi)
SetImageCount(uNewCount)
SetBkColor(clrBk, pclr)
GetBkColor(pclr)
BeginDrag(iTrack, dxHotspot, dyHotspot)
EndDrag()
DragEnter(hwndLock, x, y)
DragLeave(hwndLock)
DragMove(x, y)
SetDragCursorImage(punk.IImageList, iDrag, dxHotspot, dyHotspot)
DragShowNolock(fShow)
GetDragImage(ppt.POINT, pptHotspot.POINT, riid, ppv)
GetItemFlags(i, dwFlags)
GetOverlayImage(iOverlay, piIndex)
EndInterface
Global OS = OSVersion()
ProcedureDLL.L GetSpecialFolderIcon2(CSIDL.L, Size.L)
Protected hIcon.L, FileInfo.SHFILEINFO, dll_Shell32.L, hResult.L, *Guid.L, IconFile.L
Select Size
Case #SHIL_SMALL, 16
SHIL = #SHIL_SMALL
Case #SHIL_LARGE, 32
SHIL = #SHIL_LARGE
Case #SHIL_EXTRALARGE, 48
SHIL = #SHIL_EXTRALARGE
Case #SHIL_JUMBO, 128, 256
If OS >= #PB_OS_Windows_Vista
SHIL = #SHIL_JUMBO
Else
SHIL = #SHIL_EXTRALARGE
EndIf
Default
SHIL = #SHIL_SMALL
EndSelect
If SHGetSpecialFolderLocation_(0, CSIDL, @IconFile) = 0
If OS >= #PB_OS_Windows_XP ; Pour Windows XP et plus, toute taille d'icône
dll_Shell32 = OpenLibrary(#PB_Any, "Shell32.dll")
If dll_Shell32
*Guid = ?IID_IImageList
SHGetFileInfo_(IconFile, 0, @FileInfo, SizeOf(SHFILEINFO), #SHGFI_SYSICONINDEX | #SHGFI_PIDL)
hResult = CallFunction(dll_Shell32, "SHGetImageList", SHIL, *Guid, @ImageList.IImageList2)
If hResult = 0
ImageList\GetIcon(FileInfo\iIcon, #ILD_TRANSPARENT, @hIcon)
ImageList\Release()
EndIf
CloseLibrary(dll_Shell32)
EndIf
Else ; Avant windows XP, icône 16*16 ou 32*32
If SHIL = #SHIL_EXTRALARGE Or SHIL = #SHIL_LARGE
SHGetFileInfo_(IconFile, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_PIDL | #SHGFI_LARGEICON)
hIcon = InfosFile\hIcon
Else
SHGetFileInfo_(IconFile, 0, @InfosFile.SHFILEINFO, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_PIDL | #SHGFI_SMALLICON)
hIcon = InfosFile\hIcon
EndIf
EndIf
EndIf
ProcedureReturn hIcon
EndProcedure
;- Programme principal
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 800, 300, "Dossiers spéciaux", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
; On crée un liste
ListIconGadget(1, 0, 0, 800, 200, "Valeur", 60, #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_FullRowSelect)
AddGadgetColumn(1, 1, "Nom", 150)
AddGadgetColumn(1, 2, "Adresse du dossier", 560)
; On liste tous les dossier systèmes récupérables
For n = 0 To 200
Nom.s = GetSpecialFolderName2(n) ; On récupère le nom du dossier
Adresse.s = GetSpecialFolderLocation2(n) ; On récupère l'adresse du dossier
If Nom
If Adresse = "" ; Affichage dans le debugger des dossiers
Debug RSet(Str(n), 2, "0") + " Pas de dossier, il s'agit de : " + Nom
Else
Debug RSet(Str(n), 2, "0") + " " + Adresse
EndIf
AddGadgetItem(1, -1, Str(n) + Chr(10) + Nom + Chr(10) + Adresse) ; On affiche
EndIf
Next
; On affiche l'icône du premier élément
SetGadgetState(1, 0) ; on sélectionne le premier élément
TextGadget(4, 5, 215, 200, 15, "Icône du dossier sélectionné :")
Icone16 = GetSpecialFolderIcon2(0, 16) ; en 16 * 16
Icone32 = GetSpecialFolderIcon2(0, 32) ; en 32 * 32
Icone48 = GetSpecialFolderIcon2(0, 32) ; en 48 * 48
ImageGadget(2, 5, 235, 16, 16, Icone16) ; en 16 * 16
ImageGadget(3, 5 + 16 + 4, 235, 32, 32, Icone32) ; en 32 * 32
ImageGadget(4, 5 + 16 + 4 + 32 + 4, 235, 48, 48, Icone48) ; en 48 * 48
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget() ; Gadgets
Case 1
Select EventType()
Case #PB_EventType_Change
Position = GetGadgetState(1)
If Position >= 0
Valeur = Val(GetGadgetItemText(1, Position, 0))
DestroyIcon_(Icone16)
DestroyIcon_(Icone32)
DestroyIcon_(Icone48)
Icone16 = GetSpecialFolderIcon2(Valeur, 16)
Icone32 = GetSpecialFolderIcon2(Valeur, 32)
Icone48 = GetSpecialFolderIcon2(Valeur, 48)
SetGadgetState(2, Icone16)
SetGadgetState(3, Icone32)
SetGadgetState(4, Icone48)
EndIf
Case #PB_EventType_LeftDoubleClick
Position = GetGadgetState(1)
If Position >= 0
Debug GetGadgetItemText(1, Position, 2)
RunProgram("explorer.exe", "/e,/n," + Chr(34) + GetGadgetItemText(1, Position, 2) + Chr(34), "")
EndIf
EndSelect
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
DestroyIcon_(Icone16)
DestroyIcon_(Icone32)
DestroyIcon_(Icone48)
End
; Voici la liste des valeurs obtenu sous Windows 7
; 00 C:\Users\LSI\Desktop\
; 01
; 02 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
; 03
; 04
; 05 C:\Users\LSI\Documents\
; 06 C:\Users\LSI\Favorites\
; 07 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
; 08 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Recent\
; 09 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\SendTo\
; 10
; 11 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Start Menu\
; 13 C:\Users\LSI\Music\
; 14 C:\Users\LSI\Videos\
; 16 C:\Users\LSI\Desktop\
; 17
; 18
; 19 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Network Shortcuts\
; 20 C:\Windows\Fonts\
; 21 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Templates\
; 22 C:\ProgramData\Microsoft\Windows\Start Menu\
; 23 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\
; 24 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
; 25 C:\Users\Public\Desktop\
; 26 C:\Users\LSI\AppData\Roaming\
; 27 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Printer Shortcuts\
; 28 C:\Users\LSI\AppData\Local\
; 29 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
; 30 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
; 31 C:\Users\LSI\Favorites\
; 32 C:\Users\LSI\AppData\Local\Microsoft\Windows\Temporary Internet Files\
; 33 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Cookies\
; 34 C:\Users\LSI\AppData\Local\Microsoft\Windows\History\
; 35 C:\ProgramData\
; 36 C:\Windows\
; 37 C:\Windows\system32\
; 38 C:\Program Files (x86)\
; 39 C:\Users\LSI\Pictures\
; 40 C:\Users\LSI\
; 41 C:\Windows\SysWOW64\
; 42 C:\Program Files (x86)\
; 43 C:\Program Files (x86)\Common Files\
; 44 C:\Program Files (x86)\Common Files\
; 45 C:\ProgramData\Microsoft\Windows\Templates\
; 46 C:\Users\Public\Documents\
; 47 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\
; 48 C:\Users\LSI\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools\
; 49
; 53 C:\Users\Public\Music\
; 54 C:\Users\Public\Pictures\
; 55 C:\Users\Public\Videos\
; 56 C:\Windows\resources\
; 59 C:\Users\LSI\AppData\Local\Microsoft\Windows\Burn\Burn1\
; 61
; Voici la liste des valeurs obtenues sous Windows XP (Certaines valeurs n'ont pas de dossier sous d'autres version de Windows)
; 00 C:\Documents And Settings\Le Soldat Inconnu\Bureau\
; 01 Pas de dossier, il s'agit de : Internet Explorer
; 02 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\Programmes\
; 03 Pas de dossier, il s'agit de : Panneau de configuration
; 04 Pas de dossier, il s'agit de : Imprimantes et télécopieurs
; 05 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\
; 06 C:\Documents And Settings\Le Soldat Inconnu\Favoris\
; 07 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\Programmes\Démarrage\
; 08 C:\Documents And Settings\Le Soldat Inconnu\Recent\
; 09 C:\Documents And Settings\Le Soldat Inconnu\SendTo\
; 10 Pas de dossier, il s'agit de : Corbeille
; 11 C:\Documents And Settings\Le Soldat Inconnu\Menu Démarrer\
; 13 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\Ma musique\
; 16 C:\Documents And Settings\Le Soldat Inconnu\Bureau\
; 17 Pas de dossier, il s'agit de : Poste de travail
; 18 Pas de dossier, il s'agit de : Favoris réseau
; 19 C:\Documents And Settings\Le Soldat Inconnu\Voisinage réseau\
; 20 C:\WINDOWS\Fonts\
; 21 C:\Documents And Settings\Le Soldat Inconnu\Modèles\
; 22 C:\Documents And Settings\All Users\Menu Démarrer\
; 23 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\
; 24 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\Démarrage\
; 25 C:\Documents And Settings\All Users\Bureau\
; 26 C:\Documents And Settings\Le Soldat Inconnu\Application Data\
; 27 C:\Documents And Settings\Le Soldat Inconnu\Voisinage D'impression\
; 28 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Application Data\
; 31 C:\Documents And Settings\All Users\Favoris\
; 32 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Temporary Internet Files\
; 33 C:\Documents And Settings\Le Soldat Inconnu\Cookies\
; 34 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Historique\
; 35 C:\Documents And Settings\All Users\Application Data\
; 36 C:\WINDOWS\
; 37 C:\WINDOWS\system32\
; 38 C:\Program Files\
; 39 C:\Documents And Settings\Le Soldat Inconnu\Mes Documents\Mes images\
; 40 C:\Documents And Settings\Le Soldat Inconnu\
; 41 C:\WINDOWS\system32\
; 43 C:\Program Files\Fichiers communs\
; 45 C:\Documents And Settings\All Users\Modèles\
; 46 C:\Documents And Settings\All Users\Documents\
; 47 C:\Documents And Settings\All Users\Menu Démarrer\Programmes\Outils D'administration\
; 49 Pas de dossier, il s'agit de : Connexions réseau
; 54 C:\Documents And Settings\All Users\Documents\Mes images\
; 56 C:\WINDOWS\Resources\
; 59 C:\Documents And Settings\Le Soldat Inconnu\Local Settings\Application Data\Microsoft\CD Burning\
; 61 Pas de dossier, il s'agit de : Réseau
; Voici la liste des valeurs obtenues sous Windows 98
; 00 C:\WINDOWS\Bureau\
; 01 Pas de dossier, il s'agit de : Internet explorer
; 02 C:\WINDOWS\Menu Démarrer\Programmes\
; 03 Pas de dossier, il s'agit de : Panneau de configuration
; 04 Pas de dossier, il s'agit de : Imprimantes et télécopieurs
; 05 C:\Mes documents\
; 06 C:\WINDOWS\Favoris\
; 07 C:\WINDOWS\Menu Démarrer\Programmes\Démarrage\
; 08 C:\WINDOWS\Recent\
; 09 C:\WINDOWS\SendTo\
; 10 Pas de dossier, il s'agit de : Corbeille
; 11 Menu Démarrer C:\WINDOWS\Menu Démarrer\
; 16 C:\WINDOWS\Bureau\
; 17 Pas de dossier, il s'agit de : Poste de travail
; 18 Pas de dossier, il s'agit de : Favoris réseau
; 19 C:\WINDOWS\Voisinage réseau\
; 20 C:\WINDOWS\FONTS\
; 21 C:\WINDOWS\ShellNew\
; 26 C:\WINDOWS\Application Data\
; 27 C:\WINDOWS\PrintHood\
; 32 C:\WINDOWS\Temporary Internet Files\
; 33 C:\WINDOWS\Cookies\
; 34 C:\WINDOWS\Historique\
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: Repertoires Systéme [Résolu]
Merci LSI
Avec les icones en prime 


~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Repertoires Systéme [Résolu]
Du bon boulot comme dab...merci 
