Что нового

[Автоматизация] TightVNC

gdu

Новичок
Сообщения
20
Репутация
0
Задумался я об автоматизации TightVNC.
;Запустили программу! Run("C:\Temp\tightvnc-2.0.2-setup.exe /S")
вопрос возник в следующем?: Как ввести пароль при установке? собственно и самого скрипта еще нет, но буду благодарен если поделитесь навыками!!
Есть старый код: НО ОН МНЕ НЕ НРАВИТСЯ, работает он криво, хочу переписать его.

Код:
; назначение опций выполнения и переменных автоинсталлятора
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)
$pfiles = EnvGet("programfiles")
$app_name = ("Tight VNC 2.0.2 GDY 2014")
#RequireAdmin

; копирование установочных файлов во временную папку, распаковка архивов
DirCreate(@HomeDrive & "\temp")
SplashTextOn("Установка " & $app_name, @LF & "Происходит установка " & $app_name & @LF & "Пожалуйста, подождите..." & @LF & @LF & "- копирование файлов...", 500, 120)
FileInstall("D:\Autoit\source\Autoit TightVNC NEW\tightvnc-2.0.2-setup.exe", @HomeDrive & "\temp\tightvnc-2.0.2-setup.exe", 1)


Run("C:\Temp\tightvnc-2.0.2-setup.exe") ;Запустили программу!
$WinTitle = "TightVNC 2.0.2 Setup"
;1
WinWaitActive("TightVNC 2.0.2 Setup") ;Дожидаемся открытия
WinActivate("TightVNC 2.0.2 Setup") ;Избежание перекрытия другим окном
ControlClick($WinTitle, "", "TNewButton2")
Send("!N")
;2
WinWaitActive($WinTitle, "License Agreement") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "License Agreement") ; отключаем перекрытие другим окном
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем  I Agre
Send("{ENTER}")
;3
WinWaitActive($WinTitle, "Choose Components") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Choose Components") ; отключаем перекрытие другим окном
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Next
Send("{ENTER}")
;4
WinWaitActive($WinTitle, "Choose Install Location") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Choose Install Location") ; отключаем перекрытие другим окном
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Next
Send("{ENTER}")
;5
WinWaitActive($WinTitle, "Choose Start Menu Folder") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Choose Start Menu Folder") ; отключаем перекрытие другим окном
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Next
Send("{ENTER}")
;6 выбор установки пароля
WinWaitActive($WinTitle, "Select Additional Tasks") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Select Additional Tasks") ; отключаем перекрытие другим окном
Send("{TAB 4}")
;Send("{TAB}")
;Send("{TAB}")
;Send("{TAB}")
Send("{SPACE}")
Sleep(200)
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Next
Send("{ENTER}")
;7 ввод пароля для продолжения
WinWaitActive($WinTitle, "Service Configuration") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Service Configuration") ; отключаем перекрытие другим окном
Send("{TAB 3}")
Sleep(200)
Send("пароль")
Send("{TAB 1}")
Sleep(200)
Send("пароль")
Send("{TAB 2}")
Sleep(200)
Send("пароль")
Send("{TAB 1}")
Sleep(200)
Send("пароль")
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Install
Send("{ENTER}")
;8 окно после установки
WinWaitActive($WinTitle, "Installation Complete") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Installation Complete") ; отключаем перекрытие другим окном
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Next
Sleep(200)
Send("{ENTER}")
;9 Появляется окно с предложением перезагрузки или отмены и кнопка финиш
WinWaitActive($WinTitle, "Completing the TightVNC 2.0.2 Setup Wizard") ;дожидаемся открытия заголовка страницы
WinActivate($WinTitle, "Completing the TightVNC 2.0.2 Setup Wizard") ; отключаем перекрытие другим окном
Send("{TAB}")
Sleep(200)
Send("{SPACE}")
Sleep(200)
ControlClick($WinTitle, "", "TNewButton2") ; нажимаем Finish
;удаление временной папки
DirRemove(@HomeDrive & "\temp1", 1)
SplashOff()
MsgBox(64, "Установка " & $app_name, @LF & "Установка " & $app_name & " успешно завершена!")
Exit;
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
gdu
В пункте 9 разберитесь с перезагрузкой (у меня там никаких элементов нет)
Код:
#RequireAdmin

