#region Include
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <String.au3>
Opt('TrayAutoPause', 0)
Opt("GUICloseOnESC", 0) ; Закрывать программы по нажатию на Esc. 1 - ДА, 0 - НЕТ
#endregion
Local $msg, $IP_adress, $Password
#region Config
$Path_to_VNC = (@ProgramFilesDir & '\UltraVNC\')
$Programm_handle=('ULTRA VNC Manager') ; Имя заголовка окна программы
$Version=("2.0") ; Версия программы
$EMail=("[email protected]") ; Описание для создания окна О программе
$Site=("http://vc.com/duero") ; Описание для создания окна О программе
$AboutText = ('Программа для удобного соединения с ULTRA VNC' & @CR & 'Специально для pashkovka')
$Prog_X_Coord = 295 ; Размеры окна по оси X
$Prog_Y_Coord = 180 ; Размеры окна по оси Y
$EncryptPass=('Duero') ; Ключ для шифрования паролей
$EncryptLevel=2 ; Уровень шифрования. Минимальный = 1
#endregion
#region GUI
;~ Создание элементов интерфейса программы
$hForm = GUICreate($Programm_handle, $Prog_X_Coord, $Prog_Y_Coord) ;~ Основная форма программы
$Exit = GUICtrlCreateButton('Выход', $Prog_X_Coord - 70, $Prog_Y_Coord -30, 64, 24)
$About = GUICtrlCreateButton('О программе', $Prog_X_Coord - 160, $Prog_Y_Coord -30, 84, 24)
GUICtrlCreateLabel ( 'ULTRA VNC Manager', 6, $Prog_Y_Coord -20, 130, 15)
GUICtrlSetState(-1, $GUI_DISABLE)
;~ Вкладка с запуском программ
GUICtrlCreateTab(0, 0, 297, 140)
GUICtrlCreateTabItem("Клиенты")
;~ Кнопки
GUICtrlCreateLabel ('Директор', 15, 30, 120, 15) ; Создание лейбла (подписи): "Текст", координата по Х, координата по У, длина элемента, высота элемента
$Connection1 = GUICtrlCreateButton('Соедениться', 15, 50, 120, 20) ; Создание Кнопки: "Текст кнопки", координата по Х, координата по У, длина элемента, высота элемента
GUICtrlCreateLabel ('Бухгалтер', 15, 80, 120, 15)
$Connection2 = GUICtrlCreateButton('Соедениться', 15, 100, 120, 20)
GUICtrlCreateLabel ('Пользователь', 160, 30, 110, 15)
$Connection3 = GUICtrlCreateButton('Соедениться', 160, 50, 120, 20)
GUICtrlCreateLabel ('Пользователь 2', 160, 80, 120, 15)
$Connection4 = GUICtrlCreateButton('Соедениться', 160, 100, 120, 20)
;~ Вкладка Настройка
GUICtrlCreateTabItem("Настройка")
GUICtrlCreateLabel ('Директор', 15, 30, 120, 15) ; Создание лейбла (подписи): "Текст", координата по Х, координата по У, длина элемента, высота элемента
$ConnectionIP1 = GUICtrlCreateButton('IP адрес', 15, 50, 60, 20) ; Создание Кнопки: "Текст кнопки", координата по Х, координата по У, длина элемента, высота элемента
$ConnectionPass1 = GUICtrlCreateButton('Пароль', 75, 50, 60, 20)
GUICtrlCreateLabel ('Бухгалтер', 15, 80, 120, 15)
$ConnectionIP2 = GUICtrlCreateButton('IP адрес', 15, 100, 60, 20)
$ConnectionPass2 = GUICtrlCreateButton('Пароль', 75, 100, 60, 20)
GUICtrlCreateLabel ('Пользователь', 160, 30, 110, 15)
$ConnectionIP3 = GUICtrlCreateButton('IP адрес', 160, 50, 60, 20)
$ConnectionPass3 = GUICtrlCreateButton('Пароль', 220, 50, 60, 20)
GUICtrlCreateLabel ('Пользователь 2', 160, 80, 120, 15)
$ConnectionIP4 = GUICtrlCreateButton('IP адрес', 160, 100, 60, 20)
$ConnectionPass4 = GUICtrlCreateButton('Пароль', 220, 100, 60, 20)
GUISetState() ;~ Завершение инициализации интерфейса программы.
#endregion
;~ Ниже идет описание действий при работе с интерфейсом.
$msg = 0
While $msg <> $GUI_EVENT_CLOSE
$msg = GUIGetMsg()
#region Buttons
Select
;~ Кнопки запуска программ
Case $msg = $Connection1
$Key = ('1_Connection')
$IP_adress = IniRead("Config.ini", 'Config', $Key&'_IP', "127.0.0.1")
$Password = _StringEncrypt(0,IniRead("Config.ini", 'Config', $Key&'_Pass', ""),$EncryptPass,$EncryptLevel)
_ConnectVNC()
Case $msg = $Connection2
$Key = ('2_Connection')
$IP_adress = IniRead("Config.ini", 'Config', $Key&'_IP', "127.0.0.1")
$Password = _StringEncrypt(0,IniRead("Config.ini", 'Config', $Key&'_Pass', ""),$EncryptPass,$EncryptLevel)
_ConnectVNC()
Case $msg = $Connection3
$Key = ('3_Connection')
$IP_adress = IniRead("Config.ini", 'Config', $Key&'_IP', "127.0.0.1")
$Password = _StringEncrypt(0,IniRead("Config.ini", 'Config', $Key&'_Pass', ""),$EncryptPass,$EncryptLevel)
_ConnectVNC()
Case $msg = $Connection4
$Key = ('4_Connection')
$IP_adress = IniRead("Config.ini", 'Config', $Key&'_IP', "127.0.0.1")
$Password = _StringEncrypt(0,IniRead("Config.ini", 'Config', $Key&'_Pass', ""),$EncryptPass,$EncryptLevel)
_ConnectVNC()
Case $msg = $ConnectionIP1
$Key = ('1_Connection')
_INI_Config_IP()
Case $msg = $ConnectionIP2
$Key = ('2_Connection')
_INI_Config_IP()
Case $msg = $ConnectionIP3
$Key = ('3_Connection')
_INI_Config_IP()
Case $msg = $ConnectionIP4
$Key = ('4_Connection')
_INI_Config_IP()
Case $msg = $ConnectionPass1
$Key = ('1_Connection')
_INI_Config_Pass()
Case $msg = $ConnectionPass2
$Key = ('2_Connection')
_INI_Config_Pass()
Case $msg = $ConnectionPass3
$Key = ('3_Connection')
_INI_Config_Pass()
Case $msg = $ConnectionPass4
$Key = ('4_Connection')
_INI_Config_Pass()
;~ Различные кнопки
Case $msg = $About
MsgBox(64, "О программе", $AboutText & @CR & @CR & "Версия программы: " & $Version & @CR & "Автор программы: Работаев Антон" & @CR & "E-mail: " & $EMail & @CR & "Сайт: " & $Site)
Case $msg = $Exit
Exit
EndSelect
#endregion
WEnd
#region Function
Func _ConnectVNC() ; Функция вызова VNC
Run($Path_to_VNC & 'vncviewer.exe ' & $IP_adress & ' /password ' & $Password)
EndFunc
Func _INI_Config_IP()
;~ Установка
$IPBefore = IniRead("Config.ini", 'Config', $Key&'_IP', "")
$IP1 = InputBox("Введите IP адрес:",'Введите новый IP адрес:',$IPBefore, '',180,120)
If $IP1 <> ("") Then
IniWrite("Config.ini", 'Config', $Key&'_IP', $IP1)
EndIf
;~ Установка
EndFunc
Func _INI_Config_Pass()
;~ Установка
$PassBefore = _StringEncrypt(0,IniRead("Config.ini", 'Config', $Key&'_Pass', ""),$EncryptPass,$EncryptLevel) ; Тут идет дешифрация текущего пароля
$Pass1 = InputBox("Введите пароль:",'Введите новый пароль:',$PassBefore, '*',180,120) ; Для того что бы в программе были видны пароли - замените * на пробел
If $Pass1 <> ("") Then ; Словие если вы ничего не ввели, то запись в конфигурационный файл не будет произведена
$Pass1 = _StringEncrypt(1, $Pass1, $EncryptPass, $EncryptLevel) ; Идет шифрование пароля
IniWrite("Config.ini", 'Config', $Key&'_Pass', $Pass1)
EndIf
;~ Установка
EndFunc
#endregion