ZMWS - Forum

Vous n'êtes pas connecté.

#1 31/08/2006 15:07:15

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

ZLAM : avancement

Hello,

Suite de ce sujet

Faisant suite au topics, ci-dessous seront posté les derniers codes, les derniers tests etc. régis de la manière suivante :

1. les sources seront toujours dans le TOUT premier post (édité en permanance),
2. les EDIT seront marqué du jour, du mois, de l'année et de l'heure de l'édit,
3. les tests seront toujours postés dans des posts différents (l'un à la suite de l'autre),
4. les bugs et problèmes seront toujours postés dans le TOUT premier post (règle similaire aux sources),
5. les suggestions seront postés identiquement qu'au point 3.

Voici donc les sources :

1. ZLAM_V0XYYALPHA.AU3 :

Code:

#cs
    Nom du script :         non_determine => ZLAM
    Version du script :     v0.3.247.alpha
    Auteur :                Pilgrim, Fabrice, Groumphy
    Licence :                 GNU GPL v2 
                            (Consultation : voir interface du script ou une recherche sur Google :oO )
    Rôle du script :         lancer ZazouMiniWebServer,     
                            fermer ZazouMiniWebServer,     
                            démarrer MySQL,                
                            arrêter MySQL,                
                            vérifier la présence de PHP     
                            vérifier l'état de LocalHost, (à combiner avec le lancement de ZazouMiniWebServer)
                            vérifier la non disponibilité de LocalHost, (à combienr avec l'arret de ZazouMiniWebServer)
    Historique :             v0.3.2xx.alpha        simplification du "scheme numbering"
                                                extériorisation des fonctions (Good idea of Pilgrim, good job of Fabrice :o} )
                                                création de l'interface Licence
                                                extériorisation des fichiers licences
                                                structure conditionnelle pour la GUI Licence (test)
                                                événement de la GUI Licence
                                                insertion de ZazouMiniWebServer.exe dans le répertoire
                                                test de lancement ZazouMiniWebServer via contrôle (test OK)
                                                test de lancement ZazouMiniWebServer et arret (test OK)
                                                test de compilation (test OK)
                                                implémentation d'un système d'erreur dans les structures conditionnelles
                                                modification de l'initialisation des contrôles (Démarrage ZMWS)
                                                correction des infobulles
                                                implémentation des actions de bouton et status des serveurs
                                                conception du délai d'attente
                                                implémentation des actions de bouton et status MySQL 
                                                implémentation de la licence
                                                implémentation de la fonction PHP (vérifie la présence du dossier PHP / PHP5)
                                                modification de la fonction PHP (indique la version pour PHP5)
                                                mise en place de l'icone ZMWS (@Scriptdir & "\_web.zmwsc\css\images\icones")
                                                correction de la GUI principale
                                                modification de la structure des fichiers licences (nom des variables !)
                            v0.2.2xx.alpha        implémentation de zmws_get_ips
                                                implémentation de zmws_get_version
                                                modification GUI A Propos
                                                correction de la fonction Menu > Quitter
                                                intégration des fonctions DLL
                                                    ZMWS_Start
                                                    ZMWS_Stop
                                                    ZMWS_Restart
                                                mise en commentaire des GUI ( only for Fabrice :oO Gniark who 
                                                    don't know this basic functions ! Not Good Fab ;-} )
                                                correction des ToolTips
                                                "Cleaning code"
                                                intégration des licences
                            v0.1.2xx.alpha        construction GUI principale
                                                fonction primaire GUI principale
                                                fonction primaire ZMWS
                                                fonction primaire MySQL
                                                construction de région de compilation
                                                intégration des fonctions extérieures (Cf. script Fabrice)
                                                correction des erreurs de variables
                                                correction des erreurs d'intégration
                                                construction de la GUI A Propos
                                                intégration de la GUI A Propos
                                                correction des événements d'interface
                                                Duplication des événements du menu
                            v0.1.200.alpha         version initiale
    Bugs à corriger :     v0.3.2xx.alpha        Fn. _Licence -> affiche mauvais encodage dans l'INPUT
    Bugs fixé :         v0.3.2xx.alpha        Fermeture de la GUI A Propos ne redonne pas le focus à ZLAM
                        v0.2.2xx.alpha        vérification de la structure de mise en forme des GUI et Ctrl via 
                                            GUICtrlSetFont et GUISetFont
                                            Cf. http://www.autoitscript.com/forum/index.php
                                                ?s=&showtopic=21899&view=findpost&p=228919 --> En attente
                        v0.2.2xx.alpha         problème d'impression via _FilePrint
                        v0.1.2xx.alpha         problème de lancement Démarrage ZMWS (ssMn_DemarrageZMWS) -> Variable de capture non initalisée
                        v0.1.2xx.alpha        $u_LocalIp = zmws_get_ips retourne rien !
    Information :     Début de l'interface complète de "la télécommande ZMWS". Lorsque le bouton "Minimaliser" ou le menu 
                    "Minimaliser" sera actif, il y aura minimalisation dans le SysTray et l'exécution du clic de contrôle 
                    avec le bouton droit de la souris sera opérationnel. A défaut, il ne se passe rien !
    To do (version alpha) : 
                    - sélection de la DLL ou de l'EXE
                    x v0.3 x extériorisation des différentes fonctions (thanks to Fabrice & Pilgrim) 
                    - structure conditionnelle de démarrage du serveur et activation des boutons MySQL
                    - extériorisation linguistique (fichier INI ? fichier Lang ?)
                    - mettre un Sleep pour l'arret du serveur
                    - essayer de trouver le paramètre pour masquer la console lorsque l'on lance l'exécutable 
                    - lien vers licence uniquement actif si fichier présent ! A défaut, redirigé vers le web... (Thanks, to Fabrice)
    To do (version beta 1) : 
                    - mettre les adresses Web, les applications, les noms d'applications en variables (facilité de maintenance)
                    - vérifier la présence de PHP (répertoire + exécutable) [ Process ?? ]
                    - permettre le redémarrage ( ZMWS_Stop et ZMWS_Start )
                    - extériorisation des paramètres en INI
                    - extériorisation de la gestion de la langue
    To do (version beta 2)
                    - intégration du SysTrayMenu ( Cf. travail de Pilgrim et Fabrice )
                    - correction du code ( mode standard pour Fn. autre que Au3 ) [ Correction Var. + Fn ]
#ce
#Region Compiler directives section                  ; Début des régions de compilation
#Compiler_Prompt=n                                  ; Affichage des paramètres de compilation        
#Compiler_Icon=icone.ico                          ; Icône pour l'EXE
#Compiler_Compression=2                           ; Paramètres de compression (0 -> 4) 0 = léger, 2 = normal,  4 = maximum
#Compiler_Allow_Decompile=y                       ; Autorisation de décompilation
#Compiler_PassPhrase=                             ; Mot de passe de décompilation
#Compiler_UseUpx=y                                ; Utiliser un programme externe de compression 
                                                  ; ( v3.1.x.y > 3.1.1.110++ ), Yes = défaut
#Compiler_Res_Comment=Contrôleur de ZazouMiniWebServer !        ; Commentaire de l'exécutable
#Compiler_Res_Description=Télécommande ZazouMiniWebServer        ; Description de l'exécutable
#Compiler_Res_Fileversion=0.3.247.200609041737                     ;version du fichier !! 
                                                                ; Attention respecter impérativement le schèma de numérotation
#Compiler_Res_LegalCopyright=ZMWS (GNU GPL v2)                    ; Licence de l'exécutable
#Compiler_Res_Field=Auteurs|Groumphy                            ; Auteurs de ZLAM
#Compiler_Res_Field=E-mail|zmws_dev_team dot gmail.com            ; E-mail de contact, à adapter avec les autres mails
                                                                ; Voir pour créer une adresse mail type zmws_dev_team@gmail.com
                                                                ; et la mettre en commun !
#Compiler_Res_Field=Version AutoIt|%AutoItVer%                    ; Version AutoIt utilisée
#Compiler_Res_Field=Date de compilation|%date% %time%            ; Date de compilation
#compiler_res_field=Type de distribution|version Alpha 1 (ne pas distribuer) ; Type de distribution
#compiler_res_field=Participation|Fabrice & Pilgrim, merci à vous deux ! ; Petit champs pour mes deux scripteurs préférés !
#Compiler_Run_AU3Check=y                          ; Exécuter une vérification de compilation, Yes = défaut
#Compiler_AU3Check_Stop_OnWarning=N               ; Continuer uniquement s'il y a des avertissements, Yes = défaut
;#Compiler_Run_Before=                              ; Exécuter avant compilation -> Voir si on en a besoin
;#Compiler_Run_After=                              ; Exécuter après compilation -> Voir si on en a besoin
#EndRegion                                          ; Début des régions de compilation

;     Nom de la fonction :         
;     Rôle :                         Affichage d'un interface pour les différentes options de ZazouMiniWebServer
;     Dépendance :                 GUIConstants.au3
;     Auteur :                     Groumphy
;     Modification :                 
;     Version :                     voir script général
;     Information importante :     
; Début des déclarations des variables non spécifiées en constantes
Dim $u_LocalIp, $u_StatusZmws, $u_StatusMysql, $u_PortHTTP, $u_PortHTTPS, $u_StatusPHP, $u_StatusPortHTTP
Dim $u_StatusPortHTTPS, $s_ZMWSVersion, $s_FlagLicence, $s_GPLSurWeb, $s_OpenSSLSurWeb
; Fin des déclaration des variables non spécifiées en constates
; Début des variables spécifiées en constantes
Global Const $s_ZMWSExe = "ZazouMiniWebServer.exe"                ; Exe principal (ZMWS Core)
Global Const $s_ZMWSDll = "ZazouMiniWebServer.dll"                ; DLL principale de ZMWS
Global Const $s_ZMWSSite = "http://www.zmws.com"                ; Site de ZMWS
Global Const $s_ZMWSForum = $s_ZMWSSite & "/forum"                ; Forum de ZMWS
Global Const $s_ZMWSDon = "http://www.zmws.com/donate"            ; Faire un don pour ZMWS
Global Const $s_LicenceZMWS = ""                                ; !!! Concernant les licences, ne serait-il pas mieux 
                                                                ; de les inclures en .TXT
Global Const $s_LicencePHP = ""                                    ; Dans le package de téléchargement et de faire un 
                                                                ; Input avec ProgressBar
Global Const $s_LicenceMySQL = ""                                ; lorsque un lien est sélectionné et lit donc le fichier 
                                                                ; TXT dans l'Input ??
Global Const $s_LicenceOpenSSL = ""                                ; A suivre, cela éviterais donc à chaque fois une 
                                                                ; connexion sur le net, un lien vers la licence sur le net
                                                                ; peut être inclus par la suite.
Global Const $s_VersionZLAM = FileGetVersion(@ScriptFullPath)    ; Version de ZLAM !
Global Const $s_DllOpen = DllOpen($s_ZMWSDll)                    ; Ouverture de la DLL principale
Global Const $s_FichierLicenceGPL = "LICENSE"        ; Fichier licence GPL v2
Global Const $s_FichierLicenceOpenSSL = "LICENSE_openssl"    ; Fichier licence OpenSSL

; Fin des variables spécifiées en constantes
; Initialisation des variables non spécifiées en constantes, à mettre à jour avec GUICtrlSetData(Controle,Data)
$u_StatusZmws = "inconnu"                                        ; A mettre à jour avec les processus et détection de LocalHost
                                                                ; => Quels sont les processus ? 
                                                                ; + Activation du bouton MySQL 
                                                                ; + Déclanchement sur bouton -> Vérification
$u_StatusMysql = "inconnu"                                        ; A mettre à jour avec les processus
$u_PortHTTP = "0000"                                            ; Port HTTP
$u_PortHTTPS = "0000"                                            ; Port HTTPS
$u_StatusPHP = "inconnu"                                        ; A mettre à jour avec la détection du dossier PHP ou PHP et 
$u_StatusPortHTTP = "inconnu"                                    ; Status du port HTTP
$u_StatusPortHTTPS = "inconnu"                                    ; Status du port HTTPS
$s_ZMWSVersion = FileGetVersion($s_ZMWSExe)                        ; Version de ZMWS via EXE !! Voir pour le schème numbering
$u_LocalIp = @IPAddress1                                        ; IP via ZMWS
                                                                ; Ne pas passer en constante car si il y a redémarrage de ZMWS, 
                                                                ; il peut y avoir changement IP 
                                                                ; -> Refresh à prévoir ( GUICtrlSetData )
$s_OpenSSLSurWeb = "http://www.openssl.org/source/license.html" ; Fichier licence OpenSSL sur le Web
                                                                ; Voir pour l'intégrer dans le domaine ZMWS ??
                                                                ; A suivre...
$s_GPLSurWeb = "http://www.gnu.org/copyleft/gpl.html"            ; Fichier licence GPL v2
                                                                ; Voir pour l'intégrer dans le domaine ZMWS ??
                                                                ; A suivre...
; Début des inclusions et constantes extérieures
#include <GUIConstants.au3>                ; Inclusions des constantes pour les GUI
#include "zlam_include_v02xxAlpha.au3"    ; Inclusions des fonctions
#Region ### START Koda GUI section ### Form=gui_zlam.kxf        ; Début de la création d'interface utilisateur, spécification Koda
GUISetIcon(@ScriptDir & "\_web.zmwsc\css\images\icones\favicon.ico")
$gui_zlam = GUICreate(" ZLAM", 315, 350, -1, -1)                ; Création de la GUI
    GUISetCursor (2)                                            ; Définition du curseur de la GUI
    GUISetFont(9, 400, 0, "Arial")                                ; Définition de la police de la GUI
$gp_zmwsStatus = GUICtrlCreateGroup(" ZazouMiniWebServer Status ", 10, 6, 290, 145)        ; Création du groupe 
$lbl_StatusZMWS = GUICtrlCreateLabel("Status ZMWS : ", 20, 26, 86, 19)                    ; Etiquette (label)
$lbl_StatusMysql = GUICtrlCreateLabel("Status MYSQL : ", 20, 51, 91, 19)                ; Etiquette (label)
$lbl_LocalIP = GUICtrlCreateLabel("Local IP : ", 20, 76, 57, 19)                        ; Etiquette (label)
$lbl_PortUtiliseHTTP = GUICtrlCreateLabel("Port utilisé HTTP : ", 20, 101, 105, 19)        ; Etiquette (label)
$lbl_StatusPortHTTP = GUICtrlCreateLabel("Status :", 180, 101, 45, 19)                    ; Etiquette (label)
$lbl_PortUtiliseHTTPS = GUICtrlCreateLabel("Port utilisé HTTPS : ", 20, 126, 113, 19)    ; Etiquette (label)
$lbl_StatusPortHTTPS = GUICtrlCreateLabel("Status :", 180, 126, 45, 19)                    ; Etiquette (label)
$lbl_StatusPHP = GUICtrlCreateLabel("PHP :", 180, 76, 35, 19)                            ; Etiquette (label)
$lbl_StatusZMWS2 = GUICtrlCreateLabel($u_StatusZmws, 115, 25, 80, 19)        ; Etiquette (label) contenant le status de ZMWS (variable)
    GUICtrlSetColor($lbl_StatusZMWS2, 0xFF0000)                                ; Mise en forme du label => Couleur rouge (RGB)
                                                                            ; Initialement rouge => Adapter dès que Status OK
                                                                            ; sur le vert ! (GUICtrlSetColor) sur événement
$lbl_StatusMysql2 = GUICtrlCreateLabel($u_StatusMysql, 115, 50, 80, 19)        ; Etiquette (label) contenant le status de MySQL (variable)
    GUICtrlSetColor($lbl_StatusMysql2, 0xFF0000)                            ; Mise en forme du label => Couleur rouge (RGB)
                                                                            ; Initialement rouge => Adapter dès que Status OK
                                                                            ; sur le vert ! (GUICtrlSetColor) sur événement
$lbl_LocalIP2 = GUICtrlCreateLabel($u_LocalIp, 80, 75, 75, 19)                ; Etiquette (label) contenant l'adresse IP (variable)
    If $u_LocalIp = '' Or $u_LocalIp = '0.0.0.0' Then
        GUICtrlSetColor($lbl_LocalIP2, 0xFF0000)                            ; Mise en forme du label 
                                                                            ; => Couleur rouge (RGB) car pas d'IP
    Else
        GUICtrlSetColor($lbl_LocalIP2, 0x008000)                            ; Mise en forme verte (IP OK)
    EndIf    
$lbl_PortUtiliseHTTP2 = GUICtrlCreateLabel($u_PortHTTP, 135, 100, 32, 19)    ; Etiquette (label) contenant le port HTTP (variable)
$lbl_PortUtiliseHTTPS2 = GUICtrlCreateLabel($u_PortHTTPS, 135, 125, 32, 19)    ; Etiquette (label) contenant le port HTTPS (variable)
$lbl_StatusPHP2 = GUICtrlCreateLabel($u_StatusPHP, 240, 76, 49, 19)            ; Etiquette (label) contenant le status PHP (variable)
    GUICtrlSetColor($lbl_StatusPHP2, 0xFF0000)                                ; Mise en forme du label => Couleur rouge (RGB)
                                                                            ; Initialement rouge => Adapter dès que Status OK
                                                                            ; sur le vert ! (GUICtrlSetColor) sur événement
$lbl_StatusPortHTTP2 = GUICtrlCreateLabel($u_StatusPortHTTP, 240, 100, 49, 19)    ; Etiquettes (label) contenant le status du port HTTP (variable)
    GUICtrlSetColor($lbl_StatusPortHTTP2, 0xFF0000)                                ; Mise en forme du label => Couleur rouge (RGB)
                                                                                ; Initialement rouge => Adapter dès que Status OK
                                                                                ; sur le vert ! (GUICtrlSetColor) sur événement
$lbl_StatusPortHTTPS2 = GUICtrlCreateLabel($u_StatusPortHTTPS, 241, 125, 49, 19); Etiquettes (label) contenant le status du port HTTPS (variable)
    GUICtrlSetColor($lbl_StatusPortHTTPS2, 0xFF0000)                        ; Mise en forme du label => Couleur rouge (RGB)            
                                                                            ; Initialement rouge => Adapter dès que Status OK
                                                                            ; sur le vert ! (GUICtrlSetColor) sur événement
    GUICtrlCreateGroup("", -99, -99, 1, 1)                                    ; Fin du groupe ZMWS Status
$gp_zmwsControle = GUICtrlCreateGroup(" ZazouMiniWebServer Contrôle ", 10, 165, 290, 113)    ; Groupe (contrôle)
$btn_DemarrerZmws = GUICtrlCreateButton("Démarrer &ZMWS", 30, 195, 120, 30, 0)                ; Bouton démarrer ZMWS
    GUICtrlSetTip($btn_DemarrerZmws, "Démarrer le serveur ZazouMiniWebServer")                ; Définition de l'infobulle du bouton
    GUICtrlSetCursor ($btn_DemarrerZmws, 0)                                                    ; Définition du curseur du bouton
$btn_DemarrerMysql = GUICtrlCreateButton("Démarrer M&YSQL", 30, 235, 120, 30, 0)            ; Bouton démarrer MySQL
    GUICtrlSetState($btn_DemarrerMysql, $GUI_DISABLE)                                        ; Désactivation du bouton
                                                                                            ; ne peut être activé que si on pousse
                                                                                            ; sur ZMWS Start (to do !)
    GUICtrlSetTip($btn_DemarrerMysql, "Démarrer la base de données MySQL")                    ; Infobulle du bouton
    GUICtrlSetCursor ($btn_DemarrerMysql, 0)                                                ; Curseur du bouton
$btn_ArreterZmws = GUICtrlCreateButton("Arrêter ZM&WS", 160, 195, 120, 30, 0)                ; Bouton arrêter ZMWS
    GUICtrlSetState($btn_ArreterZmws, $GUI_DISABLE)                                            ; Désactivation du bouton
    GUICtrlSetTip($btn_ArreterZmws, "Arrêter le serveur ZazouMiniWebServer")                ; Infobulle du bouton
    GUICtrlSetCursor ($btn_ArreterZmws, 0)                                                    ; Curseur du bouton
$btn_ArreterMysql = GUICtrlCreateButton("Arrêter MYS&QL", 160, 235, 120, 30, 0)                ; Bouton Arret de MySQL
    GUICtrlSetState($btn_ArreterMysql, $GUI_DISABLE)                                        ; Désactivation du bouton
                                                                                            ; ne sera activé que si MySQL est démarré
    GUICtrlSetTip($btn_ArreterMysql, "Arrêter la base de données MySQL")                    ; Infobulle du bouton 
    GUICtrlSetCursor ($btn_ArreterMysql, 0)                                                    ; Curseur du bouton
GUICtrlCreateGroup("", -99, -99, 1, 1)                                                        ; Fin du groupe pour les contrôles
$btn_Minimaliser = GUICtrlCreateButton("&Minimaliser", 160, 290, 120, 30, 0)                ; Création du bouton Minimaliser
                                                                                            ; l'action masquera la GUI et le 
                                                                                            ; Systray prendra le contrôle
    GUICtrlSetCursor ($btn_Minimaliser, 0)                                                    ; Curseur du bouton
    GUICtrlSetState($btn_Minimaliser, $GUI_DISABLE)
$btn_Apropos = GUICtrlCreateButton("A &propos", 30, 290, 120, 30, 0)                        ; Bouton A Propos
                                                                                            ; Fais apparaitre la GUI A Propos
    GUICtrlSetCursor ($btn_Apropos, 4)                                                        ; Curseur du bouton
$mn_Fichier = GUICtrlCreateMenu("&Fichier")                                                    ; Création du menu Fichier
$ssMn_Minimaliser = GUICtrlCreateMenuItem("&Minimaliser", $mn_Fichier)                        ; Création du menu Fichier > Minimaliser
    GUICtrlSetState($ssMn_Minimaliser, $GUI_DISABLE)
$ssMn_Quitter = GUICtrlCreateMenuItem("&Quitter", $mn_Fichier)                                ; Création du menu Fichier > Quitter
$mn_Controle = GUICtrlCreateMenu("Con&trôle")                                                ; Création du menu Contrôles
$ssMn_DemarrerZMWS = GUICtrlCreateMenuItem("Dé&marrer ZMWS", $mn_Controle)                    ; Création du menu Controles > Démarrer ZMWS
$ssMn_ArreterZMWS = GUICtrlCreateMenuItem("A&rrêter ZMWS", $mn_Controle)                    ; Création du menu Contrôles > Arrêter ZMWS
    GUICtrlSetState($ssMn_ArreterZMWS, $GUI_DISABLE)                                        ; Désactivation du menu, actif uniquement
                                                                                            ; si ZMWS est démarré !
$ssMn_DemarrerMysql = GUICtrlCreateMenuItem("Démarr&er MySQL", $mn_Controle)                ; Création du menu Contrôles > Démarrer MySQL
    GUICtrlSetState($ssMn_DemarrerMysql, $GUI_DISABLE)                                        ; Désactivation du menu, ne peut être activé
                                                                                            ; que si ZMWS est actif
$ssMn_ArreterMysql = GUICtrlCreateMenuItem("Arrêter My&SQL", $mn_Controle)                    ; Création du menu Contrôles > Arrêter MySQL
    GUICtrlSetState($ssMn_ArreterMysql, $GUI_DISABLE)                                        ; Désactivation du menu, ne peut être activé
                                                                                            ; que si MySQL et ZMWS sont démarré
$mn_Apropos = GUICtrlCreateMenu("&A Propos")                                                ; Création du menu A Propos
$ssMn_Apropos = GUICtrlCreateMenuItem("A &Propos", $mn_Apropos)                                ; Création du menu A Propos > A Propos
$ssMn_ZMWSCom = GUICtrlCreateMenuItem("Visiter ZMWS.com", $mn_Apropos)                        ; Création du menu A Propos > Visiter ZMWS.com
$ssMn_FaireDon = GUICtrlCreateMenuItem("Faire un don", $mn_Apropos)                            ; Création du menu A Propos > Faire un don
$ssMn_ForumZMWS = GUICtrlCreateMenuItem("Forum ZMWS", $mn_Apropos)                            ; Création du menu A Propos > Forum ZMWS
#EndRegion ### END Koda GUI section ###                                                        ; Fin de la zone Koda

#Region ### START Koda GUI section ### Form=gui_aproposzlam.kxf                                ; Début de la zone Koda
$gui_APropos = GUICreate("ZLAM : à propos", 333, 240, 358, 117, BitOr($WS_CAPTION, $WS_SYSMENU), -1, $gui_zlam)    ; Création de la GUI
                                                                                                                ; A Propos, contenue
                                                                                                                ; dans la principale
    GUISetCursor (2)                                                                        ; Définition du curseur
    GUISetFont(9, 400, 0, "Arial")                                                            ; Définition de la police
$gp_APropos = GUICtrlCreateGroup(" A propos de ZLAM & ZMWS : ", 10, 10, 313, 185)            ; Création du groupe principal
$lbl_AuteurZMWS = GUICtrlCreateLabel("Auteur de ZMWS : ", 20, 30, 165, 17)                    ; Etiquette (label)
$lbl_AuteurZLAM = GUICtrlCreateLabel("Conception de ZLAM : ", 20, 50, 120, 17)                ; Etiquette (label)
$gp_EnLigne = GUICtrlCreateGroup(" En ligne : ", 205, 100, 105, 90)                            ; Etiquette (label)
$lbl_VisiterForum = GUICtrlCreateLabel("Visiter le forum", 215, 120, 70, 17)                ; Etiquette (label)
    GUICtrlSetFont($lbl_VisiterForum, 8, 400, 4, "MS Sans Serif")                            ; Définition de la police
    GUICtrlSetColor($lbl_VisiterForum, 0x0000FF)                                            ; Défintion de la couleur
    GUICtrlSetTip($lbl_VisiterForum, "Visiter le forum ZazouMiniWebServer")                    ; Définition de l'infobulle
    GUICtrlSetCursor ($lbl_VisiterForum, 0)                                                    ; Curseur du label
                                                                                            ; ==> Sert à imiter une URL
$lbl_VisiterSite = GUICtrlCreateLabel("Visiter le site", 215, 140, 70, 17)                    ; Etiquette (label)
    GUICtrlSetFont($lbl_VisiterSite, 8, 400, 4, "MS Sans Serif")                            ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_VisiterSite, 0x0000FF)                                                ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_VisiterSite, "Visiter le site ZMWS.COM")
    GUICtrlSetCursor ($lbl_VisiterSite, 0)
