[UDF] Log Viewer Gui

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

[UDF] Log Viewer Gui

#1

Message par timmalos »

Bonjour a tous.
Je vous présente mon dernier petit projet. Il peut surement aider quelques personnes ici dans leur projet professionel.

Log Viewer Gui's Presentation



Description

Prochainement composé d'une dizaine de fonctions environ, cet UDF crée une GUI independante de votre programme, marchant simultanément, afin de montrer vos lignes de logs aux utilisateurs (ou tout autre information, par exemple l'avancement d'un telechargement ou d'une installation.)
Comme une image parle toujours plus :
Image


Exemple d'utilisation

Ci-dessous un script d'exemple d'utilisation de l'UDF. Cet exemple est sommaire car le programme en lui meme ne comporte pas de fenetre, mais vous pouvez tout a fait l'ajouter a vos scripts existants et tres facilement.

Code : Tout sélectionner

#include <udf_log.au3>


_Log_Gui_Create()
_Log_gui_show_hide(@SW_SHOW)
_Log_Gui_Add("Lancement de l'application",0);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation
_Log_Gui_Add("Ce programme va analyser vos données. Etes vous certain de continuer? Si non, fermez ce programme",3);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = Recherche 5 = Information
Sleep(3000)
_Log_Gui_Add("Ce programme va analyser vos données. Lancement dans quelques secondes",6);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation,4=OK, 5 = Recherche 6 = Information
Sleep(2000)

Global $i
For $i = 1 to 10
    _Log_gui_set_status_bar("Opération "&$i+1&" en cours...")
    _Log_Gui_Add("Recherche en cours...",5);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = Recherche 5 = Information

    Sleep(2300)
    If Random(0,1,1) = 1 Then
        _Log_Gui_Add("Lancement de l'opération n°"& $i & " Réussi",4);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = OK
    Else
        _Log_Gui_Add("Lancement de l'opération n°"& $i & " Echoué",2);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = OK
    EndIf
    _Log_Gui_Set_Percent($i*10 - Int($i/5) + Int($i/4)-Int($i/3)+3)
Next
_Log_Gui_Close()
Exit
 
Vous pouvez tester ce code sur votre machine sans danger, il n'opère aucune action.


Projet Evolutif

Dernière chose, ce projet est OPEN, c'est à dire que je ne le fait pas que pour moi. En consequence, si quelqu'un souhaite le modifier, il en a tous les droits et c'est encore mieux si il nous fait part de ses modifications. De plus, si quelqlu'un a besoin d'une modification/amélioration , qu'il n'hesite pas à la demander.

Le fichier zip ci-dessous contient tous les fichiers necessaires, dont l'UDF proprement dit.
UDF_LOG_GUI.zip
Version 1.0
(95.35 Kio) Téléchargé 1007 fois
Si vous avez d'autres questions, n'hesitez pas,
Cordialement,
Tim
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#2

Message par Habibsbib »

Très bon projet.

Mais je vais quand même reprendre ton code et corriger les fautes d'orthographe (y' en a bas beaucoup, t'inquiète pas).
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#3

Message par ricky »

Hello,

l'image n'est plus visible, est-ce normal?
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#4

Message par timmalos »

Je viens de la reuploader. Merci pour avoir prevenu ;)
Avatar du membre
sksbir
Niveau 7
Niveau 7
Messages : 384
Enregistré le : lun. 26 oct. 2009 17:57
Localisation : Lyon
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#5

Message par sksbir »

Bonjour
J'ai pris le .zip, je l'ai décompressé dans un répertoire à part.

lancement du sample impossible, le syntaxcheckprod me renvoie ceci:

>Running AU3Check (1.54.19.0) from:C:\Program Files\AutoIt3
D:\tmp\UDF_LOG_GUI\udf_log.au3(35,31) : WARNING: $LL_GUI: possibly used before declaration.
GUISetState($LL_flag, $LL_GUI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^


c'est à la ligne 35 de l'UDF.

c'est le petit cadeau au 100ieme téléchargement ?? :lol:
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#6

Message par timmalos »

C'est juste un warning, ici tout va bien c'est juste que $LL_GUI est declaré par la fonction _create, donc si tu n'appelle pas cette fonction avant les autres il va y avoir une erreur, mais en fait non car à chaqeu debut de fonction je vérifie que c'est bien le cas, aucun soucis à te faire donc ;)
FF2Damien
Niveau 1
Niveau 1
Messages : 14
Enregistré le : jeu. 17 mars 2016 15:24
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#7

Message par FF2Damien »

super script. merci beaucoup !

En revanche ça ne fais pas un scroll down pour visualiser en continu le log. c'est dommage.
Une idée pour corriger ca ?

