#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=D:\TA\TA.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <Skin.au3>

Opt("GUIResizeMode", 2 + 32 + 256 + 512) ;Элементы не реагируют на изменение размеров окна.

Global $pic_ico = @ScriptDir & "\ico.png", $s = 0, $t = 0

#Region ### START Koda GUI section ### Form=
Global $form_main = GUICreate("Установка Teacher Assistant", 497, 158, 407, 399)

Global $easter_egg = _Skin_AddButton(15, 15, 128, 128, $pic_ico, $pic_ico, $pic_ico, $pic_ico, $pic_ico, 1)

Global $label_hello = GUICtrlCreateLabel("Вас привествует мастер настройки ", 152, 15, 312, 27)
Global $label_ta = GUICtrlCreateLabel("Teacher Assistant!", 152, 45, 155, 27)

Global $button_s = GUICtrlCreateButton("Версия ученика", 152, 87, 125, 48, $BS_MULTILINE)
Global $button_t = GUICtrlCreateButton("Версия учителя", 286, 87, 125, 48, $BS_MULTILINE)

GUICtrlSetFont($button_t, 12, 400, 0, "Times New Roman")
GUICtrlSetFont($button_s, 12, 400, 0, "Times New Roman")
GUICtrlSetFont($label_hello, 16, 400, 0, "Times New Roman")
GUICtrlSetFont($label_ta, 16, 400, 0, "Times New Roman")

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	_Skin_Helper($form_main)
	$nMsg = GUIGetMsg()
	Switch $nMsg

		Case $GUI_EVENT_CLOSE
			Exit

		Case $button_s
			$s = 1 ;Открываем новый цикл.
			_DeleteElements("main")
			_CreateElements("school")

			While $s = 1
			$nMsg = GUIGetMsg()
				Switch $nMsg
					Case $GUI_EVENT_CLOSE
						Exit

					Case $button_s_back
						_DeleteElements("school")
						_CreateElements("main")
						$s = 0 ;Выходим из цикла

					Case $button_1
						$file = FileOpenDialog ("", @WindowsDir, "Приложения (*.exe)")
						If Not @error Then GUICtrlSetData ($input_chrome, $file) ;

					Case $button_2
						$file = FileSelectFolder('Выбрать путь', @HomeDrive, 1)
						If Not @error Then GUICtrlSetData ($input_screen, $file) ;Если пользователь выбрал папку, вносим значение.

					Case $button_3
						$file = FileSelectFolder('Выбрать путь', @HomeDrive, 1)
						If Not @error Then GUICtrlSetData ($input_s_net, $file) ;

					Case $button_s_continue
						$file = FileSelectFolder('Выбрать путь установки программы', @HomeDrive, 1)
						If Not @error Then
							$setup_settings = _WinAPI_CreateFile($file & "\settingsS.ini", 1) ;Создание файла настройки.
							_WinAPI_CloseHandle($setup_settings) ;Закрываем созданный файл.
							IniWriteSection($file & "\settingsS.ini", "Google", "chrome=" & GUICtrlRead($input_chrome) & @LF) ;
							IniWriteSection($file & "\settingsS.ini", "Address", "port=" & GUICtrlRead($input_s_port) & @LF & "ip=" & GUICtrlRead($input_ip) & @LF & "screen=" & GUICtrlRead($input_screen) & @LF) ;Вносим данные в файл.
							IniWriteSection($file & "\settingsS.ini", "Net", "net=" & GUICtrlRead($input_s_net) & @LF) ;
							$file = ''&$file&'\' ;Делаем путь корректным.
							FileInstall("C:\Users\makrut\Desktop\Сборка\Исполнитель.exe", $file, 1) ;
							FileInstall("C:\Users\makrut\Desktop\Сборка\TA.ico", $file, 1) ;Установка.
							$msg = MsgBox(0, 'Установка Teacher Assistant', 'Установка успешно завершена. Приятного пользования.')
							If $msg = 1 Then Exit
						EndIf

					Case $button_s_net
						_CreateNetDrive()
				EndSwitch
			WEnd

		Case $button_t
			$t = 1 ;Открываем новый цикл.
			_DeleteElements("main")
			_CreateElements("teacher")

			While $t = 1
			$nMsg = GUIGetMsg()
				Switch $nMsg
					Case $GUI_EVENT_CLOSE
						Exit

					Case $button_t_back
						_DeleteElements("teacher")
						_CreateElements("main")
						$t = 0 ;Выходим из цикла.

					Case $button_5
						$file = FileSelectFolder('Выбрать путь', @HomeDrive, 1)
						If Not @error Then GUICtrlSetData ($input_t_net, $file)

					Case $button_t_continue
						$file = FileSelectFolder('Выбрать путь установки программы', @HomeDrive, 1)
						If Not @error Then
							$setup_settings = _WinAPI_CreateFile($file & "\settingsT.ini", 1)
							_WinAPI_CloseHandle($setup_settings)
							IniWriteSection($file & "\settingsT.ini", "Address", "port=" & GUICtrlRead($input_t_port) & @LF)
							IniWriteSection($file & "\settingsT.ini", "Students IP", "Компьютер 1=128.0.0.1" & @LF)
							IniWriteSection($file & "\settingsT.ini", "Net", "net=" & GUICtrlRead($input_t_net))
							$file = ''&$file&'\'
							FileInstall("C:\Users\makrut\Desktop\Сборка\Управляющий.exe", $file, 1)
							FileInstall("C:\Users\makrut\Desktop\Сборка\Pictures\arrow_down.png", $file, 1)
							FileInstall("C:\Users\makrut\Desktop\Сборка\Pictures\arrow_up.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\pc_online.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\add.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\cross.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\demonstration.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\ico.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\pc_offline.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\pic_about.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\refresh.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\remofe.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\ring-alt.png", $file, 1)
							FileInstall("C:\Users\makrutDesktop\Сборка\Pictures\Безымянный.png", $file, 1)
							_CreateShortcut()
						EndIf

					Case $button_t_net
						_CreateNetDrive()
				EndSwitch
			WEnd

	EndSwitch
