aujourd'hui, je viens vous offrir un lanceur d'applications tout simple, il suffit de choisir des applications qui peuvent vous servir souvent, le programme les enregistre dans un fichier texte appelé apps.txt dans le même répertoire que le lanceur.
Quand vous relancez le lanceur, vous sélectionnez l'application à lancer et cliquez le bouton "Lancer".
Code : Tout sélectionner
Enumeration Fichiers
#Fichier
EndEnumeration
Enumeration fenetres
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Btn_Ajouter
#Btn_Lancer
#Btn_Quitter
#Lst_Applis
EndEnumeration
Enumeration Polices
#Police
EndEnumeration
LoadFont(#Police, "Arial Nova", 12, #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(#Police))
Procedure.s Extraire_Nom_de_Fichier(chemin$)
; Trouver la dernière barre oblique inversée pour isoler le nom du fichier
position = FindString(chemin$, "\", -1)
If position > 0
ProcedureReturn Mid(chemin$, position + 1)
Else
ProcedureReturn chemin$
EndIf
EndProcedure
Procedure ChargerApplications()
If FileSize("apps.txt") = -1
CreateFile(#Fichier, "apps.txt")
CloseFile(#Fichier)
EndIf
If ReadFile(#Fichier, "apps.txt")
Debug "Lecture du fichier..."
While Not Eof(#Fichier)
chemin$ = ReadString(#Fichier)
; Vérifie si c'est une URL ou un fichier
If FindString(chemin$, "http", 1) > 0
nomAffiche$ = chemin$ ; Garde l'URL telle quelle
Else
nomAffiche$ = GetFilePart(chemin$) ; Extrait uniquement le nom du fichier
EndIf
Debug "Ajout : " + nomAffiche$
AddGadgetItem(#Lst_Applis, -1, nomAffiche$)
Wend
CloseFile(#Fichier)
Else
Debug "Impossible de lire le fichier apps.txt"
EndIf
EndProcedure
Procedure AjouterApplication()
application$ = OpenFileRequester("Sélectionner une application", "", "", 0)
If application$ <> ""
fileName$ = Extraire_Nom_de_Fichier(application$) ; Extraire le nom du fichier
; Enregistrer le chemin complet dans le fichier
If OpenFile(#Fichier, "apps.txt", #PB_File_Append)
WriteStringN(0, application$)
CloseFile(#Fichier)
; Ajouter uniquement le nom du fichier dans la liste
AddGadgetItem(#Lst_Applis, -1, fileName$)
Else
MessageRequester("Erreur", "Impossible d'ouvrir le fichier apps.txt")
EndIf
EndIf
EndProcedure
Procedure LancerApplication()
indexSeletionne = GetGadgetState(#Lst_Applis)
If indexSeletionne >= 0
; Lire le fichier pour récupérer le chemin complet correspondant
If ReadFile(#Fichier, "apps.txt")
i = 0
While Not Eof(#Fichier)
chemin$ = ReadString(#Fichier)
If i = indexSeletionne
RunProgram(chemin$)
CloseFile(#Fichier)
ProcedureReturn
EndIf
i + 1
Wend
CloseFile(#Fichier)
EndIf
Else
MessageRequester("Erreur", "Aucune application sélectionnée !")
EndIf
EndProcedure
OpenWindow(#Fenetre_principale, 1910, 0, 340, 300, "Lanceur d'Applications", #PB_Window_BorderLess)
ListViewGadget(#Lst_Applis, 10, 10, 320, 240)
ButtonGadget(#Btn_Ajouter, 10, 260, 100, 30, "Ajouter")
ButtonGadget(#Btn_Lancer, 120, 260, 100, 30, "Lancer")
ButtonGadget(#Btn_Quitter, 230, 260, 100, 30, "Quitter")
SetWindowColor(#Fenetre_principale, $F63035)
SetGadgetColor(#Lst_Applis, #PB_Gadget_BackColor, $F63035)
SetGadgetColor(#Lst_Applis, #PB_Gadget_FrontColor, $FFFFFF)
ChargerApplications()
Repeat
Evenement = WaitWindowEvent()
If Evenement = #PB_Event_Gadget
Select EventGadget()
Case #Btn_Ajouter
AjouterApplication()
Case #Btn_Lancer
LancerApplication()
Case #Btn_Quitter
End
EndSelect
EndIf
Until Evenement = #PB_Event_CloseWindow