Avec l'aide de quelques scripts que j'ai trouvé sur différents sites et forums j'ai plus ou moins réussis à faire ce que je voulais c'est à dire un exe a son lancement qui m'ouvre et démarre mes serveur via un batch.
Mon Problème :
Au lancement de mon exe tous fonctionne bien sauf que mon Démarrer est Normal et mon Arrêté est Grisé (pas cliquable) j'aimerai faire l'inverse (logique en même temps)
Voila le code de mon menu systray :
► Afficher le texte
Code : Tout sélectionner
#include <Constants.au3>
Dim $ConfigFile ;Configuration File
Dim $ImageFile ;Image to be shown. Must be BMP,GIF or JPG
Dim $ImageWidth ;Width of the image to display in pixels
Dim $ImageHeight ;Height of image in pixels
Dim $Title ;Title to be displayed
Dim $ShowTime ;Length of time to display image in seconds
Dim $ShowTitle ;Determine whether or not to display the title
Dim $ShowTitleSetting ;Setting for ShowTitle
; Variables du script
$AppVersion = "0.2"
; Configuration
$DPStart = Run("serveurdp\Start.bat")
$ZMWSCmdLineStart = "-browse -stop -closebrowser -p "
$ZMWSCmdLineStop = Run("serveurdp\Stop.bat")
; Variables globales
Opt("TrayMenuMode", 1) ; Don't show the default tray context menu
; Recherche une sous-chaine dans le titre des fenêtre
Opt("WinTitleMatchMode", 2)
Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
Global Const $MIM_BACKGROUND = 0x00000002
;TraySetIcon("shell32.dll", 21)
TraySetToolTip("DP49 Serveur")
TrayTip("Depann49", "Lancement du Serveur ...", 5, 1)
$mnuZMWSStart = TrayCreateItem("Démarrer")
$mnuZMWSStop = TrayCreateItem("Arrêter")
TrayCreateItem("")
$Appli = TrayCreateMenu("Application")
$AppliDirect= TrayCreateItem("Application Direct", $Appli)
$Gmap= TrayCreateItem("GoogleMap", $Appli)
TrayCreateItem("")
$Admin = TrayCreateMenu("Administration")
$PHPMyAdmin= TrayCreateItem("PHPMyAdmin", $Admin)
$PANELADMIN = TrayCreateItem("Panel Admin", $Admin)
TrayCreateItem("")
$mnuAbout = TrayCreateItem("A propos")
$mnuQuit = TrayCreateItem("Quitter")
If $ConfigFile = "Error" Then Exit
$ImageFile = IniRead($ConfigFile,"General","ImageFile","serveurdp/Logo.jpg")
If StringMid($ImageFile,2,1)<>":" and StringMid($ImageFile,2,1)<>"\" Then
$ImageFile = @ScriptDir & "\" & $ImageFile
EndIf
If Not FileExists($ImageFile) Then Exit
$ImageHeight = IniRead($ConfigFile,"General","ImageHeight",160)
$ImageWidth = IniRead($ConfigFile,"General","ImageWidth",500)
$Title = IniRead($ConfigFile,"General","Title","Depann49 Serveur")
$ShowTime = IniRead($ConfigFile,"General","ShowTime",2)
$ShowTitle = IniRead($ConfigFile,"General","ShowTitle",False)
If $ShowTitle = True Then
$ShowTitleSetting = -1
Else
$ShowTitleSetting = 1
EndIf
SplashImageOn($Title,$ImageFile,$ImageWidth,$ImageHeight,-1,-1,$ShowTitleSetting)
Sleep($ShowTime * 500)
SplashOff()
SetMenuColor(0, 0xEEBB99) ; BGR color value, '0' means the tray context menu handle itself
While 1
$Msg = TrayGetMsg()
Switch $Msg
Case $mnuZMWSStart
ZMWSStart()
Case $mnuZMWSStop
ZMWSStop()
Case $Appli
ShellExecute("http://127.0.0.1:9080/")
Case $AppliDirect
ShellExecute("http://127.0.0.1:9080/")
Case $Gmap
ShellExecute("http://mapage.free.fr/googlemap2.html")
Case $PHPMyAdmin
ShellExecute("http://127.0.0.1:9080/apanel/phpMyAdmin")
Case $PANELADMIN
ShellExecute("http://127.0.0.1:9080/apanel/")
Case $mnuAbout
Msgbox(64, "A propos...", "DEP49 Server Manager" & @CRLF & "Version AutoIt " & $AppVersion)
Case $mnuQuit
ZMWSStop()
ExitLoop
EndSwitch
; MAJ du menu selon le serveur
UpdateMenu()
WEnd
Exit
;--------------------------------------------------------------------------------
; ZMWSStop : Stop ZMWS
;--------------------------------------------------------------------------------
Func ZMWSStop()
Run("serveurdp\Stop.bat")
EndFunc
;--------------------------------------------------------------------------------
; ZMWSStart : Start ZMWS
;--------------------------------------------------------------------------------
Func ZMWSStart()
Run($DPStart & " " & $ZMWSCmdLineStart)
EndFunc
;--------------------------------------------------------------------------------
; UpdateMenu : MAJ du menu selon l'état du serveur
;--------------------------------------------------------------------------------
Func UpdateMenu()
; MAJ des menus selon ZMWS
If ProcessExists($DPStart) Then
TrayItemSetState($mnuZMWSStart, $TRAY_CHECKED + $TRAY_DISABLE)
TrayItemSetState($mnuZMWSStop, $TRAY_ENABLE + $TRAY_DEFAULT)
Else
TrayItemSetState($mnuZMWSStart, $TRAY_UNCHECKED + $TRAY_ENABLE + $TRAY_DEFAULT)
TrayItemSetState($mnuZMWSStop, $TRAY_DISABLE)
EndIf
; MAJ des menus de la console
; Récupère l'état de la fenêtre de la console
$state = WinGetState($DPStart, "")
; Test si fenêtre visible
If BitAnd($state, 2) Then ; 2 = Visible
EndIf
EndFunc
; Apply the color to the menu
Func SetMenuColor($nMenuID, $nColor)
; Minimum OS are Windows98 and 2000
If @OSVersion = "WIN_95" Or @OSVersion = "WIN_NT4" Then Return
$hMenu = TrayItemGetHandle($nMenuID) ; Get the internal menu handle
$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]
Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOr($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)
DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
EndFunc
J'en profite pour demandé aussi comment faire pour ajouté un texte sur la tranche du menu (Partie blanche a gauche du menu), j'ai trouvé pas mal de scripts mais impossible de l'ajouté sur celui-ci.
En vous remerciant pour votre aide.