WEnd

Func _CreateElements($version) ;Функция выполняет отрисовку GUI элементов. Отрисованные элементы зависят от присланного значения.
	If $version = "main" Then
		WinMove ($form_main, "Установка Teacher Assistant", Default, Default, 497, 184)

		Global $easter_egg = _Skin_AddButton(15, 15, 128, 128, $pic_ico, $pic_ico, $pic_ico, $pic_ico, $pic_ico, 1)

		Global $label_hello = GUICtrlCreateLabel("Вас привествует мастер настройки ", 152, 15, 312, 27)
		Global $label_ta = GUICtrlCreateLabel("Teacher Assistant!", 152, 45, 155, 27)

		Global $button_s = GUICtrlCreateButton("Версия ученика", 152, 87, 125, 48, $BS_MULTILINE)
		Global $button_t = GUICtrlCreateButton("Версия учителя", 286, 87, 125, 48, $BS_MULTILINE)

		GUICtrlSetFont($button_t, 12, 400, 0, "Times New Roman")
		GUICtrlSetFont($button_s, 12, 400, 0, "Times New Roman")
		GUICtrlSetFont($label_hello, 16, 400, 0, "Times New Roman")
		GUICtrlSetFont($label_ta, 16, 400, 0, "Times New Roman")
	ElseIf $version = "teacher" Then
		WinMove ($form_main, "Установка Teacher Assistant", Default, Default, 497, 165)

		Global $input_t_net = GUICtrlCreateInput("Путь к сетевому диску, доступному ученику и учителю", 15, 15, 429, 21)
		Global $input_t_port = GUICtrlCreateInput("Порт", 15, 45, 429, 21)

		Global $button_5 = GUICtrlCreateButton("...", 446, 14, 27, 23)
		Global $button_t_back = GUICtrlCreateButton("Назад", 157, 81, 96, 39)
		Global $button_t_continue = GUICtrlCreateButton("Продолжить", 377, 81, 96, 39)
		Global $button_t_net = GUICtrlCreateButton("Как создать сетевой диск?", 267, 81, 96, 39, $BS_MULTILINE)
	ElseIf $version = "school" Then
		WinMove ($form_main, "Установка Teacher Assistant", Default, Default, 497, 255)

		Global $input_chrome = GUICtrlCreateInput("Адрес chrome.exe", 15, 15, 429, 21)
		Global $input_screen = GUICtrlCreateInput("Путь для сохранения скриншотов", 15, 45, 429, 21)
		Global $input_s_net = GUICtrlCreateInput("Путь к сетевому диску, доступному ученику и учителю", 15, 75, 429, 21)
		Global $input_ip = GUICtrlCreateInput("IP учителя", 15, 105, 429, 21)
		Global $input_s_port = GUICtrlCreateInput("Порт", 15, 135, 429, 21)

		Global $button_1 = GUICtrlCreateButton("...", 446, 14, 27, 23)
		Global $button_2 = GUICtrlCreateButton("...", 446, 44, 27, 23)
		Global $button_3 = GUICtrlCreateButton("...", 446, 74, 27, 23)

		Global $button_s_back = GUICtrlCreateButton("Назад", 157, 172, 96, 39)
		Global $button_s_continue = GUICtrlCreateButton("Продолжить", 377, 172, 96, 39)
		Global $button_s_net = GUICtrlCreateButton("Как создать сетевой диск?", 267, 172, 96, 39, $BS_MULTILINE)
	EndIf