; назначение опций выполнения и переменных автоинсталлятора
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)

; копирование установочных файлов во временную папку, распаковка архивов
;~ FileInstall("D:\Autoit\source\Autoit TightVNC NEW\tightvnc-2.0.2-setup.exe", @TempDir & "\tightvnc-2.0.2-setup.exe", 1)


Run(@TempDir & "\tightvnc-2.0.2-setup.exe") ;Запустили программу!
$WinTitle = "TightVNC 2.0.2 Setup"
;1
WinWaitActive($WinTitle) ;Дожидаемся открытия
ControlClick($WinTitle, "", "Button2")
;2
WinWaitActive($WinTitle, "License Agreement") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем  I Agree
;3
WinWaitActive($WinTitle, "Choose Components") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;4
WinWaitActive($WinTitle, "Choose Install Location") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;5
WinWaitActive($WinTitle, "Choose Start Menu Folder") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;6 выбор установки пароля
WinWaitActive($WinTitle, "Select Additional Tasks") ;дожидаемся открытия заголовка страницы
ControlCommand($WinTitle, "Select Additional Tasks", "Button6", "Check")
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;7 ввод пароля для продолжения
WinWaitActive($WinTitle, "Service Configuration") ;дожидаемся открытия заголовка страницы
ControlSetText($WinTitle, "Service Configuration", "Edit1", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit2", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit3", "adminpass")
ControlSetText($WinTitle, "Service Configuration", "Edit4", "adminpass")
ControlClick($WinTitle, "", "Button2") ; нажимаем Install
;8 окно после установки
WinWaitActive($WinTitle, "Installation Complete") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;9 Появляется окно с предложением перезагрузки или отмены и кнопка финиш
WinWaitActive($WinTitle, "Completing the TightVNC 2.0.2 Setup Wizard") ;дожидаемся открытия заголовка страницы
;~ ControlCommand($WinTitle, "Select Additional Tasks", "Button?", "UnCheck") ; ???
ControlClick($WinTitle, "", "Button2") ; нажимаем Finish
MsgBox(64, "Установка " & $WinTitle, @LF & "Установка " & $WinTitle & " успешно завершена!")
;удаление установщика
FileDelete(@TempDir & "\tightvnc-2.0.2-setup.exe")
 

chymax3m

Новичок
Сообщения
26
Репутация
1
Если речь идёт об этой программе http://www.tightvnc.com/download.php, так там присутствует msi установщик поддерживающий кучу параметров командной строки для тихой установки с определенными настройками.
Более детально о поддерживаемых ключах можно прочитать здесь http://www.tightvnc.com/doc/win/TightVNC-installer-2.5.2.pdf

Если же речь о другой программе, то сперва попробуйте поискать штатные ключи установки, возможно таковы существуют.
 
Автор
G

gdu

Новичок
Сообщения
20
Репутация
0
InnI сказал(а):
gdu
В пункте 9 разберитесь с перезагрузкой (у меня там никаких элементов нет)
Код:
#RequireAdmin

; назначение опций выполнения и переменных автоинсталлятора
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)

; копирование установочных файлов во временную папку, распаковка архивов
;~ FileInstall("D:\Autoit\source\Autoit TightVNC NEW\tightvnc-2.0.2-setup.exe", @TempDir & "\tightvnc-2.0.2-setup.exe", 1)


