#NoTrayIcon
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <MouseSetOnEvent_UDF.au3>
#include <Misc.au3>
Global Const $REG_KEY_NAME = 'HKEY_CURRENT_USER\Software\Webzen\Mu\Config'
$cParam1 = 0 ; Checkbox1 MusicOnOff
$cParam2 = 0 ; Checkbox2 SoundOnOff
$cParam3 = 0 ; Checkbox3 WindowMode
$cParam4 = 0 ; Checkbox4 Login On/Off
$cParam5 = 0 ; 0 - Radio1; 1 - Radio2; 2 - Radio3; Resolution
$cParam6 = 'Login Name' ; Input ID
_ReadRegistry()
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Loner\Рабочий стол\Лаунчер.kxf
$Form1 = GUICreate("Launcher System For DynDns", 310, 428, 404, 126)
$Button1 = GUICtrlCreateButton("Connect", 3, 392, 147, 33)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
$Button2 = GUICtrlCreateButton("Option", 160, 392, 147, 33)
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
$Pic1 = GUICtrlCreatePic("C:\Documents and Settings\Loner\Рабочий стол\_2__.JPG", 3, 3, 303, 385, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
;------------------------------------------ Окно Options --------------------------------------------
#Region ### START Koda GUI section ### Form=c:\documents and settings\loner\Рабочий стол\options.kxf
$Form2 = GUICreate("Options", 274, 373, 352, 201)
$Group1 = GUICtrlCreateGroup("Resolution", 8, 288, 125, 47)
$Combo1 = GUICtrlCreateCombo("Combo1", 16, 304, 109, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Other", 8, 8, 257, 65)
$Checkbox1 = GUICtrlCreateCheckbox("Sound On/Off", 16, 24, 89, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * $cParam1, $GUI_UNCHECKED * (Not $cParam1)))
$Checkbox2 = GUICtrlCreateCheckbox("Music On/Off", 16, 48, 89, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * $cParam2, $GUI_UNCHECKED * (Not $cParam2)))
$Checkbox3 = GUICtrlCreateCheckbox("Window Mode", 160, 24, 89, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * $cParam3, $GUI_UNCHECKED * (Not $cParam3)))
$Checkbox4 = GUICtrlCreateCheckbox("AutoLogin", 160, 48, 89, 17, BitOR($BS_CHECKBOX,$WS_TABSTOP))
GUICtrlSetState(-1, BitOR($GUI_CHECKED * $cParam4, $GUI_UNCHECKED * (Not $cParam4)))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Name", 8, 240, 125, 47)
$Input = GUICtrlCreateInput($cParam6, 16, 256, 109, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group4 = GUICtrlCreateGroup("Password", 140, 240, 125, 47)
$Input2 = GUICtrlCreateInput("Input1", 148, 256, 109, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ButtonSave = GUICtrlCreateButton("Accept", 140, 292, 125, 43)
GUICtrlSetFont(-1, 12, 800, 0, "Comic Sans MS")
$Pic1 = GUICtrlCreatePic("C:\Documents and Settings\Loner\Рабочий стол\DynDns.jpg", 8, 150, 257, 89, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Group5 = GUICtrlCreateGroup("Resolution", 8, 80, 257, 65)
$Radio1 = GUICtrlCreateRadio("640x480", 16, 96, 81, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * ($cParam5 = 0), $GUI_UNCHECKED * ($cParam5 <> 0)))
$Radio2 = GUICtrlCreateRadio("1024x768", 160, 96, 73, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * ($cParam5 = 1), $GUI_UNCHECKED * ($cParam5 <> 1)))
$Radio3 = GUICtrlCreateRadio("800x600", 16, 120, 81, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * ($cParam5 = 2), $GUI_UNCHECKED * ($cParam5 <> 2)))
$Radio4 = GUICtrlCreateRadio("1280x1024", 160, 120, 81, 17)
GUICtrlSetState(-1, BitOR($GUI_CHECKED * ($cParam5 = 3), $GUI_UNCHECKED * ($cParam5 <> 3)))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Combo2 = GUICtrlCreateCombo("Show", 8, 344, 125, 25)
GUICtrlSetData($Combo2, 'F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12');, 'F5')
$Combo3 = GUICtrlCreateCombo("Hide", 140, 344, 125, 25)
GUICtrlSetData($Combo3, 'F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12');, 'F6')
GUISetState(@SW_HIDE, $Form2)
#EndRegion ### END Koda GUI section ###
;------------------------------------------ показать окно Options при нажатии Button2 -----------------------
While 1
$msg = GUIGetMsg(1)
Select
case $msg[0] = $Button2
GUISetState(@SW_SHOW, $Form2)
Case $msg[0] = $GUI_EVENT_CLOSE
If $msg[1] = $Form2 Then
GUISetState(@SW_HIDE, $Form2)
ElseIf $msg[1] = $Form1 Then
Exit
EndIf
EndSelect
WEnd
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $ButtonSave
$cParam1 = (GUICtrlRead($Checkbox1) = $GUI_CHECKED)
$cParam2 = (GUICtrlRead($Checkbox2) = $GUI_CHECKED)
$cParam3 = (GUICtrlRead($Checkbox3) = $GUI_CHECKED)
$cParam4 = (GUICtrlRead($Checkbox4) = $GUI_CHECKED)
$cParam5 = BitOR((GUICtrlRead($Radio2) = $GUI_CHECKED) * 0, (GUICtrlRead($Radio3) = $GUI_CHECKED) * 3)
$cParam6 = GUICtrlRead($Input)
_WriteRegistry()
ExitLoop
EndSwitch
WEnd
#EndRegion ### END Koda GUI section ###
;------------------------------------------ запуск main.exe при нажатии на Button1 -----------------------
While 1
$nMsg = GUIGetMsg()
Switch $nmsg
Case $GUI_EVENT_CLOSE
ExitLoop
;Sleep(20000)
Case $Button1
Run("main.exe /end /LUA:OFF", "")
;Run("main.exe /end /LUA:OFF", "", @ScriptDir, "open")
;ShellExecute("main.exe /end /LUA:OFF", "", @ScriptDir, "open")
EndSwitch
;------------------------------------------ установка гоячих клавиш на Show & Hide -----------------------
$msg = GUIGetMsg()
HotKeySet('{' & GUICtrlRead($Combo2) & '}', '_Show')
Switch $msg
Case $GUI_EVENT_CLOSE
GUIDelete($Form2)
ExitLoop
EndSwitch
$msg = GUIGetMsg()
HotKeySet('{' & GUICtrlRead($Combo3) & '}', '_Hide')
Switch $msg
Case $GUI_EVENT_CLOSE
GUIDelete($Form2)
ExitLoop
EndSwitch
WEnd
;------------------------------------------ функции Show & Hide -----------------------
Func _Hide()
WinSetState("MU", "", @SW_HIDE)
EndFunc
Func _Show()
WinSetState("MU", "", @SW_SHOW)
EndFunc
Func _ReadRegistry()
$cParam1 = _ValueCheck(_RegRead($REG_KEY_NAME, 'MusicOnOff', 'REG_DWORD', $cParam1), 0, 1)
$cParam2 = _ValueCheck(_RegRead($REG_KEY_NAME, 'SoundOnOff', 'REG_DWORD', $cParam2), 0, 1)
$cParam3 = _ValueCheck(_RegRead($REG_KEY_NAME, 'WindowMode', 'REG_DWORD', $cParam3), 0, 1)
$cParam4 = _ValueCheck(_RegRead($REG_KEY_NAME, 'Login', 'REG_DWORD', $cParam4), 0, 1)
$cParam5 = _ValueCheck(_RegRead($REG_KEY_NAME, 'Resolution', 'REG_DWORD', $cParam5), 1, 3)
$cParam6 = _RegRead($REG_KEY_NAME, 'ID', 'REG_SZ', $cParam6)
EndFunc ;==>_ReadRegistry
Func _RegRead($Key, $Value, $Type, $Default)
Local $Val = RegRead($Key, $Value)
If @error Then
RegWrite($Key, $Value, $Type, $Default)
Return $Default
EndIf
Switch StringUpper($Type)
Case 'REG_SZ', 'REG_MULTI_SZ', 'REG_EXPAND_SZ'
If Not IsString($Val) Then
Return SetError(1, 0, $Default)
EndIf
Case 'REG_BINARY'
If Not IsBinary($Val) Then
Return SetError(1, 0, $Default)
EndIf
Case 'REG_DWORD'
If Not IsInt($Val) Then
Return SetError(1, 0, $Default)
EndIf
Case Else
Return SetError(1, 0, $Default)
EndSwitch
Return $Val
EndFunc ;==>_RegRead
Func _ValueCheck($iValue, $iMin, $iMax)
If $iValue < $iMin Then
Return $iMin
EndIf
If $iValue > $iMax Then
Return $iMax
EndIf
Return $iValue
EndFunc ;==>_ValueCheck
Func _WriteRegistry()
RegWrite($REG_KEY_NAME, 'MusicOnOff', 'REG_DWORD', $cParam1)
RegWrite($REG_KEY_NAME, 'SoundOnOff', 'REG_DWORD', $cParam2)
RegWrite($REG_KEY_NAME, 'WindowMode', 'REG_DWORD', $cParam3)
RegWrite($REG_KEY_NAME, 'Login', 'REG_DWORD', $cParam4)
RegWrite($REG_KEY_NAME, 'Resolution', 'REG_DWORD', $cParam5)
RegWrite($REG_KEY_NAME, 'ID', 'REG_SZ', $cParam6)
EndFunc ;==>_WriteRegistry
;------------------------------------------ Защита от повторгного запуска программы -----------------------
if _Singleton("Start.exe",1) = 0 Then
Msgbox(0,"Предупреждение","Одна копия уже запущена.")
Exit
EndIf
;Msgbox(0,"Предупреждение","Тестовая версия программы")
Local $arrWinList = WinList("[CLASS:AutoIt v3;TITLE:AutoIt v3]")
Local $i, $strHwnd
; Перебираем их все
For $i = 1 to $arrWinList[0][0]
; Строим хэндл очередного окна
$strHwnd = "[HANDLE:" & Hex($arrWinList[$i][1]) & "]"
; Если это окно не текущего процесса…
If WinGetProcess($strHwnd) <> @AutoItPID Then
; Пробуем закрыть его
WinClose($strHwnd)
EndIf
Next
While 1
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exitloop
EndSwitch
WEnd