$lbl_FaireDon = GUICtrlCreateLabel("Faire un don", 215, 160, 70, 17)
    GUICtrlSetFont($lbl_FaireDon, 8, 400, 4, "MS Sans Serif")                                ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_FaireDon, 0x0000FF)                                                ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_FaireDon, "Faire un don à l'auteur de ZazouMiniWebServer")
    GUICtrlSetCursor ($lbl_FaireDon, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)                                                        ; Fin du groupe 'en ligne'
$lbl_VersionZMWS = GUICtrlCreateLabel("Version de ZMWS : ", 20, 70, 169, 17)                ; Etiquette (label)
$lbl_VersionZMWS2 = GUICtrlCreateLabel($s_ZMWSVersion, 180, 70, 100, 17)                    ; Etiquette (label)
$lbl_Licence = GUICtrlCreateLabel("Licence : ", 20, 88, 51, 17)                                ; Etiquette (label)
$lbl_LicenceZMWSViews = GUICtrlCreateLabel("Licence ZMWS", 45, 108, 148, 17)                ; Etiquette (label)
    GUICtrlSetFont($lbl_LicenceZMWSViews, 8, 400, 4, "MS Sans Serif")                        ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_LicenceZMWSViews, 0x0000FF)                                        ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_LicenceZMWSViews, "Voir la licence de développement de ZazouMiniWebServer (GPL)")
    GUICtrlSetCursor ($lbl_LicenceZMWSViews, 0)