Run(@TempDir & "\tightvnc-2.0.2-setup.exe") ;Запустили программу!
$WinTitle = "TightVNC 2.0.2 Setup"
;1
WinWaitActive($WinTitle) ;Дожидаемся открытия
ControlClick($WinTitle, "", "Button2")
;2
WinWaitActive($WinTitle, "License Agreement") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем  I Agree
;3
WinWaitActive($WinTitle, "Choose Components") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;4
WinWaitActive($WinTitle, "Choose Install Location") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;5
WinWaitActive($WinTitle, "Choose Start Menu Folder") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;6 выбор установки пароля
WinWaitActive($WinTitle, "Select Additional Tasks") ;дожидаемся открытия заголовка страницы
ControlCommand($WinTitle, "Select Additional Tasks", "Button6", "Check")
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;7 ввод пароля для продолжения
WinWaitActive($WinTitle, "Service Configuration") ;дожидаемся открытия заголовка страницы
ControlSetText($WinTitle, "Service Configuration", "Edit1", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit2", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit3", "adminpass")
ControlSetText($WinTitle, "Service Configuration", "Edit4", "adminpass")
ControlClick($WinTitle, "", "Button2") ; нажимаем Install
;8 окно после установки
WinWaitActive($WinTitle, "Installation Complete") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button2") ; нажимаем Next
;9 Появляется окно с предложением перезагрузки или отмены и кнопка финиш
WinWaitActive($WinTitle, "Completing the TightVNC 2.0.2 Setup Wizard") ;дожидаемся открытия заголовка страницы
;~ ControlCommand($WinTitle, "Select Additional Tasks", "Button?", "UnCheck") ; ???
ControlClick($WinTitle, "", "Button2") ; нажимаем Finish
MsgBox(64, "Установка " & $WinTitle, @LF & "Установка " & $WinTitle & " успешно завершена!")
;удаление установщика
FileDelete(@TempDir & "\tightvnc-2.0.2-setup.exe")
Это полностью мной написанный скрипт, без помощи форумов..у меня при установке появляется вопрос о перезагрузке!!!!
Или это как образец скрипта готового выложен?


Добавлено:
Сообщение автоматически объединено:

chymax3m сказал(а):
Если речь идёт об этой программе http://www.tightvnc.com/download.php, так там присутствует msi установщик поддерживающий кучу параметров командной строки для тихой установки с определенными настройками.
Более детально о поддерживаемых ключах можно прочитать здесь http://www.tightvnc.com/doc/win/TightVNC-installer-2.5.2.pdf

Если же речь о другой программе, то сперва попробуйте поискать штатные ключи установки, возможно таковы существуют.
Да,это именно та программа!!
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
gdu
Или это как образец
Это ваш скрипт, переделанный мною ;)
Полностью рабочий. Вам нужно только разобраться с опцией перезагрузки - включить или выключить.
 
Автор
G

gdu

Новичок
Сообщения
20
Репутация
0
InnI сказал(а):
gdu
Или это как образец
Это ваш скрипт, переделанный мною ;)
Полностью рабочий. Вам нужно только разобраться с опцией перезагрузки - включить или выключить.
Теперь понятно!!! гляну...Спасибо.
Появился новый вопрос, изменилась версия TightVNC до 2.8.5 и там немного изменились окна во время установки, количество кнопок и тд...
Как вы определяли кнопки? поля для ввода? через Au3info.exe?
Вот новый скрипт для версии 2.8.5 есть загвостки!!!! указал в комментариях к скрипту.И в скрипте не реализована возможность установки поверх другой версии.. или переустановки,
Код:
#RequireAdmin

; назначение опций выполнения и переменных автоинсталлятора
Opt("TrayIconDebug", 1)
Opt("WinWaitDelay", 0)

; копирование установочных файлов во временную папку, распаковка архивов
 FileInstall("C:\Users\admin\Desktop\тихая установка vnc\Autoit TightVNC NEW Рабочий вариант\TightVNC 2.8.5\tightvnc-2.8.5-gpl-setup-64bit.msi", @TempDir & "\tightvnc-2.8.5-gpl-setup-64bit.msi", 1)


