Что нового

[Элементы GUI] Создание кнопок, которые запускают приложение!

pashkovka

Новичок
Сообщения
18
Репутация
0
Помогите осуществить следующее.
Есть программка ULTRA VNC (Удаленной администрирование). Для подключения к какому либо компьютеру я использую батник!
код его такой -
Код:
vncviewer 192.168.0.1 /password 1
Хотелось бы сделать окошко с кнопками и описание к кнопкам! Чтобы это было в одной строке.
Например- Директор Подключиться
Надеюсь на вашу помощь!
 
Автор
P

pashkovka

Новичок
Сообщения
18
Репутация
0
Duero
Большое спасибо! Просто огромное! Но почему то не работает :( написал ip и пароль. В командной строке работает а в программе - нет :(
Код:
#region Include
#NoTrayIcon
#include <GUIConstantsEx.au3>
Opt('TrayAutoPause', 0)
Opt("GUICloseOnESC", 0) ; Закрывать программы по нажатию на Esc. 1 - ДА, 0 - НЕТ
#endregion
 Local $msg, $IP_adress, $Password
 
#region Config
$Programm_handle=('ULTRA VNC Manager') ; Имя заголовка окна программы
$Version=("1.0") ; Версия программы
$EMail=("[email protected]") ; Описание для создания окна О программе
$Site=("http://vc.com/duero") ; Описание для создания окна О программе
$AboutText = ('Программа для удобного соединения с ULTRA VNC' & @CR & 'Специально для pashkovka')

$Prog_X_Coord = 300 ; Размеры окна по оси X
$Prog_Y_Coord = 150 ; Размеры окна по оси Y
#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)

;~ Кнопки

$Connection1 = GUICtrlCreateButton('Директор', 15, 10, 120, 25)
$Connection2 = GUICtrlCreateButton('Бухгалтер', 15, 40, 120, 25)
$Connection3 = GUICtrlCreateButton('Пользователь', 15, 70, 120, 25)

GUISetState() ;~ Завершение инициализации интерфейса программы.
#endregion

;~ Ниже идет описание действий при работе с интерфейсом.
$msg = 0
While $msg <> $GUI_EVENT_CLOSE
   $msg = GUIGetMsg()
    
#region Buttons
   Select

;~ Кнопки запуска программ
Case $msg = $Connection1
  $IP_adress = ('192.168.0.198')
  $Password = ('12345')
  _ConnectVNC()
  
Case $msg = $Connection2
  $IP_adress = ('127.0.0.1')
  $Password = ('1')
  _ConnectVNC() 
  
Case $msg = $Connection3
  $IP_adress = ('127.0.0.1')
  $Password = ('1')
  _ConnectVNC()
  
;~ Различные кнопки
      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
   Execute('vncviewer' & $IP_adress & ' /password ' & $Password)
EndFunc
#endregion

Операционка Windows 7
 
Автор
P

pashkovka

Новичок
Сообщения
18
Репутация
0
Duero
Спасибо! Всё работает отлично! :ok:
Как сделать две колонки скажем и чтоб выше кнопок было описание? Просто текст.
Если сделать то что вы предложили - это было бы просто идеально! Не могли бы помочь и в этом?
 

Duero

Новичок
Сообщения
14
Репутация
3
Кнопки и лейблы легко делаются. Подробнее читайте в мануале.
Сделал 2 колонки, делается это все заданием соответствующих координат каждому элементу

Вот выкладываю Вам переделанный и дописанный мною скрипт ULTIMATE VNC Manager by Duero
Есть возможность настройки программы
  • Во вкладке "Настройка" можно ввести IP адрес и пароль для каждого соединения
  • Пароли шифруются, поэтому узнать их никто не сможет
  • В самом интерфейсе программы пароли скрыты под "*" во избежания возможности "подсмотреть"

Прошу только авторство сохранить за мной :-[
Код:
#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


Содержимое файла настроек Config.ini
Код:
################################################################
#                                                              #
# Файл конфигурации Ultra VNC Manager                          #
#                                                              #
# Автор: Duero                                                 #
# http://vk.com/Duero                                          #
# [email protected]                                           #
#                                                              #
################################################################

[Config]

# Настройки первого соединения

# IP адрес. Указывается в настройках программы. Можно изменять текстовым редактором.
1_Connection_IP=127.0.0.1
# Пароль для доступа. Указывается исключительно в настройках программы! Идет шифрование данных.
1_Connection_Pass=092C7657

# Настройки второго соединения

# IP адрес. Указывается в настройках программы. Можно изменять текстовым редактором.
2_Connection_IP=127.0.0.1
# Пароль для доступа. Указывается исключительно в настройках программы! Идет шифрование данных.
2_Connection_Pass=092C7657

# Настройки третьего соединения

# IP адрес. Указывается в настройках программы. Можно изменять текстовым редактором.
3_Connection_IP=127.0.0.1
# Пароль для доступа. Указывается исключительно в настройках программы! Идет шифрование данных.
3_Connection_Pass=092C7657

# Настройки четвертого соединения

# IP адрес. Указывается в настройках программы. Можно изменять текстовым редактором.
4_Connection_IP=127.0.0.1
# Пароль для доступа. Указывается исключительно в настройках программы! Идет шифрование данных.
4_Connection_Pass=092C7657
 
Автор
P

pashkovka

Новичок
Сообщения
18
Репутация
0
Duero
Обязательно! Авторство за вами! Огромное спасибо! Как нибудь напишу статью - на тему удаленного управления и список программ, в том числе данный менеджер!
 
Верх