Что нового

Скрипт авто установки специализированной программы организации

Timerlan

Новичок
Сообщения
93
Репутация
0
Помогите пожалуйста я просто новичок в АвтоИТ тока начинаю изучать. Суть задачи в следующем нужно сделать скрипт для автоматической установки специализированной программы организации. описываю пошагово каждое окно.
1) Нужно запустить программу Setup.exe
2) Запускается окно там нужно нажать просто далее кнопка Button1
3)В следующем окне есть два поля Edit1 и Edit2 в Edit2 нужно вести название организации и потом нажать далее Button2
4)В следующем окне нужно нажать просто далее Button11
5)В следующем окне нужно выбрать режим установки там есть два пункта 1- Создать новую БД. 2 - Выбрать существующую БД. мне нужно выбрать вторую Button2 и потом нажать далее Button11
6)В шестом окне надо выбрать существующую базу там всплывает две базы мне нужно выбрать вторую вот в этот момент я постараюсь более понятно объяснить. получается там есть Edit4 и ComboBox1. ComboBox1 мне нужно нажать в первую очередь для того чтоб выбрать базу когда его нажимаешь там открываются две базы мне нужно выбрать 2, получается в Edit4 должна появится база. далее нам надо ввести пароль там есть Edit2 и Edit3 в Edit2 вводится имя пользователя но оно уже есть его не надо вводить, а в Edit3 надо ввести пароль oracle. Дальше нужно нажать далее Button2.
И все дальше уже пойдет установка программы.
Очень прошу помогите пожалуйста я просто пытался сам написать у меня Setup запускается, а дальше ни чего не проиходит. ((((
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Тебе нужно почитать справку по следующим командам:
Код:
send
controlsend
mouseclick
controlclick
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Я пробывал ставить Send({enter}) и ControlClick(' ', ' ', Button1) вот так примерно ну чет ваще ни какой реакции. Просто может быт я чет не так делаю из за этого помощи прошу
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
В той же справке есть пример автоматической установки winzip. Прочти его и сделай также, твоя задача не сильно трудней.
 

ynbIpb

Скриптер
Сообщения
399
Репутация
110
Timerlan, запили программу или дай доступ по удалёнке. Сделаю.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Timerlan
у меня Setup запускается, а дальше ни чего не проиходит.
Смотри примеры работы окон в справке, к примеру вот:

Код:
; Запуск блокнота
Run('notepad.exe')

; Ожидание максимум 5 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:Notepad]", "", 5) ; без таймаута (5) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Нажимаем кнопку Button1 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:1]', "main")

; Ожидание следующего окна
; Ожидание максимум 5 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:Notepad]", "", 5) ; без таймаута (5) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Два возможных варианта ввода текста
; ControlSend($hWnd, "", "[CLASS:Edit; INSTANCE:1]", "Название программы")
ControlSend($hWnd, "", "Edit1", "Название программы")
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Вот я написал скрипт но он почему то не работает. Запускается сам Setup и все дальше он не нажимает далее(((

код AutoIt
Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
; ПК ПВД
Run('Setup.exe')

; Ожидание максимум 20 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:Button]", "", 20) ; без таймаута (5) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Нажимаем кнопку Button1 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:1]', "main")

; Ожидание следующего окна
; Ожидание максимум 10 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:Button]", "", 20) ; без таймаута (20) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Два возможных варианта ввода текста
; ControlSend($hWnd, "", "[CLASS:Edit; INSTANCE:1]", "Название программы")
ControlSend($hWnd, "", "Edit2", "ЗКП")

; Нажимаем кнопку Button2 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:2]', "main")

; Ожидание следующего окна
; Ожидание максимум 10 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:PVD]", "", 10) ; без таймаута (10) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Нажимаем кнопку Button11 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:11]', "main")

; Ожидание следующего окна
; Ожидание максимум 10 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:PVD]", "", 10) ; без таймаута (10) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Нажимаем кнопку Button2 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:2]', "main")

; Ожидание следующего окна
; Ожидание максимум 10 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:PVD]", "", 10) ; без таймаута (10) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

; Нажимаем кнопку ComboBox1,Edit3,Button2 в окне, дескриптор которого получен ранее
ControlClick($hWnd, '', '[CLASS:ComboBox; INSTANCE:1]', "main")
ControlClick($hWnd, '', '[CLASS:Edit; INSTANCE:3]', "main")
ControlClick($hWnd, '', '[CLASS:Button; INSTANCE:2]', "main")

; Ожидание следующего окна
; Ожидание максимум 10 секунд до момента, когда оно станет существующим
$hWnd = WinWait("[CLASS:PVD]", "", 10) ; без таймаута (10) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.






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

Timerlan [?]
Запускается сам Setup и все
А что это за окно с классом Button ? Сильно сомневаюсь, что такое есть.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
лучше всего, если автор выложит au3info каждого шага инсталляции
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Timerlan

Код:
$hWnd = WinWait("[CLASS:Button]", "", 20) ; без таймаута (5) ожидание бесконечно
Вы ожидаете окно Button? Я понимаю что в теории Button тоже окно, но на практике Button это кнопка в окне. Скрин
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Я вот исправил вот так все равно ни че не делает дальше
Код:
$hWnd = WinWait("[CLASS:#32770]", "", 20) ; без таймаута (20) ожидание бесконечно


Вот Прилагаю скрин первого окна
a2f2a8d629fd.jpg
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Timerlan [?]
Вот Прилагаю скрин первого окна
1. не первого, а всех. иначе это может вылиться в долгую историю
2. скрины не обязательно. я бы даже сказал не желательно. достаточно заморозить autoit window info после наведения на соответствующий элемент и выложить текст.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Timerlan
Начнём с малого

Код:
Run('Setup.exe')

$hWnd = WinWait("ПК ПВД 2.9.2", "", 20)
; $hWnd = WinWait("[REGEXPCLASS:ПК ПВД.*]", "", 20) ; и так попробуй
If Not $hWnd Then
	MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
	Exit
Else
	MsgBox(0, 'Сообщение', 'Окно найдено, дескриптор: ' & $hWnd)
EndIf
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Пишет: Окно найдено, дескриптор 0x002D031E


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

Вот выкладываю скрины autoit window info пошагово куда нужно нажимать
1)
519c17cd9621.jpg
2)
27635c4aaa82.jpg
3)
924a70f396ab.jpg
4)
44816db5b10a.jpg
5)
34bab7cf80ae.jpg
6)
57acd5a9688b.jpg
7) тут нужно нажать сперва на ComboBox вылезуть две базы
d09d4428ecb8.jpg
8 ) Далее нужно выбрать 2 базу
87b4b0f829b3.jpg
9)
733a781f250c.jpg
10)
9c1c636aeb43.jpg
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Я все почти написал скрипт я запнулся на 7,8,9 пункте скринов не знаю как реализовать. Помогите плиззз
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Timerlan [?]
Я все почти написал
Код где?
Для ComboBox (7, 8 ) см. в справке ControlCommand() команды: ...'SetCurrentSelection', 1 или ...'SelectString', '2 база'.
Для 9 - ControlSetText().
 
Верх