Run(@TempDir & "\tightvnc-2.8.5-gpl-setup-64bit.msi") ;Запустили программу!
$WinTitle = "TightVNC Setup"
sleep(500)
;1
WinWaitActive($WinTitle) ;Дожидаемся открытия TightVNC Setup ПРОБЛЕМЫ ТУТ!!! НЕ ВЫБИРАЕТ НЫЖНЫЕ ПАРАМЕТ
ControlClick($WinTitle, "", "Button1") ; нажимаем  Next
sleep(500)
;2
WinWaitActive($WinTitle, "End-User License Agreement") ;дожидаемся открытия заголовка страницы End-User License Agreement
ControlClick($WinTitle, "", "Button1") ; нажимаем  I Agree
sleep(500)
;3
WinWaitActive($WinTitle, "End-User License Agreement") ;дожидаемся открытия заголовка страницы End-User License Agreement
ControlClick($WinTitle, "", "Button4") ; нажимаем Next
sleep(500)
;4
WinWaitActive($WinTitle, "Choose Setup Type") ;дожидаемся открытия заголовка страницы Choose Setup Type
ControlClick($WinTitle, "", "Button3") ; нажимаем Next
sleep(500)
;5
WinWaitActive($WinTitle, "Select Additional Tasks") ;дожидаемся открытия заголовка страницы Select Additional Tasks
ControlClick($WinTitle, "", "Button6") ; нажимаем Next
sleep(500)
;6
WinWaitActive($WinTitle, "Ready to install TightVNC") ;дожидаемся открытия заголовка сReady to install TightVNC
ControlClick($WinTitle, "", "Button1") ; нажимаем Next
sleep(500)

;7 выбор установки пароля
WinWaitActive($WinTitle, "TightVNC Server: Set Passwords") ;дожидаемся открытия заголовка страницы TightVNC Server: Set Passwords ПРОБЛЕМЫ ТУТ!!! НЕ ВЫБИРАЕТ НЫЖНЫЕ ПАРАМЕТ
ControlCommand($WinTitle, "Select Additional Tasks", "Button4", "Check")
ControlCommand($WinTitle, "Select Additional Tasks", "Button8", "Check")
;ControlClick($WinTitle, "", "Button9") ; нажимаем Next
sleep(500)