$lbl_LicencePHP = GUICtrlCreateLabel("Licence PHP", 45, 128, 67, 17)
    GUICtrlSetFont($lbl_LicencePHP, 8, 400, 4, "MS Sans Serif")                                ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_LicencePHP, 0x0000FF)                                                ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_LicencePHP, "Voir la licence de développement de PHP (GPL)")
    GUICtrlSetCursor ($lbl_LicencePHP, 0)
$lbl_licenceMysql = GUICtrlCreateLabel("Licence MySQL", 45, 150, 80, 17)
    GUICtrlSetFont($lbl_licenceMysql, 8, 400, 4, "MS Sans Serif")                            ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_licenceMysql, 0x0000FF)                                            ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_licenceMysql, "Voir la licence de développement de MySQL (GPL)")
    GUICtrlSetCursor ($lbl_licenceMysql, 0)
$lbl_licenceOpenssl = GUICtrlCreateLabel("Licence OpenSSL", 45, 170, 91, 17)
    GUICtrlSetFont($lbl_licenceOpenssl, 8, 400, 4, "MS Sans Serif")                            ; Mise en forme identique que le label
    GUICtrlSetColor($lbl_licenceOpenssl, 0x0000FF)                                            ; précédent --> Sert à imiter une URL
    GUICtrlSetTip($lbl_licenceOpenssl, "Voir la licence de développement de OpenSSL (GPL)")
    GUICtrlSetCursor ($lbl_licenceOpenssl, 0)
$Label1 = GUICtrlCreateLabel("Xavier Garreau", 180, 30, 100, 17)                            ; Etiquette (label)
GUICtrlCreateGroup("", -99, -99, 1, 1)                                                        ; Fin du groupe principal
$btn_GUIAboutFermer = GUICtrlCreateButton("&Fermer", 220, 200, 100, 30, 0)                    ; Bouton Fermer
    GUICtrlSetCursor ($btn_GUIAboutFermer, 0)                                                ; Définition du curseur
$lbl_VersionZLAM = GUICtrlCreateLabel("Version ZLAM : ", 10, 200, 85, 17)                    ; Etiquette (label)
    GUICtrlSetColor($lbl_VersionZLAM, 0x808080)                                                ; Définition de la couleur
$lbl_VersionZLAMNum = GUICtrlCreateLabel($s_VersionZLAM, 100, 200, 105, 17)                    ; Définition de la version (Etiquette)
                                                                                            ; avec la variable de la version
    GUICtrlSetColor($lbl_VersionZLAMNum , 0x808080)                                            ; Définition de la couleur
#EndRegion ### END Koda GUI section ###                                                        ; Fin de la zone Koda

#Region ### START Koda GUI section ### Form=gui_licence.kxf                                ; Début de la région Koda
$gui_Licence = GUICreate(" Licence des composants de ZMWS", 393, 444, 321, 126, BitOr($WS_CAPTION, $WS_SYSMENU), -1, $gui_zlam)    ; Création de la GUI Licence
    GUISetFont(9, 400, 0, "Arial")                                                        ; Définition de la police 
    GUISetCursor (2)                                                                    ; Définition du curseur
$gp_Licence = GUICtrlCreateGroup(" Licence du composant : ", 10, 10, 370, 385)            ; Groupe pour la licence
    ; _InsertTxtFileToLabel($iFilename, $iLeft, $iTop, $iHeight, $iWidth)                ; Génération dynamique du Label 
    ; Préétablir la variable du fichier licence                                            ; avec la licence sélectionnée par variable
    ;_InsertTxtFileToLabel($s_FlagLicence, 10, 10, 365, 350)
    Dim $s_LicenceLue
    $s_LicenceDansGUI = GUICtrlCreateInput($s_LicenceLue, 20, 30, 350, 355, $ES_AUTOVSCROLL, -1)
GUICtrlCreateGroup("", -99, -99, 1, 1)                                                    ; Fin du Groupe Licence
$btn_FermerLicence = GUICtrlCreateButton("&Fermer", 265, 405, 113, 30, 0)                ; Bouton Fermer la fenêtre licence
$lbl_LireSurWeb = GUICtrlCreateLabel("Lire sur le Web", 10, 410, 75, 17)                ; Etiquette (label)
    GUICtrlSetFont($lbl_LireSurWeb, 8, 400, 4, "MS Sans Serif")                            ; Définition de la police,
    GUICtrlSetColor($lbl_LireSurWeb, 0x0000FF)                                            ; Définition de la couleur
    GUICtrlSetTip($lbl_LireSurWeb, "Lire la version en ligne de la licence")            ; Infobulle
    GUICtrlSetCursor ($lbl_LireSurWeb, 0)                                                ; Définition du curseur
                                                                                        ; => Imite une URL
$lbl_ImprimerLicence = GUICtrlCreateLabel("Imprimer", 110, 410, 43, 17)                    ; Etiquette (label)
    GUICtrlSetFont($lbl_ImprimerLicence, 8, 400, 4, "MS Sans Serif")                    ; => Même mise en forme que précédement
    GUICtrlSetColor($lbl_ImprimerLicence, 0x0000FF)                                        ; Imite une URL
    GUICtrlSetCursor ($lbl_ImprimerLicence, 0)
#EndRegion ### END Koda GUI section ###                                                    ; Fin de la région Koda



_PHP()

GUISetState(@SW_SHOW, $gui_zlam)                                                            ; Affichage de la GUI principale
    WinActivate(" ZLAM")                                                                    ; ACtivation de la GUI principale    
