Repertoires Systéme [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Repertoires Systéme [Résolu]

Message par brossden »

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 !
Dernière modification par brossden le jeu. 22/déc./2011 9:32, modifié 1 fois.
Denis

Bonne Jounée à tous
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Re: Repertoires Systéme

Message par brossden »

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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Repertoires Systéme [Résolu]

Message par Backup »

Le Soldat avait trouvé :
; 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\
et ça de je sais plus qui :

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  
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Repertoires Systéme

Message par Ar-S »

brossden 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
Bien bon ça :)

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
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Re: Repertoires Systéme [Résolu]

Message par brossden »

merci les petits gars !! :lol:
Denis

Bonne Jounée à tous
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Repertoires Systéme [Résolu]

Message par Le Soldat Inconnu »

Mon dernier code :)
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)]
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Repertoires Systéme [Résolu]

Message par Ar-S »

Merci LSI :) Avec les icones en prime :P
~~~~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
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Re: Repertoires Systéme [Résolu]

Message par Droopy »

Cool les icones :wink:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Repertoires Systéme [Résolu]

Message par Kwai chang caine »

Du bon boulot comme dab...merci 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre