Что нового

[Автоматизация] 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,912
Репутация
1,429
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,912
Репутация
1,429
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,912
Репутация
1,429
gdu
"TightVNC Server: Set Passwords" - это заголовок окна, а не текст окна.
 
Автор
G

gdu

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

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
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\")

;$ocs86=@ScriptDir &' C:\Users\admin\Desktop\запуск оцс в зависимости от разрядности системы\autoit_OCS Agent - XP 4.0.5.4.exe'  ;путь к установке для х86
$ocs64=@ScriptDir &' 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,912
Репутация
1,429
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')
 
Верх