While 1
    $s_GetMsg = GUIGetMsg(1)                                                                ; GUIGetMsg en mode étendu afin de pouvoir faire un "switching"
                                                                                            ; dans les différents événement des GUI Principale et A Propos
    If $s_GetMsg[1] = $gui_zlam Then                                                        ; Focus sur la GUI principale
        Select                                                                                ; Début de la structure sur le focus GUI principale
            Case $s_GetMsg[0] = $GUI_EVENT_CLOSE Or $s_GetMsg[0] = $ssMn_Quitter            ; Fermeture de la GUI 
                ;_MySQLStop()                                                                ; A détecter si processus existant
                ;_ZazouStop()                                                                ; A détecter si processus existant
                GUISetState(@SW_DISABLE, $gui_zlam)
                _Attendre(1000, "Procédure en cours, " & @CR & "veuillez patienter")
                ExitLoop                                                                    ; Sortie de la boucle d'affichage
            Case $s_GetMsg[0] = $btn_DemarrerZmws Or $s_GetMsg[0] = $ssMn_DemarrerZMWS        ; Démarrage de ZMWS
                _ZazouStart()                                                                ; Démarrage du serveur
                _Attendre(2000, "Démarrage du serveur, " & @CR & _
                                "Veuillez patienter")                                        ; Attente de lancement
                If ProcessExists($s_ZMWSExe) Then                                            ; Structure conditionnelle sur
                                                                                            ; l'existance du processus, 
                                                                                            ; Attention ici le processus à le 
                                                                                            ; même nom que l'EXE => Variable !
                    $u_StatusZmws = "Démarré"                                                ; Changement de la valeur du status
                    GUICtrlSetData($lbl_StatusZMWS2, $u_StatusZmws)                            ; Indique le Status démarré au label
                        GUICtrlSetColor($lbl_StatusZMWS2, 0x008000)                            ; Couleur verte
                    GUICtrlSetState($btn_ArreterZmws, $GUI_ENABLE)                            ; Activation du bouton Arrêter ZMWS
                    GUICtrlSetState($ssMn_ArreterZMWS, $GUI_ENABLE)                            ; Activation du menu Arrêter ZMWS
                    GUICtrlSetState($btn_DemarrerMysql, $GUI_ENABLE)                        ; Activation du bouton Démarrer MySQL
                    GUICtrlSetState($ssMn_DemarrerMysql, $GUI_ENABLE)                        ; Activation du menu Démarrer MySQL
                EndIf
            Case $s_GetMsg[0] = $btn_DemarrerMysql Or $s_GetMsg = $ssMn_DemarrerMysql        ; Bouton Démarrer MySQL
                #cs
                    a) _MySQLStart
                    b) détection des processus -> Mais lesquels ?
                        -> Changement du status du bouton Arrêter MySQL, rendre actif,
                        -> Changement du status du menu Arrêter MySQL, rendre actif, 
                        -> Changer le label de Status de MySQL, valeur : Démarré !
                
                #ce
                
                _MySQLStart()                                                            ; Démarrage de MySQL
                _Attendre(2000, "Lancement MySQL, " & @CR & "Veuillez patienter")
                $u_StatusMySQL = "Démarré"
                GUICtrlSetState($btn_ArreterMysql, $GUI_ENABLE)
                GUICtrlSetState($ssMn_ArreterMysql, $GUI_ENABLE)
                GUICtrlSetData($lbl_StatusMysql2, $u_StatusMySQL)
                    GUICtrlSetColor($lbl_StatusMysql2, 0x008000)
                    
            Case $s_GetMsg[0] = $btn_ArreterZmws Or $s_GetMsg[0] = $ssMn_ArreterZMWS        ; Arreter ZMWS
                If $u_StatusMysql <> "Démarré" Then                                        ; Détection du flag de démarrage
                                                                                        ; de MySQL. Utilisation du 
                                                                                        ; théorème de De Morgant
                                                                                        ; Ici status non démarré
                        GUICtrlSetState($btn_DemarrerMysql, $GUI_DISABLE)                ; Désactivation du bouton Démarrer MySQL
                        GUICtrlSetState($ssMn_DemarrerMysql, $GUI_DISABLE)                ; Désactivation du Menu Démarrer MySQL
                                                                                        ; !! Pas de changement d'état de 
                                                                                        ; $s_StatusMySQL ! = <> Demarré
                        _ZazouStop()                                                    ; Arret du serveur ZMWS
                            _Attendre(2000, "Arrêt du serveur" & @CR & _
                                        "Veuillez patienter")                            ; Délai d'attente
                            GUICtrlSetState($btn_ArreterZMWS, $GUI_DISABLE)                ; Désactivation du bouton Arrêter ZMWS
                            GUICtrlSetState($ssMn_ArreterZMWS, $GUI_DISABLE)            ; Désactivation du menu Arreter ZMWS
                        $s_StatusMySQL = "Arrêté"                                        ; Définition du flag status MySQL
                        GUICtrlSetData($lbl_StatusMysql2, $s_StatusMySQL)                ; Mise à jour du label de status MySQL
                            GUICtrlSetColor($lbl_StatusMysql2, 0x0000FF)                ; Couleur rouge
                        $u_StatusZmws = "Arrêté"                                        ; Définition du flag status ZMWS
                        GUICtrlSetData($lbl_StatusZMWS2, $u_StatusZmws)                    ; Mise à jour du label de status ZMWS
                            GUICtrlSetColor($lbl_StatusZMWS2, 0x0000FF)                    ; Couleur rouge
                Else
                                                                                        ; Ici status démarré
                        _MySQLStop()                                                    ; Arrêt de MySQL
                            _Attendre(2000, "Arrêt de la Data base, " & @CR & _
                                        "Veuillez patienter")                            ; Délai d'attente
                        GUICtrlSetState($btn_DemarrerMysql, $GUI_DISABLE)                ; Désactivation du bouton Démarrer MySQL
                        GUICtrlSetState($ssMn_DemarrerMysql, $GUI_DISABLE)                ; Désactivation du Menu Démarrer MySQL
                                                                                        ; Changement d'état de 
                                                                                        ; $s_StatusMySQL ! = <> Demarré
                        GUICtrlSetState($btn_ArreterMysql, $GUI_DISABLE)                    ; Désactivation du bouton arrêt de MySQL
                        GUICtrlSetState($ssMn_ArreterMysql, $GUI_DISABLE)                ; Désactivation du bouton Arret de MySQL
                        $u_StatusMySQL = "Arrêté"                                        ; Définition du flag status MySQL
                        GUICtrlSetData($lbl_StatusMysql2, $u_StatusMySQL)                ; Mise à jour du label de status MySQL
                            GUICtrlSetColor($lbl_StatusMysql2, 0x0000FF)                ; Couleur rouge                                    ; flag de status sur Arrêté
                        _ZazouStop()                                                    ; Arret du serveur ZMWS
                            _Attendre(2000, "Arrêt du serveur, " & @CR & _
                                        "Veuillez patienter")                            ; Délai d'attente
                            GUICtrlSetState($btn_ArreterZMWS, $GUI_DISABLE)                ; Désactivation du bouton Arrêter ZMWS
                            GUICtrlSetState($ssMn_ArreterZMWS, $GUI_DISABLE)            ; Désactivation du menu Arreter ZMWS
                        $u_StatusZmws = "Arrêté"                                        ; Définition du flag status ZMWS
                        GUICtrlSetData($lbl_StatusZMWS2, $u_StatusZmws)                    ; Mise à jour du label de status ZMWS
                            GUICtrlSetColor($lbl_StatusZMWS2, 0x0000FF)                    ; Couleur rouge                        
                EndIf            
            Case $s_GetMsg[0] = $btn_ArreterMysql Or $s_GetMsg[0] = $ssMn_ArreterMysql        ; Arreter MySQL
                #cs
                    a) arrêt de MySQL
                        -> Gestion d'erreur sur Flag ?? Non nécessaire
                    b) changement d'état de :
                        -> Flag Status, 
                        -> Etat Bouton,
                        -> Etat Menu,
                #ce
                _MySQLStop()                                                                    ; Arret de MySQL
                _Attendre(2000, "Arrêt de la Data base" & @CR & _
                                "Veuillez patienter")
                $u_StatusMySQL = "Arrêté"
                GUICtrlSetState($btn_ArreterMysql, $GUI_DISABLE)
                GUICtrlSetState($ssMn_ArreterMysql, $GUI_DISABLE)
                GUICtrlSetData($lbl_StatusMysql2, $u_StatusMysql)
                    GUICtrlSetColor($lbl_StatusMysql2, 0x0000FF) 
            Case $s_GetMsg[0] = $btn_Minimaliser Or $s_GetMsg[0] = $ssMn_Minimaliser            ; Minimaliser 
                MsgBox(0 + 64, 'Tracking', 'Func Minimaliser')                                    ; => Action à réaliser : icône dans le SysTray
            Case $s_GetMsg[0] = $btn_Apropos Or $s_GetMsg[0] = $ssMn_Apropos                    ;  A propos
                GUISetState(@SW_SHOW, $gui_APropos)    
            Case $s_GetMsg[0] = $ssMn_FaireDon                                                    ; Faire un don
                _Start($s_ZMWSDon)
            Case $s_GetMsg[0] = $ssMn_ForumZMWS                                                    ; Visiter les forums
                _Start($s_ZMWSForum)
            Case $s_GetMsg[0] = $ssMn_ZMWSCom                                                    ; Visiter le site
                _Start($s_ZMWSSite)
        EndSelect    
    ElseIf $s_GetMsg[1] = $gui_APropos Then                                                        ; Focus sur la GUI A propos
        Select                                                                                    ; Début de la structure sur le focus GUI A propos
            Case $s_GetMsg[0] = $GUI_EVENT_CLOSE Or $s_GetMsg[0] = $btn_GUIAboutFermer            ; Fermer la GUI A propos
                GuiSetState(@SW_HIDE, $gui_APropos)                                                ; !! utiliser @SW_HIDE !!
                                                                                                ; ne pas utiliser GUIDelete
                                                                                                ; car impossible de recharger la GUI 
                                                                                                ; par après (variables supprimées)
            Case $s_GetMsg[0] = $lbl_VisiterForum                                                ; Visiter le forum
                    _Start($s_ZMWSForum)
            Case $s_GetMsg[0] = $lbl_VisiterSite                                                ; Visiter le site
                    _Start($s_ZMWSSite)
            Case $s_GetMsg[0] = $lbl_FaireDon                                                    ; Faire un don
                    _Start($s_ZMWSDon)
            Case $s_GetMsg[0] = $lbl_LicenceZMWSViews                                            ; Voir la licence ZMWS
                    GUISetState(@SW_HIDE, $gui_APropos)                                            ; Masque la GUI A Propos
                    GUISetState(@SW_SHOW, $gui_Licence)                                            ; Affiche la GUI Licence
                    $s_FlagLicence = $s_FichierLicenceGPL                                        ; Flag licence prend la valeur
                                                                                                ; de la licence demandée
                    _Licence()
            Case $s_GetMsg[0] = $lbl_LicencePHP                                                    ; Voir la licence PHP
                    GUISetState(@SW_HIDE, $gui_APropos)                                            ; Masque la GUI A Propos
                    GUISetState(@SW_SHOW, $gui_Licence)                                            ; Affiche la GUI Licence
                    $s_FlagLicence = $s_FichierLicenceGPL                                        ; Flag licence prend la valeur
                                                                                                ; de la licence demandée
                    _Licence()
            Case $s_GetMsg[0] = $lbl_licenceMysql                                                ; Voir la licence MySQL
                    GUISetState(@SW_HIDE, $gui_APropos)                                            ; Masque la GUI A Propos
                    GUISetState(@SW_SHOW, $gui_Licence)                                            ; Affiche la GUI Licence
                    $s_FlagLicence = $s_FichierLicenceGPL                                        ; Flag licence prend la valeur
                                                                                                ; de la licence demandée
                    _Licence()
            Case $s_GetMsg[0] = $lbl_licenceOpenssl                                                ; Voir la licence OpenSSL
                    GUISetState(@SW_HIDE, $gui_APropos)                                            ; Masque la GUI A Propos
                    GUISetState(@SW_SHOW, $gui_Licence)                                            ; Affiche la GUI Licence
                    $s_FlagLicence = $s_FichierLicenceOpenSSL                                    ; Flag licence prend la valeur
                                                                                                ; de la licence demandée
                    _Licence()
        EndSelect
    ElseIf $s_GetMsg[1] = $gui_Licence Then                                                        ; Focus sur la GUI Licence
        ;MsgBox(0, '', 'Flag licence : ' & $s_FlagLicence)
        ;$FichierTexteLecture = StringReplace(FileRead($s_FlagLicence = FileOpen($s_FlagLicence, 0), _
        ;                        FileGetSize($s_FlagLicence)), @CRLF, @LF)
        ;MsgBox(0, '', 'Fichier texte' & $FichierTexteLecture)
        ;GUICtrlSetData($s_LicenceDansGUI, $FichierTexteLecture)
        Select
            Case $s_GetMsg[0] = $btn_FermerLicence Or $s_GetMsg[0] = $GUI_EVENT_CLOSE             ; Si je ferme la GUI Licence
                                                                                                ; Via bouton Fermer
                GUISetState(@SW_HIDE, $gui_Licence)                                                ; Masque la GUI Licence
                $s_FlagLicence = ""                                                                ; Reset le Flag Licence
                GUISetState(@SW_SHOW, $gui_APropos)                                                ; Affiche la GUI A Propos
            Case $s_GetMsg[0] = $lbl_LireSurWeb                                                 ; Je veux consulter la licence
                                                                                                ; sur le Web
                If $s_FlagLicence = $s_FichierLicenceGPL Then                                    ; Structure conditionnelle pour
                                                                                                ; savoir à quoi correspond la 
                                                                                                ; licence
                    _Start($s_GPLSurWeb)
                ElseIf $s_FlagLicence = $s_FichierLicenceOpenSSL Then
                    _Start($s_OpenSSLSurWeb)
                Else
                    MsgBox(16 + 64, "Erreur", "Une erreur est survenue pendant le traitement de l'impression de la licence" & _
                            @CR & "Veuillez reporter le code erreur suivant sur les forums de ZMWS (http://www.zmws.com/forum) " & _
                            @CR & "GUI : " & $s_GetMsg[1] & _
                            @CR & "Contrôle = " & $s_GetMsg[0] & _
                            @CR & "Fonction = _FilePrint(" & $s_FlagLicence & ")" & _
                            @CR & "Variable = " & $s_FichierLicenceGPL)
                EndIf
            Case $s_GetMsg[0] = $lbl_ImprimerLicence                                            ; Impression de la licence
                If $s_FlagLicence = $s_FichierLicenceGPL Then                                    ; Structure conditionnelle pour
                                                                                                ; savoir à quoi correspond la 
                                                                                                ; licence
                    _FilePrint($s_FichierLicenceGPL)
                ElseIf $s_FlagLicence = $s_FichierLicenceOpenSSL Then
                    _FilePrint($s_FichierLicenceOpenSSL)
                Else
                    MsgBox(16 + 64, "Erreur", "Une erreur est survenue pendant le traitement de l'impression de la licence" & _
                            @CR & "Veuillez reporter le code erreur suivant sur les forums de ZMWS (http://www.zmws.com/forum) " & _
                            @CR & "GUI : " & $s_GetMsg[1] & _
                            @CR & "Contrôle = " & $s_GetMsg[0] & _
                            @CR & "Fonction = _FilePrint(" & $s_FlagLicence & ")" & _
                            @CR & "Variable = " & $s_FichierLicenceGPL)
                EndIf
        EndSelect
    EndIf