EndFunc

Func _DeleteElements($version) ;Функция выполняет удаление GUI элементов. Удаленные элементы зависят от присланного значения.
	If $version = "main" Then
		GUICtrlDelete($easter_egg)
		GUICtrlDelete($label_hello)
		GUICtrlDelete($label_ta)
		GUICtrlDelete($button_s)
		GUICtrlDelete($button_t)
	ElseIf $version = "teacher" Then
		GUICtrlDelete($input_t_net)
		GUICtrlDelete($input_t_port)
		GUICtrlDelete($button_5)
		GUICtrlDelete($button_t_back)
		GUICtrlDelete($button_t_continue)
		GUICtrlDelete($button_t_net)
	ElseIf $version = "school" Then
		GUICtrlDelete($input_chrome)
		GUICtrlDelete($input_ip)
		GUICtrlDelete($input_screen)
		GUICtrlDelete($input_s_net)
		GUICtrlDelete($input_s_port)

		GUICtrlDelete($button_1)
		GUICtrlDelete($button_2)
		GUICtrlDelete($button_3)
		GUICtrlDelete($button_s_back)
		GUICtrlDelete($button_s_continue)
		GUICtrlDelete($button_s_net)
	EndIf
EndFunc

Func _CreateShortcut() ;Создание ярлыка установленной программы на рабочем столе.
	GUISetState(@SW_HIDE, $form_main)
	$1 = MsgBox(0x4, 'Установка Teacher Assistant', 'Установить ярлык на рабочий стол?')
	If $1 = 6 Then
		FileCreateShortcut ( $file & "Управляющий.exe" , @DesktopDir & "\Управляющий - Ярлык.lnk")
		MsgBox(0, 'Установка Teacher Assistant', 'Установка успешно завершена. Приятного пользования.')
		Exit
	Else
		MsgBox(0, 'Установка Teacher Assistant', 'Установка успешно завершена. Приятного пользования.')
		Exit
	EndIf
EndFunc

Func _CreateNetDrive() ;Необходимо доделать.
 MsgBox(0, "Совет", "Кликаем правой кнопкой мыши по иконке “Компьютер”, которая находится непосредственно на рабочем столе и в меню выбираем пункт “Подключить сетевой диск…”")
EndFunc


