#include Opt ( "TrayAutoPause" , 0 ) Opt ( "TrayMenuMode" , 1 ) Dim $logonserver_var = 0 Dim $worldserver1_var = 0 Dim $worldserver2_var = 0 Dim $wait = 0 Dim $hide = 0 Dim $logonserver_pid = "0" Dim $worldserver1_pid = "0" Dim $worldserver2_pid = "0" Dim $show Dim $THide Dim $exit Dim $logonserver, $worldserver1, $worldserver2 Dim $logonserverpic, $worldserver1pic, $worldserver2pic Dim $logonservertxt, $worldserver1txt, $worldserver2txt Dim $hide, $reload Dim $server1folder, $server2folder, $waittime , $logonserverexe, $worldserver1exe, $worldserver2exe _CreateGUI() _LoadData() _LoadTrayOptions() _LoadGUI() GuiSetState() While 1 $msg = GuiGetMsg() Select Case $msg = $GUI_EVENT_CLOSE WinSetState ( $server1folder & "\" & $logonserverexe , "" , @SW_SHOW ) WinSetState ( $server1folder & "\" & $worldserver1exe , "" , @SW_SHOW ) WinSetState ( $server2folder & "\" & $worldserver2exe , "" , @SW_SHOW ) ExitLoop Case Else _logonserverLoop() _worldserver1Loop() _worldserver2Loop() EndSelect If $msg = $hide Then _Hide() If $msg = $logonserver Then _logonserver() If $msg = $worldserver1 Then _worldserver1() If $msg = $worldserver2 Then _worldserver2() If $msg = $reload Then _LoadData() _LoadGUI() EndIf If TrayGetMsg() = $Show Then _Show() If TrayGetMsg() = $THide Then _Hide() If TrayGetMsg() = $Exit Then Exit WEnd Func _CreateGUI() $GUI = GUICreate ( "AutoUP" , 300, 145 ) EndFunc Func _LoadGUI() $logonserver = GUICtrlCreateButton ( "Start" , 10, 10, 80 ) $worldserver1 = GUICtrlCreateButton ( "Start" , 10, 40, 80 ) $worldserver2 = GUICtrlCreateButton ( "Start" , 10, 70, 80 ) $logonserverpic = GUICtrlCreatePic ( "images\offline.bmp" , 100, 10, 80, 25) $worldserver1pic = GUICtrlCreatePic ( "images\offline.bmp" , 100, 40, 80, 25) $worldserver2pic = GUICtrlCreatePic ( "images\offline.bmp" , 100, 70, 80, 25) $logonservertxt = GUICtrlCreateLabel ( $logonserverexe , 200, 13, 100 ) $worldserver1txt = GUICtrlCreateLabel ( $worldserver1exe, 200, 43, 100 ) $worldserver2txt = GUICtrlCreateLabel ( $worldserver2exe, 200, 73, 100) $hide = GUICtrlCreateButton ( "Hide All" , 45 , 110, 80 ) $reload = GUICtrlCreateButton ( "Reload Options" , 150, 110, 100 ) EndFunc Func _loaddata() $server1folder = IniRead ( "autoup.ini" , "FOLDERS" , "Server1" , "" ) $server2folder = IniRead ( "autoup.ini" , "FOLDERS" , "Server2" , "" ) $logonserverexe = IniRead ( "autoup.ini" , "SERVERS" , "Logonserver" , "logonserver.exe" ) $worldserver1exe = IniRead ( "autoup.ini" , "SERVERS" , "WorldServer1" , "ascent.exe" ) $worldserver2exe = IniRead ( "autoup.ini" , "SERVERS" , "WorldServer2" , "ascent.exe" ) $waittime = IniRead ( "autoup.ini" , "SETTINGS" , "Wait" , "5000" ) EndFunc Func _logonserverLoop() Select Case $logonserver_var = 1 $logonserver_pid = WinGetState ( $server1folder & "\" & $logonserverexe ) If $logonserver_pid = "0" And $logonserver_var = 1 Then Sleep ( $waittime ) ShellExecute ( $server1folder & "\" & $logonserverexe ) Sleep ( 1500 ) EndIf EndSelect EndFunc Func _worldserver1Loop() Select Case $worldserver1_var = 1 $worldserver1_pid = WinGetState ( $server1folder & "\" & $worldserver1exe ) If $worldserver1_pid = "0" And $worldserver1_var = 1 Then Sleep ( $waittime ) ShellExecute ( $server1folder & "\" & $worldserver1exe ) Sleep ( 1500 ) EndIf Endselect EndFunc Func _worldserver2Loop() Select Case $worldserver2_var = 1 $worldserver2_pid = WinGetState ( $server2folder & "\" & $worldserver2exe ) If $worldserver2_pid = "0" And $worldserver2_var = 1 Then Sleep ( $waittime ) ShellExecute ( $server2folder & "\" & $worldserver2exe ) Sleep ( 1500 ) EndIf Endselect EndFunc Func _Hide() WinSetState ( $server1folder & "\" & $logonserverexe , "" , @SW_HIDE ) WinSetState ( $server1folder & "\" & $worldserver1exe , "" , @SW_HIDE ) WinSetState ( $server2folder & "\" & $worldserver2exe , "" , @SW_HIDE ) GUISetState ( @SW_HIDE ) EndFunc Func _Show() WinSetState ( $server1folder & "\" & $logonserverexe , "" , @SW_SHOW ) WinSetState ( $server1folder & "\" & $worldserver1exe , "" , @SW_SHOW ) WinSetState ( $server2folder & "\" & $worldserver2exe , "" , @SW_SHOW ) GUISetState ( @SW_SHOW ) EndFunc Func _logonserver() If $logonserver_var = 0 And $wait = 0 Then $logonserver_var = 1 $wait = 1 GUICtrlSetImage ( $logonserverpic , "images\online.bmp" ) GUICtrlSetData ( $logonserver , "Stop" ) EndIf If $logonserver_var = 1 And $wait = 0 Then $logonserver_var = 0 GUICtrlSetImage ( $logonserverpic , "images\offline.bmp" ) GUICtrlSetData ( $logonserver , "Start" ) EndIf $wait = 0 EndFunc Func _worldserver1() If $worldserver1_var = 0 And $wait = 0 Then $worldserver1_var = 1 $wait = 1 GUICtrlSetImage ( $worldserver1pic , "images\online.bmp" ) GUICtrlSetData ( $worldserver1 , "Stop" ) EndIf If $worldserver1_var = 1 And $wait = 0 Then $worldserver1_var = 0 GUICtrlSetImage ( $worldserver1pic , "images\offline.bmp" ) GUICtrlSetData ( $worldserver1 , "Start" ) EndIf $wait = 0 EndFunc Func _worldserver2() If $worldserver2_var = 0 And $wait = 0 Then $worldserver2_var = 1 $wait = 1 GUICtrlSetImage ( $worldserver2pic , "images\online.bmp" ) GUICtrlSetData ( $worldserver2 , "Stop" ) EndIf If $worldserver2_var = 1 And $wait = 0 Then $worldserver2_var = 0 GUICtrlSetImage ( $worldserver2pic , "images\offline.bmp" ) GUICtrlSetData ( $worldserver2 , "Start" ) EndIf $wait = 0 EndFunc Func _LoadTrayOptions() $THide = TrayCreateItem ( "Hide All" ) $Show = TrayCreateItem ( "Show All" ) TrayCreateItem ( "-----" ) $Exit = TrayCreateItem ( "Exit" ) EndFunc