WEnd
Exit                                                                                            ; Sortie totale

ZLAM_INCLUDE_V0XYYALPHA.AU3

Code:

;     Nom de la fonction :         - NA -
;     Rôle :                        extériorisation des principales fonctions 
;     Dépendance :             
;     Auteur :                     Fabrice, Groumphy
;     Modification :                 Groumphy, Fabrice, Pilgrim
;     Version :                     v0.2.248.alpha
;     Information importante :      

; Précise que le fichier ne doit ABSOLUMENT être encodé qu'une unique fois !
#include-once

;     Nom de la fonction :         _FilePrint
;     Rôle :                        Imprime un fichier spécifique
;     Dépendance :                 shell32.dll
;     Auteur :                     SvenP
;     Modification :             
;     Version :                 
;     Information importante :     Application ou reconnaissance de l'extension connue par le système
Func _FilePrint($u_FileName)
    Const $s_SW_SHOWNORMAL = 1
    $s_aResult = DllCall("shell32.dll","int","ShellExecute","hwnd",0,"str","print","str",$u_FileName,"str","","str","","int",$s_SW_SHOWNORMAL)
    return $s_aResult[0]
EndFunc ; ==> _FilePrint("NomDuFichierEtChemin.pdf")

;     Nom de la fonction :     _Start
;     Rôle :                    lancer une application spécifique
;     Dépendance :             Aucune
;     Auteur :                 Rob Saunders, Sven P
;     Modification :             Groumphy
;     Version :                 v1.0.1
;     Information importante :      
Func _Start($s_CheminApp)
    Local $s_CmdApp
    If @OSTYPE = 'WIN32_NT' Then
        $s_CmdApp = @ComSpec & ' /c start "" '
    Else
        $s_CmdApp = @ComSpec & ' /c start '
    EndIf
    Return Run($s_CmdApp & $s_CheminApp, '', @SW_HIDE)
    If @error = 1 Then
        MsgBox(16 + 64, "Erreur", "Impossible de lancer l'application demandée, " & _
                @CR & "veuillez reporter le code erreur suivant sur le forum ZMWS (http://www.zmws.com/forum) : " & _
                @CR & "Fonction : _Start" & @CR & "Application : " & $s_CmdApp & _
                @CR & "Variable : " & $s_CheminApp & _
                @CR & "Erreur : " & @error)
    EndIf
EndFunc ; => _Start('monApplication.exe')

;     Nom de la fonction :         _ZazouStart
;     Rôle :                         lancer l'application ZazouMiniWebServer.exe
;     Dépendance :                 _Start
;     Auteur :                     Groumphy
;     Modification :             
;     Version :                     v0.1.202.alpha
;     Information importante :     
Func _ZazouStart()
    Return _Start($s_ZMWSExe & ' -browse -stop -closebrowser')
    If @error = 0 Then
        MsgBox(16 + 64, "Erreur", "Impossible de lancer l'application demandée, " & _
                @CR & "veuillez reporter le code erreur suivant sur le forum ZMWS (http://www.zmws.com/forum) : " & _
                @CR & "Fonction : _ZazouStart" & _ ; @CR & "Application : " & $s_CmdApp & _
                @CR & "Variable : " & $s_ZMWSExe & ' -browse -stop -closebrowser' & _
                @CR & "Erreur : " & @error)
    EndIf
EndFunc ; => _ZazouStart() 

;     Nom de la fonction :         _ZazouStop
;     Rôle :                       arrêter l'application ZazouMiniWebServer.exe
;     Dépendance :                 _Start
;     Auteur :                     Pilgrim
;     Modification :                Groumphy
;     Version :                    v0.1.201.alpha
;     Information importante :     
Func _ZazouStop()
    Return _Start($s_ZMWSExe & ' -shutdown')
EndFunc ; => _ZazouStop()

;     Nom de la fonction :         _MySQLStart
;     Rôle :                         lancer l'application MySQL
;     Dépendance :                 _Start
;     Auteur :                     Groumphy
;     Modification :             
;     Version :                     v0.1.200.alpha
;     Information importante :      
Func _MySQLStart()
    Return _Start('mysql\bin\mysqld-max.exe --no-defaults --skip-innodb --datadir=..\data --pid-file=NUL')
EndFunc ; => _MySQLStart()

;     Nom de la fonction :         _MySQLStop
;     Rôle :                         Arrête l'application MySQL
;     Dépendance :                 _Start
;     Auteur :                     Groumphy
;     Modification :             
;     Version :                     v0.1.200.alpha
;     Information importante :      
Func _MySQLStop()
    Return _Start('mysql\bin\mysqladmin.exe shutdown --user=root')
EndFunc ; => _MySQLStop()

Func _Attendre($u_Ms, $u_Texte)
    SplashTextOn("ZLAM - ...", $u_Texte, 200, 60, -1, -1, 0 + 1 + 16, "Tahoma", -1, -1)
        WinActivate("ZLAM - ...")
        Sleep($u_Ms)
    SplashOff()
EndFunc

;     Nom de la fonction :         _Licence
;     Rôle :                         Détermine le fichier à insérer dans la GUI Licence
;     Dépendance :                 GUI A Propos, GUI Licence
;     Auteur :                     Groumphy
;     Modification :             
;     Version :                     v0.2.237.alpha
;     Information importante :     Alias de GUICtrlCreateLabel
Func _Licence()
            $s_OuvertureFichierLicence = FileOpen($s_FlagLicence, 0)
            $s_Lecturefichier = FileRead($s_OuvertureFichierLicence, _
                                            FileGetSize($s_FlagLicence))
            $s_LicenceLue = StringReplace($s_Lecturefichier, @CRLF, @LF)
            GUICtrlSetData($s_LicenceDansGUI, $s_LicenceLue)
EndFunc

;     Nom de la fonction :         _PHP
;     Rôle :                         Vérifie la présence de PHP et détermine la version si PHP5 est présent
;     Dépendance :                 
;     Auteur :                     Groumphy
;     Modification :             
;     Version :                     v0.2.209.alpha
;     Information importante :     
Func _PHP()
        If FileExists(@ScriptDir & "\PHP5") And FileExists(@ScriptDir & "\PHP5\php.exe") Then
            $u_StatusPHP = FileGetVersion(@ScriptDir & "\PHP5\php.exe")
            GUICtrlSetData($lbl_StatusPHP2, $u_StatusPHP)
                GUICtrlSetColor($lbl_StatusPHP2, 0x008000)
        ElseIf FileExists(@ScriptDir & "\PHP") Then
            $u_StatusPHP = "OK"
            GUICtrlSetData($lbl_StatusPHP2, $u_StatusPHP)
                GUICtrlSetColor($lbl_StatusPHP2, 0x008000)
        Else
            $u_StatusPHP = "Non installé"
            GUICtrlSetData($lbl_StatusPHP2, $u_StatusPHP)
                GUICtrlSetColor($lbl_StatusPHP2, 0xFF0000)
        EndIf
EndFunc

Afin de profiter au maximum des dernières implémentations, il est important d'avoir la configuration suivante :
1. pack ZMWS + PHP,
2. fichier licence a la racine du dossier ZMWS (Cf. source pour les noms, le contenu me semble assez explicite),
3. avoir les sources en racine de ZMWS,

Je pense que c'est tout, et s'il y a autre chose, n'hésitez pas !

Dernière modification du topics :
                                     - 04.09.2006 @ 18.02
                                     - 02.09.2006 @ 11.56
                                     - 01.09.2006 @ 13.38
                                     - 31.09.2006 @ 15.06

Excellente continuation,

Groumphy

Dernière modification par Groumphy (04/09/2006 18:04:07)


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#2 31/08/2006 20:58:31

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

Bon j'ai craqué, je viens sur le forum ce soir. Demain j'attaque les mises en conditions pour l'activation des contrôles, ... Cela devrait déjà donner un peu plus de vie à ZLAM.

@ Fabrice > Est-ce que tu suis dans les tests ? big_smile
@ Pilgrim > Et ta revue de fonction ? tongue


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#3 31/08/2006 23:21:32

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Ca arrive pour les fonctions, j'ai nettoyé les miennes pour ne garder que ce qui est spécifique a ZMWS dans mes fonctions ZMWS_Start(), ZMWS_Stop(), ... Je vous les publierai demain probablement - je suis toujours un peu perfectionniste, j'aime bien quand les choses sont bien carrées et je trouve que ca n'est pas encore le cas, c'est tout moi ca smile

A ce propos, voici ma facon de coder les noms de fonction module_fonction() genre :

- ZMWS_Start(), ZMWS_Stop(), ZMWS_Restart(), ZMWS_GetIps(), ZMWS_GetConfig(), ...
- ZMNGR_BuildTrayMenu(), ZMNGR_SetTrayMenu(), ...

J'ai aussi des constantes définies de la maniere suivante, un peu sur le meme principe :

- $E_NOTICE, $E_WARNING, $E_ERROR pour la gestion d'erreur standard ;
- $ZMWS_DLL_FILENAME, $ZMWS_CONFIG_FILENAME, $ZMWS_STATUS_STOPPED, $ZMWS_STATUS_RUNNING, $ZMWS_STATUS_ERROR, $ZMWS_STATUS_BUSY (d'ailleurs les fonctions ZMWS_Start(), ZMWS_Stop() et ZMWS_Restart() retourneront une constante de status plutot qu'un simple true/false, ca sera plus finement géré comme ca) ;
- $ZMNGR_CONFIG_AUTORELOAD (qui ne sera bientôt plus une constante mais une option de configuration dans un fichier ini je pense).

Avec tout ca et bien d'autres choses, on arrive a un code qui est plutot "propre" et comprehensible rapidement du genre :

Code:

; Démarrage du serveur
If ZMWS_Start() = $ZMWS_STATUS_ERROR Then
    ; Si une erreur survient, on affiche un message d'erreur, le serveur est alors arrêté
    TrayNotify("ZMWS manager", "Impossible de démarrer le serveur. Vérifiez vos options...", $E_ERROR)
