; Auteur : Le Soldat Inconnu ; Version de PB : 3.90 ; ; Explication du programme : ; Récupérer le nom, l'adresse et l'icône des dossiers spéciaux de windows ProcedureDLL.s GetSpecialFolderLocation(Valeur.l) ; Récupère l'adresse d'un dossier spécifique de Windows Protected SpecialFolderLocation.s, Dossier_ID.l If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0 SpecialFolderLocation = Space(#MAX_PATH) SHGetPathFromIDList_(Dossier_ID, @SpecialFolderLocation) If SpecialFolderLocation If Right(SpecialFolderLocation, 1) <> "\" SpecialFolderLocation + "\" EndIf EndIf EndIf ProcedureReturn SpecialFolderLocation EndProcedure ProcedureDLL.s GetSpecialFolderName(Valeur.l) ; Récupère le nom d'un dossier spécifique de Windows Protected SpecialFolderName.s, Dossier_ID.l If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0 SpecialFolderName = Space(#MAX_PATH) SHGetPathFromIDList_(Dossier_ID, @SpecialFolderName) If SpecialFolderName SpecialFolderName = GetFilePart(SpecialFolderName) Else Select Valeur Case 1 : SpecialFolderName = "Internet explorer" Case 3 : SpecialFolderName = "Panneau de configuration" Case 4 : SpecialFolderName = "Imprimantes et télécopieurs" Case 10 : SpecialFolderName = "Corbeille" Case 17 : SpecialFolderName = "Poste de travail" Case 18 : SpecialFolderName = "Favoris réseau" Case 49 : SpecialFolderName = "Connexions réseau" Case 61 : SpecialFolderName = "Réseau" EndSelect EndIf EndIf ProcedureReturn SpecialFolderName EndProcedure ProcedureDLL.l GetSpecialFolderSmallIcon(Valeur.l) ; Récupère l'icône 16*16 d'un dossier spécifique de Windows Protected Dossier.SHFILEINFO, Dossier_ID.l, Icone If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0 SHGetFileInfo_(Dossier_ID, 0, @Dossier, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_PIDL | #SHGFI_SMALLICON) EndIf ProcedureReturn Dossier\hIcon EndProcedure ProcedureDLL.l GetSpecialFolderLargeIcon(Valeur.l) ; Récupère l'icône 32*32 d'un dossier spécifique de Windows Protected Dossier.SHFILEINFO, Dossier_ID.l, Icone If SHGetSpecialFolderLocation_(0, Valeur, @Dossier_ID) = 0 SHGetFileInfo_(Dossier_ID, 0, @Dossier, SizeOf(SHFILEINFO), #SHGFI_ICON | #SHGFI_PIDL | #SHGFI_LARGEICON) EndIf ProcedureReturn Dossier\hIcon EndProcedure ;- Programme principal ; Création de la fenêtre et de la GadgetList If OpenWindow(0, 0, 0, 800, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Icône") = 0 Or CreateGadgetList(WindowID()) = 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 = GetSpecialFolderName(n) ; On récupère le nom du dossier Adresse.s = GetSpecialFolderLocation(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é :") ImageGadget(2, 5, 235, 16, 16, GetSpecialFolderSmallIcon(0)) ; en 16 * 16 ImageGadget(3, 50, 235, 32, 32, GetSpecialFolderLargeIcon(0)) ; en 32 * 32 Repeat Event = WaitWindowEvent() If Event = #PB_EventGadget Select EventGadgetID() ; Gadgets Case 1 Position = GetGadgetState(1) If Position >= 0 Valeur = Val(GetGadgetItemText(1, Position, 0)) SetGadgetState(2, GetSpecialFolderSmallIcon(Valeur)) SetGadgetState(3, GetSpecialFolderLargeIcon(Valeur)) EndIf EndSelect EndIf Until Event = #PB_EventCloseWindow End ; 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\