++
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#8

Message par mikell »

pas testé mais ça devrait le faire

Code : Tout sélectionner

Func _Log_Gui_Add($LL_Texte, $LL_icon)
	If Not IsDeclared("LL_GUI") Then SetError(1, 0, 0)
	;Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation
	;_GUICtrlListView_BeginUpdate($LL_hListView)
	$newitem = _GUICtrlListView_AddItem($LL_hListView, $LL_Texte, Number($LL_icon))  ;<<<<<<<<<<<<<<<<<
	If $LL_title_group1 Then _GUICtrlListView_SetItemGroupID($LL_hListView, Number(_GUICtrlListView_GetItemCount($LL_hListView)) - 1, 1)
	;_GUICtrlListView_EndUpdate($LL_hListView)
	_GUICtrlListView_EnsureVisible($LL_hListView, $newitem)  ;<<<<<<<<<<<<<<<<<<<
EndFunc   ;==>_Log_Gui_Add
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
FF2Damien
Niveau 1
Niveau 1
Messages : 14
Enregistré le : jeu. 17 mars 2016 15:24
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#9

Message par FF2Damien »

Ca fonctionne !

Merci !
FF2Damien
Niveau 1
Niveau 1
Messages : 14
Enregistré le : jeu. 17 mars 2016 15:24
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#10

Message par FF2Damien »

Retour d'info

Ca fait plusieurs jours que je bloque sur une simple GUI:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

; ########## Début de la création de la GUI 1 ##########
$GUI1 = GUICreate("GUI1", 250, 150, -1, -1) ; Création de la GUI1
$Lb1 = GUICtrlCreateLabel("Fenêtre 1", 85, 10, 120, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
$Chb1 = GUICtrlCreateCheckbox("Checkbox1", 90, 60, 100, 20) ; Création d'une CheckBox
$Btn1 = GUICtrlCreateButton("Masque la GUI1 et Affiche la GUI2", 35, 110, 180, 25) ; Création d'un bouton simple
; ########## Fin de la création de la GUI 1 ##########

; ########## Début de la création de la GUI 2 ##########
$GUI2 = GUICreate("GUI2", 250, 150, -1, -1) ; Création de la GUI2
$Lbl2 = GUICtrlCreateLabel("Fenêtre 2", 85, 10, 120, 24) ; Création du label2
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label2)
$Rd1 = GUICtrlCreateRadio("Radio1", 100, 60, 100, 20) ; Création d'un bouton radio
$Btn2 = GUICtrlCreateButton("Masque GUI 1 et Affiche GUI 2", 35, 110, 180, 25) ; Création d'un bouton simple
; ########## Fin de la création de la GUI 2 ##########

GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI1 (la GUI2 reste masquée)

While 1 ; Début de la boucle infinie

    $nMsg = GUIGetMsg() ; Récupération des messages GUI
    Switch $nMsg ; Début du sélecteur de cas

        Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre GUI1 ou GUI2 on sort
            MsgBox(64, 'Info', 'Vous avez choisi de fermer la fenêtre en cours') ; Message
            Exit ; Fin du script

        Case $Btn1 ; Si clic sur le bouton $Btn1
            GUISetState(@SW_HIDE, $GUI1) ; On masque la GUI 1
            GUISetState(@SW_SHOW, $GUI2) ; On affiche la GUI 2

        Case $Chb1 ; Si clic sur le contrôle $Chb1 (CheckBox)
            MsgBox(64, 'Info', 'Vous avez cliqué sur la CheckBox') ; Message

        Case $Btn2 ; Si clic sur le bouton $Btn2
            GUISetState(@SW_HIDE, $GUI2) ; On masque la GUI 2
            GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI 1

        Case $Rd1 ; Si clic sur le contrôle $Rd1 (RadioBox)
            MsgBox(64, 'Info', 'Vous avez cliqué sur la RadioBox') ; Message

    EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie

Si on rajoute a ce code l'udf
#include <udf_log.au3>
Le soft ne fonctionne plus du tout... plus aucun des radio ou checkbox et autre ne semble etre vu.
C'est fort dommage. Qqun a t'il une explication ? j'ai beau chercher, je ne vois pas...


source :
https://openclassrooms.com/courses/la-p ... enements-3
FF2Damien
Niveau 1
Niveau 1
Messages : 14
Enregistré le : jeu. 17 mars 2016 15:24
Status : Hors ligne

Re: [UDF] Log Viewer Gui

#11

Message par FF2Damien »

up !
hello all,
qqun sait pourquoi on ne peu pas faire fonctionner les 2 GUI ensemble ?
Répondre