Else
    ; On change l'état des éléments du menu (items Démarrer, Redémarrer, Arrêter, ...)
    ZMNGR_SetTrayMenu($ZMWS_STATUS_RUNNING)
EndIf

Voilà le genre, je vous fais passer le fichier de fonctions en même temps que le ZMWS Manager 0.5. en esperant qu'on puisse tous utiliser un même fichier de fonctions ZMWS au final.

Concernant ton fichier de fonctions :

- Que fait exactement la fonction _FilePrint() et en quoi est-elle utile ici ?
- Pour un "" sous WIN32_NT dans la fonction _Start() ? Je ne vois pas trop ce que ca fait...
- Dans _ZazouStart(), je ne mettrai que l'option "-stop", le reste sera à mettre dans le fichier de configuration ; pour ma part, je ne fais jamais lancer le navigateur au demarrage du serveur, ca me gonfle trop... mais c'est  un gout perso.
- Dans _ZazouStop(), que se passe-t-il si le port n'est pas le port 80 ? Normalement c'est "zmws.exe -P 8080 -shutdown par ex" (si mes souvenirs sont bons)
- Idem pour MySQL, le mieux serait de ne passer que le chemin vers le fichier de configuration (my.ini ou mysql.cnf je crois), les autres options seront dans ce fichier
- Pour zmws_get_version(), je retournerai plutot False s'il y a une erreur car si on veut vraiment l'erreur, on pourra utiliser @error qui sera rempli (m'enfin, je dis ca mais pour ma part, je retourne la valeur retournée par la DLL, ce qui doit etre une chaine vide... Xavier c'est bien ca ?)
- Pour zmws_get_ips() meme remarque que pour get_version (et puis on peut tout a fait passer par @IPAddress1 et suivant, c'est pas une hérésie LOL)
- Pour les fonctions ZMWS_Start(), Stop() et Restart(), je vous ferai passer les miennes sous peu comme indiqué plus haut.

Voilà, j'espere ne pas avoir été trop bavard smile

A+
David

Hors ligne

 

#4 01/09/2006 06:44:14

Fabrice
ZazouGeneral
Lieu: Colombes (92)
Date d'inscription: 16/08/2005
Messages: 266

Re: ZLAM : avancement

Salut Groumphy,

De mon côté, je me suis basé sur le fonctionnel de l'application. En mode console évidemmment.

GUI
* Démarrer et Arrêter ZMWS devraient être grisés selon que le serveur soit actif ou pas
* Le label de Arrêter ZMWS est le même que Démarrer
* Les liens vers les licences locales devraient être actifs selon que le fichier soit présent ou pas.
  Sinon, on bascule directement sur le web.

Serveur
* Tu peux détecter le démarrage du serveur afin de mettre à jour l'état du serveur
* Une option pour masquer la console serait la bienvenue
* Récupérer la config du serveur et surtout le port en mode console est relativement compliqué.
  Là est l'avantage certain de la DLL.

Voili, voilou. Je mettrais à jour ce post selon tes avancés wink


http://alter-box.no-ip.info/zmws_grafik/badges/zmws_team3.jpg

Hors ligne

 

#5 01/09/2006 09:10:43

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

<hs>
Put**n je râle, je venais de taper toutes mes réponses et j'ai fais une fausse manipulation et tout s'est effacé !
</hs>

Hello,

Merci déjà de votre aide.

@ Pilgrim >
a) _FilePrint : sert à imprimer les licences (en cours d'implémentation), un p'tit goonies sympathique ;
b) _Start() : le double quote est principalement du à une à une différence syntaxe et d'option au lancement à partir d'un CMD.EXE généré par @ComSpec ;
c) ZazouStart() : hum, ce sont des options aisément paramétrable... Pour le moment, je ne conserve que cela comme ça et adapterais par la suite, je note juste ce que je ne dois pas oublier,
d) ZazouStop() : excellente question sur les ports... Hum, théoriquement si je ne dépose pas de port, le port n'est-il pas capturé ? Et donc reporté dans la fermeture ? Hum, à défaut, je ferais un paramètre global dans le Start qui sera reporté dans le Stop pour le port...
e) MySqlStop() : hum, là j'ai dur à te suivre, si j'ai tout bien compris je ne garderais que l'option Shutdown car les autres renseignements sont repris dans les fichiers de configuration c'est bien ca ??
f) zmws_get_version() : devra disparaitre de ZLAM dans un premier temps car utilise la DLL, hors la DLL ne sera implémentée que plus tard. Il faut que je fasse un FileGetVersion sur l'EXE mais aussi vérifier si le schème numbering est respecté et identique à la DLL... Donc à suivre...
g) zmws_get_ips() : devra disparaitre de ZLAM dans un premier temps car utilise la DLL, hors la DLL ne sera implémentée que plus tard. J'utiliserais pour les prochaines MAJ le @IPAdresse1 mais sauf erreur de ma part, le @IPAdresse1 pose problème sur un réseau de classe A et B (dans ce cas, il faut que j'utilise le 2...) mais ces informations sont incertaines !
h) ZMWS_Start/Stop/Restart : doivent disparaitre car utilise la DLL ! Seront prochainement remplacées par un Start/Stop supportant l'EXE

@ Fabrice >
GUI :
a) Gestion des contrôles : c'est prévu et dans le dernier fjork v03 c'est déjà en partie implémenté ! Donc encore un peu de patience !
b) Infobulle Arrêt ZMWS : fixé !
c) Lien vers licence : bonne idée... Que je vais implémenter !
SERVER :
a) Etat du serveur : encore à implémenter, c'est prévu !
b) Console : encore à implémenter (Cf. code source) ;
c) Port : comme indiqué à Pilgrim, je vais essayer de voir cela par un système de variable ! A suivre et encore à implémenter. (donc en étude pour le moment) ;

Merci de votre aide pour cela, aujourd'hui, je fais une petite mise à jour, mais j'aurais pas beaucoup le temps !
Donc en majorité la semaine prochaine...

G.


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#6 01/09/2006 09:54:32

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Hello,

a) Ok, sympathique
d) Avec l'exe et -shutdown, c'est une deuxieme instance qui est lancé et qui fermer la premiere ; il n'y a aucun passage d'info entre les deux et il faut donc préciser à la deuxieme instance le port de la premiere s'il est différent de 80. En effet, si tu peux recuperer le port au lancement de l'exe, tu le passes en option a _ZazouStop( $port ) et le tour est joué
d) et e) Oui, tout est paramétrable dans le fichier de config, il suffit de passer le chemin ou MySQLD doit le trouver (--default-file=) je crois
g) d'ou sors-tu que "@IPAdresse1 pose problème sur un réseau de classe A et B" ? L'utilisation de zmws_get_ips() ne pose aucun pb, je disais ca juste pour eviter un appel de fonction supplémentaire à la DLL mais @IpAdress[n] doit aussi faire appel a une fonction etant donné que c'est une macro ; donc, OK, on utilise zmws_get_ips(), je le ferai aussi dans le manager smile

A+
David

Hors ligne

 

#7 01/09/2006 12:04:18

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

d) Ok je modifie donc la fonction, ... J'utiliserais le port 80 part défaut dans le _ZazouStart($port) et _ZazouStop($port) et je préciserais la variable $port = "80" avant. Cette option pourra être personnalisable par après... (Cf. un fichier spécifique ou autre, à voir).
e) Hum, MySQL j'y connais que dalle... Alors pour le moment, je laisse comme cela... Je modifierais par après... Tiens-moi informé du paramètre si tu le retrouve.
g) Hmm, simple suposition... Mais apparement tu n'a pas rencontré de problème, j'ai déjà adapté de toute facon smile J'adapterais par après selon le package. Pour le moment essayons de que le manager et l'interface soient séparé, l'un étant le secours de l'autre big_smile

A+

G.


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#8 01/09/2006 13:08:46

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

d) il faut savoir que zmws teste le port 8080 si le 80 est deja pris, puis 8081 si 8080 est deja pris, etc. jusqu'a 8089 ; il faut donc trouver une maniere de recuperer le port dynamiquement... avec la DLL, y'a pas de soucis mais je ne sais pas si c'est possible avec l'EXE ;
e) ok, on en reparlera de toutes facons ;
g) Simple supposition... tu as lu ca quelque part ? Ca pourrait etre interessant d'en savoir un peu plus maintenant que tu as mis un doute big_smile

A+
Dav.

Hors ligne

 

#9 01/09/2006 13:29:33

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

@ Xavier > Pourrais-tu lors de tes prochaines mises à jours de tes EXE, encoder dans les propriétés de la compilation pour l'EXE, le même schème numbering que dans la DLL. En effet, j'utilise le FileGetVersion('zazouminiwebserver.exe') de AutoIt pour déterminer la version disponible hors DLL (implémentation postérieure) et il me retourne 0.0.0.0 ... Po cool ! sad Si j'intérroge la DLL, j'ai bien un type de version.
Tu reportes cela dans l'environnement de console :

Code:

13:19:32: ZazouMiniWebServer 1.0.0-rc4

mais pas dans les propriétés de compilations... Et j'ai cherché mais pas trouvé la propriété exacte à changer...

@ Pilgrim > pour le port 80, s'il y a erreur y a t'il un retour d'erreur ? Ce serait pas mal... A suivre, ...

G.


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#10 01/09/2006 13:57:24

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Groumphy a écrit:

@ Pilgrim > pour le port 80, s'il y a erreur y a t'il un retour d'erreur ? Ce serait pas mal... A suivre, ...

Pour l'exe, je ne sais pas mais pour la DLL, si le serveur est démarré ca retourne 0 sinon ca retourne 1 (ou un nombre positif, en tout cas).

A+

Hors ligne

 

#11 01/09/2006 14:19:47

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2836
Site web

Re: ZLAM : avancement

Plop,

