C'est un prog qui se cache sur le coté droit de l'écran ne laissant apparaître que sa bordure, un click droit sur celle-ci fait apparaître le programme. Au bout de 2 seconde la fenêtre se rabat sur le coté.
On clique sur le bouton créer un fichier, on rentre un nom de fichier avec l'extension .txt, ensuite le bloc note se lance et on rentre les données de cette façon:
Par exemple pour me logger sur le site de PureBasic,
je tape: PureBasic<touche TAB>http://www.purebasic.fr<touche TAB>Mon Login*Mon mot de passe
(l'* permet de séparer le login du mot de passe)
Je fais ensuite fichier enregistrer, puis fichier quitter.
Le nom PureBasic apparait maintenant dans la listicon avec les autres informations.
Un click droit sur PureBasic affiche un menu permettant d'afficher la page web, ensuite pour coller les informations de login, il faut double cliquer sur PureBasic puis ensuite cliquer dans les champs de login et du mot de passe de la page web.
Eh oui ça le fait pas tout seul

Voici le prog:
Code : Tout sélectionner
;{-Structure ListeFichier
Structure Nom
Nom.s
EndStructure
;}
;{-Structure ListeIcon
Structure ListIcon
Texte.s
EndStructure
;}
Global NewList ListeFichier.Nom()
Global NewList List.ListIcon()
Global hMutex,Texte.s,Couleur.l,MemTexte1.s,MemTexte2.s,MemFichier.s,NouveauFichier.s
Prog.s="Log"
SetLastError_(#NO_ERROR)
hMutex.l= CreateMutex_(#Null, #False, @Prog)
Erreur.l = GetLastError_()
If ( Erreur = #ERROR_ALREADY_EXISTS ) Or ( Erreur = #ERROR_ACCESS_DENIED )
MessageRequester("Info","Vous ne pouvez lancer qu'une seule instance du programme: Log.exe")
End
EndIf
;{- Enumerations Fenêtre pricipale
;{ Windows
Enumeration
#Main
EndEnumeration
;}
;{ Gadgets
Enumeration
#Text_0
#ListIcon1
#ComboBox_Liste
#Couleur
#ButtonQuitter
#Creer_Fichier
#Editer_Fichier
#Supprimer_Fichier
#Image_Gauche
#Image_Haut
#Image_Bas
#Image_Droite
EndEnumeration
;}
;{ Font
Enumeration
#Font1
#Font2
#Font3
EndEnumeration
;}
;{ Image
Enumeration
#Image1
#Image2
#Image3
#Image4
EndEnumeration
;}
;{ PopupMenu
Enumeration
#ContextMenu
#Web
EndEnumeration
;}
;}
;{- Enumerations Fenêtre Aide
;{ Windows
Enumeration 100
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration 100
#Texte_Info
#Text_coller
#Text_Info2
EndEnumeration
;}
;}
;{- Enumerations Dialog
;{ Windows
Enumeration 200
#Dialog
EndEnumeration
;}
;{ Gadgets
Enumeration 200
#Dialog_Text
#Dialog_String
#Dialog_Valider
#Dialog_Annuler
EndEnumeration
;}
;}
;{- Fonction Simul Keyboard
Procedure KeyDown(key.l)
keybd_event_(key, 0, 0, 0)
EndProcedure
Procedure KeyUp(key.l)
keybd_event_(key, 0, #KEYEVENTF_KEYUP, 0)
EndProcedure
Procedure KeyCombi(ctrl.l,shift.l,alt.l,func.l,key.l)
If ctrl
KeyDown(#VK_CONTROL) ; simulate CTRL keydown - have to hold it down
EndIf
If alt
KeyDown(#VK_MENU) ; simulate ALT keydown - have to hold it down
EndIf
If shift
KeyDown(#VK_SHIFT)
EndIf
If func
KeyDown(func+69) ; simulate function keydown
EndIf
If key
If shift:a=#KEYEVENTF_EXTENDEDKEY:EndIf
keybd_event_(key, 0, a, 0)
keybd_event_(key, 0, a|#KEYEVENTF_KEYUP, 0)
EndIf
If func
KeyUp(func+69) ; release function key
EndIf
If alt
KeyUp(#VK_MENU) ; release ALT
EndIf
If shift
KeyUp(#VK_SHIFT)
EndIf
If ctrl
KeyUp(#VK_CONTROL) ; release CTRL
EndIf
EndProcedure
;}
;{- Fonction Simul Mouse
Procedure MouseEvent(Event.l)
Protected Mem.l
Mem.l=GlobalAlloc_(0,8)
GetCursorPos_(Mem)
mouse_event_(Event | #MOUSEEVENTF_ABSOLUTE, PeekL(Mem) * ($FFFF / GetSystemMetrics_(0)), PeekL(Mem + 4) * ($FFFF / GetSystemMetrics_(1)), 0, GetMessageExtraInfo_())
GlobalFree_(Mem)
EndProcedure
;}
;{- Fonction Dialog
Procedure OpenDialog(id, Dialog_Larg, Dialog_Haut, Dialog_Texte.s, Window_Main, Dialog_Option)
Protected Valeur.l
Valeur.l=OpenWindow(id,Dialog_X,Dialog_Y,Dialog_Larg,Dialog_Haut,Dialog_Texte,Dialog_Option,WindowID(Window_Main))
If id=#PB_Any
id=Valeur
EndIf
DisableWindow(Window_Main,1)
ProcedureReturn Valeur
EndProcedure
Procedure CloseDialog(Window_Dialog.l,Window_Main.l)
DisableWindow(Window_Main,0)
SetActiveWindow_(Window_Main)
CloseWindow(Window_Dialog)
EndProcedure
;}
;{- Procedure Dialog
Procedure.l OpenWindow_Dialog(Window.l)
Protected Quit.l,Valid.l,Extension.s
NouveauFichier=""
If OpenDialog(#Dialog, 200, 100, "Nouveau Fichier", Window, #PB_Window_ScreenCentered )
;If OpenWindow(#Dialog, 407, 195, 200, 100, "Nouveau Fichier", #PB_Window_SizeGadget|#PB_Window_TitleBar|#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#Dialog))
TextGadget(#Dialog_Text, 10, 10, 180, 30, "Veuillez entrer un nom de fichier avec l'extension:"+Chr(34)+".txt"+Chr(34))
StringGadget(#Dialog_String, 10, 40, 180, 20, "")
ButtonGadget(#Dialog_Valider, 10, 70, 85, 20, "Valider")
ButtonGadget(#Dialog_Annuler, 105, 70, 85, 20, "Annuler")
EndIf
EndIf
Repeat
Select WaitWindowEvent()
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Dialog_Text
Case #Dialog_String
Case #Dialog_Valider
NouveauFichier=GetGadgetText(#Dialog_String)
Extension.s=GetExtensionPart(NouveauFichier)
If Len(NouveauFichier)>4
If LCase(Extension)="txt"
If ReadFile(0,GetCurrentDirectory()+NouveauFichier)=0
Valid=1
CloseDialog(#Dialog,Window)
Quit=1
Else
CloseFile(0)
MessageRequester("Erreur","Ce nom de fichier existe déjà dans le répertoire de l'exécutable !")
EndIf
Else
MessageRequester("Erreur","L'extension du fichier doit se terminer par:"+Chr(34)+".txt"+Chr(34)+" !")
EndIf
Else
MessageRequester("Erreur","Le nom de fichier n'est pas complet !")
EndIf
Case #Dialog_Annuler
CloseDialog(#Dialog,Window)
Quit=1
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Dialog
CloseDialog(#Dialog,Window)
Quit=1
EndSelect
EndSelect
Until Quit=1
If Valid
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
;}
Procedure.l Thread(lParam.l)
Protected Nb.l,Texte.s,TexteField.s,Count.l,Point.POINT
GetAsyncKeyState_(#VK_LBUTTON)
GetAsyncKeyState_(#VK_CONTROL)
Texte.s=PeekS(lParam)
Debug Texte
Count=CountString(Texte, "*")
Count=Count+1
Nb=0
Nb=Nb+1
TexteField=StringField(Texte,Nb,"*")
SetGadgetText(#Text_coller,"("+Str(Nb)+"/"+Str(Count)+") "+TexteField)
GetCursorPos_(@Point)
ResizeWindow(#Window_0,Point\x+16,Point\y+16,#PB_Ignore,#PB_Ignore)
HideWindow(#Window_0,0)
Repeat
If GetAsyncKeyState_(#VK_LBUTTON)
Delay(20)
MouseEvent(#MOUSEEVENTF_LEFTDOWN)
Delay(20)
MouseEvent(#MOUSEEVENTF_LEFTUP)
Delay(20)
KeyCombi(0,0,0,0,#VK_DELETE)
KeyCombi(0,0,0,0,#VK_END)
KeyCombi(0,1,0,0,#VK_HOME)
SetClipboardText(TexteField)
KeyCombi(0,1,0,0,#VK_INSERT)
If Nb<>Count+1
Nb=Nb+1
TexteField=StringField(Texte,Nb,"*")
SetGadgetText(#Text_coller,"("+Str(Nb)+"/"+Str(Count)+") "+TexteField)
EndIf
GetAsyncKeyState_(#VK_LBUTTON)
EndIf
GetCursorPos_(@Point)
ResizeWindow(#Window_0,Point\x+16,Point\y+16,#PB_Ignore,#PB_Ignore)
Delay(10)
Until Nb=Count+1 Or GetAsyncKeyState_(#VK_CONTROL)
HideWindow(#Window_0,1)
ClearClipboard()
EndProcedure
Procedure.l Aide()
If OpenWindow(#Window_0, 555, 255, 162, 68, "Window_0", #PB_Window_BorderLess|#PB_Window_Invisible)
If CreateGadgetList(WindowID(#Window_0))
TextGadget(#Texte_Info, 2, 2, 158, 20, "Click gauche pour coller le texte", #PB_Text_Center)
TextGadget(#Text_coller, 2, 24, 158, 20, "");, #PB_Text_Center)
TextGadget(#Text_Info2, 2, 46, 158, 20, "Touche Ctrl pour abandonner", #PB_Text_Center)
EndIf
SetWindowColor(#Window_0,RGB(11,29,250))
SetGadgetColor(#Texte_Info,#PB_Gadget_BackColor,RGB(198,214,253))
SetGadgetColor(#Texte_Info,#PB_Gadget_FrontColor,RGB(11,29,250))
SetGadgetColor(#Text_Info2,#PB_Gadget_BackColor,RGB(198,214,253))
SetGadgetColor(#Text_Info2,#PB_Gadget_FrontColor,RGB(146,75,114))
SetGadgetColor(#Text_coller,#PB_Gadget_BackColor,RGB(198,214,253))
SetGadgetColor(#Text_coller,#PB_Gadget_FrontColor,RGB(32,135,32))
LoadFont(#Font2, "Arial" ,12, #PB_Font_Bold)
SetGadgetFont(#Text_coller,FontID(#Font2))
StickyWindow(#Window_0,1)
EndIf
EndProcedure
Procedure.l Callback(Window, Message, wParam, lParam)
Protected DesktopHeight.l,DesktopWidth.l,a.l,b.l,Name.s,WindowPoint.l,RootWindow.l
Static Timer.l,TempDepasse.l
;ViewEvent(msg)
Resultat = #PB_ProcessPureBasicEvents
Select Message
Case #WM_USER+1
; If lParam=0
KillTimer_(Window,10)
Delay(50)
ExamineDesktops()
DesktopHeight = DesktopHeight(0)
DesktopWidth = DesktopWidth(0)
For b= (DesktopWidth-WindowWidth(#Main)) To (DesktopWidth-3) Step 10
Delay(10)
ResizeWindow(#Main,b,(DesktopHeight-WindowHeight(#Main))/2, #PB_Ignore, #PB_Ignore)
Next b
ResizeWindow(#Main,DesktopWidth-4,(DesktopHeight-WindowHeight(#Main))/2, #PB_Ignore, #PB_Ignore)
Timer=0
TempDepasse=0
Resultat=0
Case #WM_MOUSEMOVE
If Timer=0
Timer=1
KeyCombi(0,0,0,0,#VK_CONTROL);pour mettre fin au thread si lancé!
Debug "Mousemove"
ExamineDesktops()
DesktopHeight = DesktopHeight(0)
DesktopWidth = DesktopWidth(0)
For a=(DesktopWidth) To (DesktopWidth-WindowWidth(#Main)) Step -10
Delay(10)
ResizeWindow(#Main,a,(DesktopHeight-WindowHeight(#Main))/2, #PB_Ignore, #PB_Ignore)
Next a
ResizeWindow(#Main,DesktopWidth-WindowWidth(#Main),(DesktopHeight-WindowHeight(#Main))/2, #PB_Ignore, #PB_Ignore)
SetTimer_(Window,10,100,0)
Resultat=0
EndIf
Case #WM_TIMER
;Debug " Timer"
Select wParam
Case 10
GetCursorPos_(@Point.POINT)
WindowPoint=WindowFromPoint_(Point\x,Point\y)
RootWindow=GetAncestor_(WindowPoint, #GA_ROOTOWNER)
Name=Space(100)
GetClassName_(WindowPoint,@Name,99)
If RootWindow<>Window And GetFocus_()<>GadgetID(#ComboBox_Liste)
TempDepasse+1
If TempDepasse>18
PostMessage_(Window,#WM_USER+1,0,0)
EndIf
Else
TempDepasse=0
EndIf
Resultat=0
EndSelect
EndSelect
ProcedureReturn Resultat
EndProcedure
Procedure.l OpenWindow_Main()
If OpenWindow(#Main, 467, 104, 212, 520, "Assistant",#PB_Window_BorderLess|#PB_Window_Invisible)
SetWindowCallback(@Callback(),#Main)
If CreateGadgetList(WindowID(#Main))
TextGadget(#Text_0, 55, 10, 100, 20, "Log", #PB_Text_Center)
ListIconGadget(#ListIcon1, 10, 70, 195, 410, "Nom", 190, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
ComboBoxGadget(#ComboBox_Liste, 10, 45, 100, 130)
ButtonGadget(#Couleur, 155, 10, 50, 20, "Couleur")
ButtonGadget(#ButtonQuitter, 10, 10, 40, 20, "Quitter")
ButtonGadget(#Creer_Fichier, 115, 45, 90, 20, "Créer un Fichier")
ButtonGadget(#Editer_Fichier, 10, 490, 95, 20, "Editer ce fichier")
ButtonGadget(#Supprimer_Fichier, 110, 490, 95, 20, "Supprimer fichier")
AddGadgetColumn(#ListIcon1, 1, "Site Web", 190)
AddGadgetColumn(#ListIcon1, 2, "Code", 190)
CreateImage(#Image1,5,520)
StartDrawing(ImageOutput(#Image1))
Box(0, 0, 5,520,RGB(0,0,255))
StopDrawing()
CreateImage(#Image2,205,5)
StartDrawing(ImageOutput(#Image2))
Box(0, 0, 205,5,RGB(0,0,255))
StopDrawing()
CreateImage(#Image3,205,5)
StartDrawing(ImageOutput(#Image3))
Box(0, 0, 205,5,RGB(0,0,255))
StopDrawing()
CreateImage(#Image4,2,520)
StartDrawing(ImageOutput(#Image4))
Box(0, 0, 2,520,RGB(0,0,255))
StopDrawing()
ImageGadget(#Image_Gauche, 0, 0, 5, 520,ImageID(#Image1))
ImageGadget(#Image_Haut, 5, 0, 205, 5, ImageID(#Image2))
ImageGadget(#Image_Bas, 5, 515, 205, 5, ImageID(#Image3))
ImageGadget(#Image_Droite, 210, 0, 2, 520, ImageID(#Image4))
GadgetToolTip(#Couleur, "Changer la couleur de fond de la fenêtre.")
GadgetToolTip(#ListIcon1, "Double click gauche de la souris pour copier l'élémént!")
GadgetToolTip(#ComboBox_Liste, "Les fichiers sont triés par ordre alphabétique.")
LoadFont(#Font3, "Arial" ,9, #PB_Font_Bold)
SetWindowColor(#Main,Couleur)
LoadFont(#Font1, "Arial" ,12, #PB_Font_Bold)
SetGadgetFont(#Text_0,FontID(#Font1))
SetGadgetColor(#Text_0,#PB_Gadget_BackColor,Couleur)
SetGadgetColor(#Text_0,#PB_Gadget_FrontColor,RGB(0,0,255))
SetGadgetFont(#ListIcon1,FontID(#Font3))
SetGadgetColor(#ListIcon1,#PB_Gadget_FrontColor,RGB(0,0,255))
CreatePopupMenu(#ContextMenu)
MenuItem(#Web, "Afficher la page Web")
SetWindowLong_(WindowID(#Main),#GWL_EXSTYLE ,GetWindowLong_(WindowID(#Main),#GWL_EXSTYLE)|#WS_EX_TOOLWINDOW)
StickyWindow(#Main,1)
ExamineDesktops()
DesktopHeight = DesktopHeight(0)
DesktopWidth = DesktopWidth(0)
ResizeWindow(#Main,DesktopWidth-4,(DesktopHeight-WindowHeight(#Main))/2, #PB_Ignore, #PB_Ignore)
HideWindow(#Main,0)
PostMessage_(WindowID(#Main),#WM_MOUSEMOVE,0,0)
EndIf
EndIf
EndProcedure
Procedure.l LoadComboFile(IndexPrecedent.l)
Protected FileName$,NbFichier.l,Position.l
Protected Index.l,NouveauIndex.l
Static Fichier.s
Index=-1
NouveauIndex=-1
ClearList(ListeFichier())
If ExamineDirectory(0, GetCurrentDirectory(), "*.txt")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
FileName$ = DirectoryEntryName(0)
If FileName$<>"Reserved.txt"
AddElement(ListeFichier())
ListeFichier()\Nom=FileName$
EndIf
EndIf
Wend
FinishDirectory(0)
Else
MessageRequester("Erreur","Impossible de lister le contenu du répertoire !")
EndIf
NbFichier=CountList(ListeFichier())
If NbFichier>1
SortStructuredList(ListeFichier(), 2, 0, #PB_Sort_String)
Index=0
EndIf
Debug MemFichier
If NbFichier>0
Position=0
ForEach ListeFichier()
AddGadgetItem(#ComboBox_Liste, -1, ListeFichier()\Nom)
Fichier=Fichier+ListeFichier()\Nom+" "
Debug ListeFichier()\Nom
If MemFichier<>""
If FindString(MemFichier,ListeFichier()\Nom,1)=0
NouveauIndex=Position
Debug "Position= "+Str(Position)
EndIf
EndIf
Position=Position+1
Next
EndIf
MemFichier=Fichier
If NouveauIndex<>-1
Debug "NouveauIndex"
Index=NouveauIndex
ElseIf IndexPrecedent<>-1
Debug "IndexPrecedent"
Index=IndexPrecedent
Else
Index=0 ;Dans ce cas, on sélectionne le premier élémént de la liste
EndIf
ProcedureReturn Index
EndProcedure
Procedure.l LoadListIcon(File.s)
Protected Texte.s,*Pointeur.BYTE
ClearList(List())
If ReadFile(0,File)
While Eof(0)=0
Texte=ReadString(0)
If Texte<>""
AddElement(List())
List()\Texte=Texte
EndIf
Wend
CloseFile(0)
EndIf
SortStructuredList(List(), 2, 0, #PB_Sort_String)
If CreateFile(0, File)
ForEach List()
WriteStringN(0, List()\Texte)
Next
CloseFile(0)
EndIf
If ReadFile(0,File)
While Eof(0)=0
Texte=ReadString(0)
*Pointeur=@Texte
For a=1 To Len(Texte)
If *Pointeur\b=9
*pointeur\b=10
EndIf
*pointeur=*pointeur+1
Next a
AddGadgetItem(#ListIcon1, -1, Texte)
Wend
CloseFile(0)
EndIf
EndProcedure
Procedure.l EnregistrerTexteCouleur()
Protected Texte1.s,Texte2.s
If CreateFile(0,GetCurrentDirectory()+"Reserved.txt")
WriteStringN(0,Str(Couleur))
CloseFile(0)
EndIf
EndProcedure
;-Debut du programme
If ReadFile(0,GetCurrentDirectory()+"Reserved.txt")
Couleur=Val(ReadString(0))
MemTexte1=ReadString(0)
MemTexte2=ReadString(0)
CloseFile(0)
Else
If CreateFile(0,GetCurrentDirectory()+"Reserved.txt")
Couleur=RGB(172,206,255)
WriteString(0,Str(Couleur))
MemTexte1=""
MemTexte2=""
CloseFile(0)
EndIf
EndIf
OpenWindow_Main()
Aide()
Index=LoadComboFile(-1)
If Index<>-1
SetGadgetState(#ComboBox_Liste, Index)
Fichier.s=GetGadgetText(#ComboBox_Liste)
LoadListIcon(GetCurrentDirectory()+Fichier)
; Else
; MessageRequester("Info","Le répertoire ne contient ancun fichier de données !")
EndIf
;{- Event loop
Repeat
Event= WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case #Image_Gauche
Select EventType()
Case #PB_EventType_RightClick
PostMessage_(WindowID(#Main),#WM_MOUSEMOVE,0,0)
EndSelect
Case #Creer_Fichier
Message.s="Le programme Bloc-notes va se lancer, entrez vos nouvelles données,"+Chr(10)
Message+"puis enregistrez et quitter !"
If OpenWindow_Dialog(#Main)
If CreateFile(0,GetCurrentDirectory()+NouveauFichier)
CloseFile(0)
MessageRequester("Info",Message)
If RunProgram("Notepad.exe" , GetCurrentDirectory()+NouveauFichier, GetCurrentDirectory() ,#PB_Program_Wait)<>0
State= GetGadgetState(#ComboBox_Liste)
ClearGadgetItemList(#ComboBox_Liste)
ClearGadgetItemList(#ListIcon1)
Index=LoadComboFile(State)
If Index<>-1
SetGadgetState(#ComboBox_Liste, Index)
Fichier.s=GetGadgetText(#ComboBox_Liste)
LoadListIcon(GetCurrentDirectory()+Fichier)
PostMessage_(WindowID(#Main),#WM_MOUSEMOVE,0,0)
Else
MessageRequester("Info",",Le répertoire ne contient pas fichier de données !")
EndIf
Else
MessageRequester("Erreur","Le programme Bloc-notes n'a pu être lancé !")
EndIf
Else
MessageRequester("Erreur","Impossible de créer le fichier !")
EndIf
EndIf
Case #Editer_Fichier
Fichier=GetGadgetText(#ComboBox_Liste)
If Fichier<>""
Texte=GetGadgetItemText(#ListIcon1, Element , 1)
DisableWindow(#Main, 1)
If RunProgram("Notepad.exe" , GetCurrentDirectory()+Fichier, GetCurrentDirectory() ,#PB_Program_Wait)<>0
ClearGadgetItemList(#ListIcon1)
LoadListIcon(Fichier)
Else
MessageRequester("Erreur",",Le programme Bloc-notes n'a pu être lancé !")
EndIf
Else
MessageRequester("Info","Aucun fichier n'est sélectionné !")
EndIf
DisableWindow(#Main, 0)
Case #Supprimer_Fichier
Fichier.s=GetGadgetText(#ComboBox_Liste)
If Fichier<>""
Result.l=MessageRequester("Info","Etes-vous sûr de vouloir supprimer ce fichier?: "+Fichier,#PB_MessageRequester_YesNo)
If Result=6
If DeleteFile(GetCurrentDirectory()+Fichier)
State.l= GetGadgetState(#ComboBox_Liste)
MemFichier=RemoveString(MemFichier,Fichier)
Debug MemFichier
RemoveGadgetItem(#ComboBox_Liste, State)
ClearGadgetItemList(#ListIcon1)
InvalidateRect_(GadgetID(#ComboBox_Liste),0,1)
Else
MessageRequester("Erreur","Le fichier n'a pu être effacé !")
EndIf
EndIf
Else
MessageRequester("Info","Aucun fichier n'est sélectionné !")
EndIf
Case #ComboBox_Liste
Select EventType()
Case 1 ;Selection d'un Item
State1.s= GetGadgetText(#ComboBox_Liste)
If State2.s<>State1
Debug "Changement d'item"
SetFocus_(WindowID(#Main))
ClearGadgetItemList(#ListIcon1)
Fichier.s=GetGadgetText(#ComboBox_Liste)
LoadListIcon(GetCurrentDirectory()+Fichier)
State2=State1
EndIf
Case 4 ;Perte de Focus"
Case 7 ;Ouverture de la liste"
If CountGadgetItems(#ComboBox_Liste)=0
MessageRequester("Info","La liste est vide, cliquer sur le bouton "+Chr(34)+"Créer un Fichier"+Chr(34)+" !")
SetFocus_(WindowID(#Main))
EndIf
Case 8 ;Fermeture de la liste"
SetFocus_(WindowID(#Main))
EndSelect
Case #ListIcon1
Select EventType()
Case #PB_EventType_RightClick
DisplayPopupMenu(#ContextMenu,WindowID(#Main))
Case #PB_EventType_LeftDoubleClick
Element=GetGadgetState(#ListIcon1)
If Element>-1
Texte=GetGadgetItemText(#ListIcon1, Element , 2)
SetFocus_(WindowID(#Main))
CreateThread(@Thread(),@Texte)
PostMessage_(WindowID(#Main),#WM_USER+1,0,0)
EndIf
EndSelect
Case #ButtonQuitter
HideWindow(#Main,1)
Quit=1
Case #Couleur
Couleur=ColorRequester()
If Couleur>-1
SetWindowColor(#Main,Couleur)
SetGadgetColor(#Text_0,#PB_Gadget_BackColor,Couleur)
EnregistrerTexteCouleur()
EndIf
EndSelect
Case #PB_Event_Menu
Select EventMenu()
Case #Web
Element=GetGadgetState(#ListIcon1)
If Element>-1
Texte=GetGadgetItemText(#ListIcon1, Element , 1)
RunProgram(Texte)
EndIf
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Main
HideWindow(#Main,1)
quit=1
EndSelect
EndSelect
Until quit=1
CloseHandle_(hMutex)
End
;}