;8 ввод пароля для продолжения
WinWaitActive($WinTitle, "TightVNC Server: Set Passwords") ;дожидаемся открытия заголовка страницы TightVNC Server: Set Passwords ПРОБЛЕМЫ ТУТ!!! НЕ ВЫБИРАЕТ НЫЖНЫЕ ПАРАМЕТРЫ
ControlSetText($WinTitle, "Service Configuration", "Edit1", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit2", "pass")
ControlSetText($WinTitle, "Service Configuration", "Edit3", "adminpass")
ControlSetText($WinTitle, "Service Configuration", "Edit4", "adminpass")
ControlClick($WinTitle, "", "Button9") ; нажимаем Install
sleep(500)

;9 окно после установки
WinWaitActive($WinTitle, "Completed the TightVNC Setup Wizard") ;дожидаемся открытия заголовка страницы
ControlClick($WinTitle, "", "Button1") ; нажимаем Next
;--------------------------------тут завершил
;10 Появляется окно с предложением перезагрузки или отмены и кнопка финиш
;WinWaitActive($WinTitle, "Completing the TightVNC 2.0.2 Setup Wizard") ;дожидаемся открытия заголовка страницы

;~ ControlCommand($WinTitle, "Select Additional Tasks", "Button?", "UnCheck") ; ???
ControlClick($WinTitle, "", "Button2") ; нажимаем Finish
MsgBox(64, "Установка " & $WinTitle, @LF & "Установка " & $WinTitle & " успешно завершена!")
;удаление установщика
FileDelete(@TempDir & "\tightvnc-2.8.5-gpl-setup-64bit.msi")
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
gdu
"TightVNC Server: Set Passwords" - это заголовок окна, а не текст окна.
 
Автор
G

gdu

Новичок
Сообщения
20
Репутация
0
InnI сказал(а):
gdu
"TightVNC Server: Set Passwords" - это заголовок окна, а не текст окна.
Это от безысходности поставил, не определяет окно и все!!!
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
gdu
Дело в том, что окно "TightVNC Server: Set Passwords" не принадлежит установщику. Это окно процесса tvnserver.exe, запущенного от имени системы. Поэтому скрипт, даже с правами администратора, не сможет управлять элементами этого окна. Более того, при активном окне ввода пароля, скрипт даже курсор мыши переместить не сможет. Единственный выход - запускать скрипт от имени системы - через планировщик или с помощью специальных утилит типа PsExec.
 
Автор
G

gdu

Новичок
Сообщения
20
Репутация
0
InnI сказал(а):
gdu
Дело в том, что окно "TightVNC Server: Set Passwords" не принадлежит установщику. Это окно процесса tvnserver.exe, запущенного от имени системы. Поэтому скрипт, даже с правами администратора, не сможет управлять элементами этого окна. Более того, при активном окне ввода пароля, скрипт даже курсор мыши переместить не сможет. Единственный выход - запускать скрипт от имени системы - через планировщик или с помощью специальных утилит типа PsExec.
Это пакет Msi я его пытаюсь запускать с параметрами, но он не хочет нив какую запускаться!!!! где у меня ошибка, помогите...
Код:
#RequireAdmin
#include <GUIConstants.au3>
$temp_path = ("c:\temp\")

;[email protected] &' C:\Users\admin\Desktop\запуск оцс в зависимости от разрядности системы\autoit_OCS Agent - XP 4.0.5.4.exe'  ;путь к установке для х86
[email protected] &' C:\Users\admin\Desktop\тихая установка vnc\Autoit TightVNC NEW Рабочий вариант\TightVNC 2.8.5\tightvnc-2.8.5-gpl-setup-64bit.msi'  ;путь к установке для х64
; и т.д. пути для всех пакетов установки
DirCreate ($temp_path)
;FileInstall ("C:\Users\admin\Desktop\запуск оцс в зависимости от разрядности системы\autoit_OCS Agent - XP 4.0.5.4.exe", $temp_path&"\autoit_OCS Agent - XP 4.0.5.4.exe", 1)
FileInstall ("C:\Users\admin\Desktop\тихая установка vnc\Autoit TightVNC NEW Рабочий вариант\TightVNC 2.8.5\tightvnc-2.8.5-gpl-setup-64bit.msi", $temp_path&"tightvnc-2.8.5-gpl-setup-64bit.msi", 1)


;If @OSArch = "X64" Then
   sleep("1000")
   RunWait ($temp_path&'\msiexec /i "' & @ScriptDir & '\tightvnc-2.8.5-gpl-setup-64bit.msi" /norestart
   SET_USEVNCAUTHENTICATION=1 VALUE_OF_USEVNCAUTHENTICATION=1 SET_PASSWORD=1 VALUE_OF_PASSWORD=mainpass SET_VIEWONLYPASSWORD=1 VALUE_OF_VIEWONLYPASSWORD=viewpass SET_USECONTROLAUTHENTICATION=1 VALUE_OF_USECONTROLAUTHENTICATION=1 SET_CONTROLPASSWORD=1 VALUE_OF_CONTROLPASSWORD=admpass')
    ;......................
    ;Run($Office86)
    ;.....................


;;;Else
   sleep("1000")
    ;RunWait ($temp_path&"\tightvnc-2.8.5-gpl-setup-64bit.msi")
	;......................
    ;......................


;EndIf
sleep(2500)
;DirRemove ($temp_path, 1)



;удаление временной папки
DirRemove ($temp_path, 1)
SplashOff ()


;удаление временной папки
;DirRemove ($temp_path, 1)
 

InnI

AutoIT Гуру
Сообщения
4 239
Репутация
1 123
gdu
Код:
RunWait('msiexec.exe /i "' & $temp_path & 'tightvnc-2.8.5-gpl-setup-64bit.msi" /quiet /norestart SET_USEVNCAUTHENTICATION=1 VALUE_OF_USEVNCAUTHENTICATION=1 SET_PASSWORD=1 VALUE_OF_PASSWORD=mainpass SET_VIEWONLYPASSWORD=1 VALUE_OF_VIEWONLYPASSWORD=viewpass SET_USECONTROLAUTHENTICATION=1 VALUE_OF_USECONTROLAUTHENTICATION=1 SET_CONTROLPASSWORD=1 VALUE_OF_CONTROLPASSWORD=admpass')
 
Верх