Après de longues heures de travail (notamment pour essayer qu'elle ne clignote pas trop), j'ai créé une petite horloge.
Développé sous windows seven. Je peux fournir l'exécutable sur demande. J'ai mis des remarques sur chaque-unes de mes lignes, ça fait beaucoup, mais c'est un exemple pour que les débutants comprennent le code.

Code : Tout sélectionner
#include <GUIConstants.au3> ;On inclut le fichier pour faire les intefaces
#Include <GuiEdit.au3> ;On inclut le fichier pour pouvoir utiliser la fonction _GUICtrlEdit_SetText
#include <ComboConstants.au3>
HotKeySet("{esc}", "_quit") ;Si on appuye sur la touche escape alors on utilise la fonction _quit
HotKeySet("{m}", "_menu") ;Si on appuye sur la touche m alors on utilise la fonction _menu
Func _quit() ;début de la fonction _quit
Exit ;On quitte la programme
EndFunc ;fin de la fonction
Func _menu()
GUIDelete() ;On efface les autres fenêtres
#Region ### START Koda GUI section ### ; début de la création de l'interface
$color2 = IniRead("horloge_settings.ini","preferences","color","Noir") ;On lit dans le fichier .ini quelle est la couleur de fond (noir est par défaut)
If $color2 = "Noir" Then $color = 0x000000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Vert" Then $color = 0x008000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Bleu" Then $color = 0x008080 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Rouge" Then $color = 0x800000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "jaune" Then $color = 0x808000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
$menu = GUICreate("Menu Horloge by sablier94", 388, 168, 305, 236, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW) ;Quelques propriétés de la fenêtre
GUISetBkColor($color) ;On applique la couleur de fond grâce à la variable
$couleurtxt = GUICtrlCreateLabel("Couleur de fond :", 16, 24, 104, 20) ;On affiche du texte
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ;Quelques propriétés du texte
GUICtrlSetColor(-1, 0xFFFFFF) ;Quelques propriétés du texte
$couleur = GUICtrlCreateCombo("Couleur", 152, 24, 105, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL)) ;On affiche une liste pour choisir les couleurs
GUICtrlSetData(-1, "|Noir|Bleu|Vert|Jaune|Rouge","noir") ;liste des couleurs
$Enregistrer = GUICtrlCreateButton("Enregistrer", 112, 104, 129, 33, 0) ;Boutton pour enregistrer
$titretxt = GUICtrlCreateLabel("Titre :", 16, 64, 37, 20) ;On affiche du texte
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$titreinput = iniRead("horloge_settings.ini","preferences","titre","Horloge by Sablier94 / Press [M] for Settings & [Esc] for exit") ;lecture du titre dans le fichier .ini
$titre = GUICtrlCreateInput($titreinput, 64, 64, 225, 21) ;input pour choisir un titre
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ### ;Fin de l'interface
While 1 ;Début de la boucle
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ;Si on appuye sur la croix
Exit ;Alors on ferme
Case $enregistrer ;Si on appuye sur enregistrer :
$couleur = GUICtrlRead($couleur) ;On lit la couleur choisie dans la liste des couleurs
$titre = GUICtrlRead($titre) ;On lit le titre
IniWrite("horloge_settings.ini","preferences","color",$couleur) ;On écrit la couleur dans le fichier .ini
IniWrite("horloge_settings.ini","preferences","titre",$titre) ;On écrit la couleur dans le fichier .ini
GUIDelete() ;On efface toutes les fenêtres
ShellExecute(@ScriptFullPath) ;On rouvre le programme
Exit ;on ferme le programme
EndSwitch ;fin du switch
WEnd ;fin de la boucle
EndFunc ;Fin de la fonction _menu
Local $heuredepart = @HOUR, $minutesdepart = @MIN, $secondesdepart = @SEC, $WS_SYSMENU,$WS_POPUP, $WS_EX_TOOLWINDOW ;On définit quelques variables pour pouvoir les utiliser partout dans le programme
$color2= IniRead("horloge_settings.ini","preferences","color","Noir") ;On lit la couleur dans le fichier .ini (Noir par défaut)
If $color2 = "Noir" Then $color = 0x000000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Vert" Then $color = 0x008000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Bleu" Then $color = 0x008080 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Rouge" Then $color = 0x800000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "jaune" Then $color = 0x808000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
#Region ### START Koda GUI section ### ;Début de la création de l'interface
$titre = iniRead("horloge_settings.ini","preferences","titre","Horloge by Sablier94 / Press [M] for Settings & [Esc] for exit") ;création de la feneêtre
$Horloge = GUICreate($titre, 462, 70, 288, 165, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW) ;Quelques propriétés de la fenêtre
GUISetBkColor($color) ;On applique la couleur de fond grâce à la variable
$ilesttxt = GUICtrlCreateLabel("Il est", 16, 10, 41, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif") ;Quelques propriétés du texte
GUICtrlSetColor(-1, 0xFFFFFF) ;Quelques propriétés du texte
$heure = GUICtrlCreateLabel($heuredepart, 64, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$heuretxt = GUICtrlCreateLabel("heure", 99, 10, 54, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$minutes = GUICtrlCreateLabel($minutesdepart, 160, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$minutestxt = GUICtrlCreateLabel("minutes", 194, 10, 70, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$secondes = GUICtrlCreateLabel($secondesdepart, 291, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$secondestxt = GUICtrlCreateLabel("secondes", 324, 10, 87, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$ettxt = GUICtrlCreateLabel("et", 269, 10, 19, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW) ;Quelques propriétés
#EndRegion ### END Koda GUI section ### ;Fin de l'interface
While 1 ;Début de la boucle
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ;Si on appuye sur la croix
Exit ;Alors on ferme
EndSwitch
If _GUICtrlEdit_GetText($heure) <> @HOUR Then _ ;si l'heure affichée est différente de l'heure réel
_GUICtrlEdit_SetText($heure, @HOUR) ;On édite le texte de la GUI $heure avec l'heure réelle
sleep(50) ;On fait une pause de 50 milisecondes
If _GUICtrlEdit_GetText($minutes) <> @MIN then _ ;si les minutes affichées sont différentes de l'heure réel
_GUICtrlEdit_SetText($minutes,@MIN);On édite le texte de la GUI $minutes avec les minutes réelles
sleep(50) ;On fait une pause de 50 milisecondes
If _GUICtrlEdit_GetText($secondes) <> @SEC Then _ ;si les secondes affichées sont différentes de l'heure réel
_GUICtrlEdit_SetText($secondes,@SEC);On édite le texte de la GUI $secondes avec les secondes réelles
sleep(250) ;On fait une pause de 250 milisecondes pour ne pas surcharger le processeur à cause de la boucle
WEnd ;Fin de la boucle