Il n'y a pas de ressources de version (ni aucune autre dan l'exe) c'est pour ça qu'on n'a pas de version.

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#12 01/09/2006 20:41:29

Fabrice
ZazouGeneral
Lieu: Colombes (92)
Date d'inscription: 16/08/2005
Messages: 266

Re: ZLAM : avancement

pilgrim a écrit:

il faut donc trouver une maniere de recuperer le port dynamiquement... avec la DLL, y'a pas de soucis mais je ne sais pas si c'est possible avec l'EXE

Non, ce n'est pas possible (dites, vous suivez pas les liens de mes réponses ? tongue)


http://alter-box.no-ip.info/zmws_grafik/badges/zmws_team3.jpg

Hors ligne

 

#13 01/09/2006 20:56:42

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2836
Site web

Re: ZLAM : avancement

c'est possible en bidouillant une regexp sur la sortie d'un tcpview like en console ...

mais bon...


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#14 01/09/2006 22:04:41

Fabrice
ZazouGeneral
Lieu: Colombes (92)
Date d'inscription: 16/08/2005
Messages: 266

Re: ZLAM : avancement

Enfin, une réponse plausible quoiqu'utilisant une autre programme. J'ai nommé TCPVCon

Le code qui nous intéresse pour retourné le port du ZMWS Console lancé est celui-là :

Code:

> tcpvcon.exe -a ZazouMiniWebServer.exe -c
TCP,C:\Documents and Settings\utilisateur\Mes documents\ZMWS\ZazouMiniWebServer.exe,2288,LISTENING,ToTo:8080,ToTo:0

Evidemment, on prendra soin de récupérer cela dans un fichier texte afin de filtrer sur le serveur qui nous intéresse (car plusieurs serveurs peuvent être lancés... y compris celui déjà lancé par ZLAM wink).

Merci Xavier de cette piste vers une solution externe. Le tout en AutoIt intégré aurait été mieux m'enfin... on fait des merveilles avec FileInstall tongue

PS : Merci UPX...

Code:

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     94208 ->     39424   41.85%    win32/pe     tcpvcon.exe

Dernière modification par Fabrice (01/09/2006 22:12:17)


http://alter-box.no-ip.info/zmws_grafik/badges/zmws_team3.jpg

Hors ligne

 

#15 01/09/2006 22:09:45

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Le plus simple serait de forcer le port dans le fichier de config et on n'en parle plus... pasque là si ZLAM a des dependances externes de ce type, je ne sais pas s'il va avoir du succes... Le numero de port est lu depuis le fichier de config ensuite zmws.exe -p $Port et idem pour le stop...

Y'a aussi la possibilité de tuer le process ZazouMiniWebServer.exe mais là c'est plus du du bourin !

Hors ligne

 

#16 01/09/2006 22:17:13

Fabrice
ZazouGeneral
Lieu: Colombes (92)
Date d'inscription: 16/08/2005
Messages: 266

Re: ZLAM : avancement

Ben alors ZLAM c'est pas pour moi sad

Hé oui, il y a ceux qui n'aime pas les couleurs et les iconnes qui font pouet pouet, et il y a ceux qui adorent la liberté que propose ZMWS de chercher lui même un port de disponible smile. J'en fais partie et c'est surtout pour cela que je me suis penché sur AutoIt + ZMWS.

A mon sens, quelque soit le programme externe (manager, systray, webservice...), il ne doit pas brider les fonctionnalités offertes par ZMWS.

Peut-être un jour la console permettra de partager de façon simple son port dynamique. C'est en fait la seule valeur de configuration que l'on ne peut deviner (le reste est dans le .ini wink)


http://alter-box.no-ip.info/zmws_grafik/badges/zmws_team3.jpg

Hors ligne

 

#17 01/09/2006 22:27:39

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2836
Site web

Re: ZLAM : avancement

En ce qui me concerne, tout ce qui plaît à l'utilisateur final me plaît.

Ce logiciel est dispo pour ce qu'il peut apporter.au plus grand nombre. Sinon, je l'aurais gardé pour moi seul ...

Ce qui n'empêche toutefois pas de développer des solutions n'arrangeant qu'une minorité, tant qu'elles ne nuisent pas à ce qui plaît à la majorité...

Toussa, toussa ...

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#18 01/09/2006 22:29:42

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

Hello,

@ Fabrice & Pilgrim > Dans la GUI, je peux par exemple implémenter une demande de port... Une combo demandant le port. S'il n'est pas attribué, je prend un port très peu utilisé (le 8087 par exemple)...
Enfin il y a moyen de ne pas forcer tout en contrôlant.

@ Fabrice > J'avais lu ton lien et j'avais déjà orienté mon dev vers la solution de Pilgrim mais avec une non implémentation directe ou encore un non forcage du port (sauf pour le dev par exemple et uniquement par facilité).
Dans ce cas, je fais une simple capture de la valeur du combo sur une structure conditionnelle et je rajoute l'attribut reporté dans une variable sur la ligne de commande en tant qu'attribut de ZMWS en mode console... Donc je n'impose rien big_smile

@ Xavier > Ouch ! Pas cool pour le système de propriété avec les versions de l'EXE. Tu compiles l'EXE avec quoi (y doit bien y avoir une option de compilation pour mettre dans l'attribut de l'EXE un numéro de version, grrrrrr... OSKOUR !) ? (Fais attention sinon je te boude pendant 30 secondes !!)


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#19 01/09/2006 22:38:10

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2836
Site web

Re: ZLAM : avancement

Pour la version, c'est comme le reste, si ça ne nuit pas au plus grand nombre, ça ne me dérange pas de l'ajouter


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#20 01/09/2006 22:40:29

Groumphy
ZazouGeneral
Lieu: Brussels
Date d'inscription: 19/08/2006
Messages: 488
Site web

Re: ZLAM : avancement

@ Xavier > Gné, ... Je croyais que c'était pas possible (Cf. ton post précédent). Ou tu as mal compris ou je me suis mal exprimé !
En fait il s'agit d'une propriété de l'exécutable, pas un report de variable. Donc en global quand tu compiles en EXE, tu devrais avoir moyen de reporter un numéro de version qui va s'inscrire dans les propriétés de l'application... Et qui est lisible par FileGetVersion() de AutoIt.

G.


--------------------------------
_logon("Groumphy's blog")

Hors ligne

 

#21 01/09/2006 22:52:56

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Une derniere solution pour garder cette adaptation automatique de numero de port, c'est que ca soit ZLAM lui-même qui fasse la detection...

Je ne sais pas (encore) comment on fait un test de port avec AutoIt mais si c'est possible, il faut tester le port 80, puis 8081, puis... jusqu'a 8089 (pour garder le comportement de l'exe seul).

Ensuite, il faut ajouter le n° de port en parametre de _ZazouStart() et _ZazouStop() et Fabrice retrouve sa liberté big_smile

Hors ligne

 

#22 01/09/2006 22:55:55

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Fabrice a écrit:

A mon sens, quelque soit le programme externe (manager, systray, webservice...), il ne doit pas brider les fonctionnalités offertes par ZMWS.

Oui, il faut que la surcouche (ZLAM, ZMNGR, ...) offre au moins ce que propose ZMWS... et c'est pas pour vous faire peur mais n'oubliez pas les options de ligne de commande. wink

Hors ligne

 

#23 01/09/2006 23:04:45

pilgrim
Zamais content
Lieu: Bourgogne - France
Date d'inscription: 09/09/2005
Messages: 841
Site web

Re: ZLAM : avancement

Hé, on est bête, il suffit de demander a l'exe lui-meme de nous dire de quel port il veut bien smile

Si on connait les valeurs de retour quand on lance l'exe et qu'il plante, c'est p-e gagné (c'est pas forcément élégant comme méthode mais bon) : il suffit de boucler faire un tableau des ports à tester :

Code:

;~ Liste des ports à tester
$ZMWS_ALLOWED_PORTS[11] = [80,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089]

Et ensuite on utilise la fonction Run() pour lancer et tester le port : si la valeur de retour est celle correspondant à une erreur, on passe au port suivant.

Qu'en pensez-vous ?

Avec cette méthode et celle que j'ai indiqué plus haut où c'est AutoIt qui fait le test de port, on devrait finalement s'en sortir... :p

Hors ligne

 

#24 01/09/2006 23:06:13

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2836
Site web

Re: ZLAM : avancement

Port' nawak

La version n'est pas une propriété d'un exécutable. Il s'agit d'une entrée particulière dans des ressources.ajoutées à l'exe, au même titre que l'icône ...


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#25 01/09/2006 23:11:16

Fabrice
ZazouGeneral
Lieu: Colombes (92)
Date d'inscription: 16/08/2005
Messages: 266

Re: ZLAM : avancement

pilgrim : Tout à fait d'accord pour la ligne de commande. D'ailleurs, mes managers actuels (Console) doivent être lancés selon certains paramêtres pour que toutes les options soient effectives (console affichée...). D'où la bascule à la DLL.

D'accord aussi pour la détection du port depuis ZLAM ou autre (en AutoIt).
Xavier, en utilisant les fonctions TCP de AutoIt, quel serait l'échange à mettre en place afin de détecter la présence de ZMWS sur un port particulier ?
Le code suivant me renvoit systématiquement 288 en socket pour pratiquement tous les serveurs lancés

Code:

$g_IP = "127.0.0.1"

; Start The TCP Services
;==============================================
TCPStartUp()

; Connect to a Listening "SOCKET"
;==============================================
$socket = TCPConnect( $g_IP, 8080 )
msgbox(0,"Socket",$socket)

Enre TCPConnect, TCPListen etc... c'est encore des processus serveurs que je ne maitrise pas.
Peut-être existe t'il une façon d'être sûr que ce soit ZMWS sur un port... non ?!?

Dernière modification par Fabrice (02/09/2006 00:36:19)


http://alter-box.no-ip.info/zmws_grafik/badges/zmws_team3.jpg

Hors ligne

 

Pied de page du Forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson