Автор Тема: [Автоматизация] Установка CCleaner 4.03 средствами AutoIT  (Прочитано 8496 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Kolunt [?]

  • Новичок
  • *
  • Сообщений: 13
  • Репутация: 0
  • Пол: Мужской
    • Награды
Предпредисловие:

Начал интересоваться AutoIT`шничеством около недели назад, для теста выбрал пару стандартных программ, которые мы устанавливаем на работе. Одна из них - CCleaner v.4.03.
Почитав слегка мануалы, пришёл к выводу, что стоит начать с Send, чтобы по крайней мере получить некое представление о данной среде.
Ну и оператор Sleep("100"), так как меня просто радует анимация того, как программа устанавливается сама  :D

Но вот с CCleaner началась проблема. Скачать можно здесь: ссылка:http://www.piriform.com/ccleaner/download/standard [nonactive]

В какой-то момент в установке он предлагает установить Chrome и Toolbar. И там команда Send('[Tab}') не работает. Мечется между "Назад" и "Установить"



Тут я понял, что галочки надо снимать с помощью команды ControlClick по координатам.

ControlClick ( "title", "text", controlID [, button [, clicks [, x [, y]]]] )

 AutoIT Info показал вот это:

>>>> Window <<<<
Title: Установка CCleaner v4.03
Class: #32770
Position: 358, 210
Size: 503, 389
Style: 0x94CA084C
ExStyle: 0x00010100
Handle: 0x000A0268
>>>> Control <<<<
Class: Internet Explorer_Server
Instance: 1
ClassnameNN: Internet Explorer_Server1
Name:
Advanced (Class): [CLASS:Internet Explorer_Server; INSTANCE:1]
ID:
Text:
Position: 23, 73
Size: 450, 228
ControlClick Coords: 30, 165
Style: 0x56000000
ExStyle: 0x00000000
Handle: 0x000602A2
>>>> Mouse <<<<
Position: 414, 473
Cursor ID: 0
Color: 0xFFFFFF
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
< &Назад
&Установить
ссылка:http://www.piriform.com [nonactive]
ссылка:http://www.piriform.com [nonactive]
Дополнительные параметры

>>>> Hidden Text <<<<
Отмена
Параметры установки
Дополнительно


Ввиду того, что AutoIT Info распознаёт данный элемент как единый, не отличая чекбоксов, button прописать не смог. А ControlID просто не нашёл в Info. В итоге получился вот такой "урезок"  :)

Код: AutoIt [Выделить]
ControlClick('Уcтановка CCleaner v4.03' [, clicks [, 30 [, 165]]])


При запуске скрипта установка доходит до момента, когда нужно убрать чекбоксы Google курсор устанавливает в центр окна и через несколько секунд выдаётся ошибка:

Цитировать
Line 44 (File "c:\Users\AutoIT\Desktop\AutoIT\CCleaner.exe"):

Error: Error parsing function call.


Вот полный код:

Код: AutoIt [Выделить]
;Установка CCleaner v4.03 средствами AutoIT
Run('C:\Users\AutoIT\Downloads\ccsetup403.exe')
WinWaitActive ('CCleaner v4.03 Setup', "Welcome to the CCleaner v4.03 Setup")
Sleep('3000')
Send("{Tab}")
Sleep("100")
Send("{Tab}")
Sleep("100")
Send("{Tab}")
Sleep("100")
Send("{Р}")
Sleep("500")
Send("{Enter}")
WinWaitActive ('Установка CCleaner v4.03', "Вас приветствует мастер установки CCleaner v4.03")
Sleep("100")
Send('{Enter}')
WinWaitActive("Установка CCleaner v4.03", "Параметры установки")
Sleep("1000")
Send("{Tab}")
Sleep("100")
Send("{Tab}")
Sleep("100")
Send("{Space}")
Sleep("100")
Send("{Down}")
Sleep("100")
Send("{Down}")
Sleep("100")
Send("{Space}")
Sleep("100")
Send("{Down}")
Sleep("100")
Send("{Space}")
Sleep("100")
Send("{Down}")
Sleep("100")
Send("{Space}")
Sleep("100")
Send("{Tab}")
Sleep("100")
Send("{Tab}")
Sleep("1000")
Send("{Enter}")
Sleep("3000")
ControlClick('Уcтановка CCleaner v4.03' [, clicks [, 131 [, 167]]])
Exit
 



Как видно, в 44 строке ничего особенного нет.

Был бы признателен за любую помощь  :IL_AutoIt_1:

Русское сообщество AutoIt


Оффлайн SyDr [?]

  • Локальный модератор
  • *
  • Сообщений: 649
  • Репутация: 157
  • Пол: Мужской
  • Сидра
    • Награды
  • Версия AutoIt: 3.3.12.0
Эм... Ничего особенного? Во первых, вместо clicks должно стоять конкретное число, а во вторых квадратные скобки не нужны при вызове функции.
Код: AutoIt [Выделить]
ControlClick('Уcтановка CCleaner v4.03', 1, 131, 167)


Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
Kolunt  [?]
Цитировать
Был бы признателен за любую помощь
Код: AutoIt [Выделить]
#RequireAdmin
Opt("MouseCoordMode", 2)

Run("C:\Users\AutoIT\Downloads\ccsetup403.exe")
WinWaitActive("CCleaner", "Welcome")
ControlClick("CCleaner", "", "Button2")
WinWaitActive("CCleaner", "Install Options")
ControlClick("CCleaner", "", "Button5")
;~ ControlClick("CCleaner", "", "Button6")
ControlClick("CCleaner", "", "Button7")
ControlClick("CCleaner", "", "Button8")
ControlClick("CCleaner", "", "Button9")
If ControlGetText("CCleaner", "", "Button2") = "&Next >" Then
  ControlClick("CCleaner", "", "Button2")
  WinWaitActive("CCleaner", "&Install")
  MouseClick("primary", 54, 240, 1, 0)
  MouseClick("primary", 54, 260, 1, 0)
  ControlClick("CCleaner", "", "Button2")
Else
  ControlClick("CCleaner", "", "Button2")
EndIf
WinWaitActive("CCleaner", "Completing")
ControlClick("CCleaner", "", "Button5")
ControlClick("CCleaner", "", "Button6")
ControlClick("CCleaner", "", "Button2")


Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
если цель тренировка, то можно
а если нужна тихая установка, то для этой программы есть ключ установки
ccsetup403.exe /S
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: [Автоматизация] Установка CCleaner 4.03 средствами AutoIT
« Ответ #3 Отправлен: Июль 16, 2013, 22:34:26 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
joiner  [?]
Цитировать
если нужна тихая установка, то для этой программы есть ключ установки
Использование данного ключа означает согласие с опциями по умолчанию. В итоге пользователь получит и Google Chrome и Панель. На сколько я понял, как раз этого и требуется избежать. К тому же, судя по коду Kolunt, при установке должны быть отключены некоторые опции. Поэтому тихая установка, я думаю, не подходит.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
InnI
таких опций вообще нет в установке.
на скринах видно, что при установке программы только два окна. и ничего из вышеописанного нет
« Последнее редактирование: Июль 17, 2013, 13:37:49 от joiner »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
joiner  [?]
Цитировать
таких опций вообще нет в установке
При отказе от установки браузера и панели данные действия сохраняются в реестре
[HKEY_LOCAL_MACHINE\SOFTWARE\Google\No Toolbar Offer Until]
"Piriform Ltd"=dword:01335055
[HKEY_LOCAL_MACHINE\SOFTWARE\Google\No Chrome Offer Until]
"Piriform Ltd"=dword:01335055
и при следующей (пере)установке не отображаются. После удаления данных ключей появится дополнительная вкладка.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
в таком случае. перед установкой внести запись в реестр и применить ключ тихой установки. это надежнее чем кликальщик.
можно распаковать программу установки через 7zip . вытащить нужные файлы и сделать самому инсталятор

Русское сообщество AutoIt

Re: [Автоматизация] Установка CCleaner 4.03 средствами AutoIT
« Ответ #7 Отправлен: Июль 17, 2013, 13:29:56 »

Оффлайн Kolunt [?]

  • Новичок
  • *
  • Сообщений: 13

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
SyDr, спасибо за мини ликбез по ControlClick, но просто 44-ая строка это последний Send('{Enter') :)

InnI, большое спасибо за данный скриптик, сейчас буду сидеть и разбирать его по частям.. Чтобы понять принцип действия :)

joiner, пока что именно тренировка, но спасибо за инфу, буду знать  :whistle:


Добавлено: Июль 17, 2013, 14:45:56
joiner, у меня на основной машине уже установлен Chrome и тоже данное окошко не предлагается. А вот на чистой виртуалке (там, где нет Chrome) предлагается.
« Последнее редактирование: Июль 17, 2013, 14:45:56 от Kolunt, Причина: Объединение сообщений »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Kolunt
я уже писал выше, что можно перед установкой сделать запись в реестр.
или перепаковать программу.

Оффлайн Kolunt [?]

  • Новичок
  • *
  • Сообщений: 13

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Joiner, в общем да. По логике можно избежать данного рекламного предложения, занеся в реестр соответствующую запись. Но решение Inni мне показалось более элегантным :)

Код: AutoIt [Выделить]
If ControlGetText("CCleaner", "", "Button2") = "&Next >" Then
  ControlClick("CCleaner", "", "Button2")
  WinWaitActive("CCleaner", "&Install")
  MouseClick("primary", 54, 240, 1, 0)
  MouseClick("primary", 54, 260, 1, 0)
  ControlClick("CCleaner", "", "Button2")
Else
  ControlClick("CCleaner", "", "Button2")
EndIf


Inni, если не затруднит, объясни пожалуйста несколько моментов:

1. Вот в этом моменте
Код: AutoIt [Выделить]
MouseClick("primary", 54, 240, 1, 0)

primary - означает, что в зависимости от настроек пользователя клик будет левой или правой кнопкой, верно?
54, 240 - Где ты взял эти координаты?:) Облазял всё AutoIT Info, но не нашёл даже приблизительно похожих цифр :)
1 - видимо означает один клик
0 - Скорость перемещения курсора (максимальная)

2.
Код: AutoIt [Выделить]
Opt("MouseCoordMode", 2)


FAQ прочитал, но можно своими словами: какие координаты он берёт? Самой программы?

Оффлайн atlake [?]

  • Новичок
  • *
  • Сообщений: 40
  • Репутация: 0
  • Пол: Мужской
    • Награды
OffTopicInnI  [?]
Цитировать
данные действия сохраняются в реестре
Какой программой пользовались для определения что и куда записывает/читает программа установки?
ушел на другой яп

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2810
  • Репутация: 473
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Kolunt  [?]
Цитировать
мне показалось более элегантным
если не забросишь программирование, то через время поймешь, что все как раз наоборот и по элегантности и по точности и по эффективности  :)

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
Kolunt  [?]
Цитировать
primary - означает, что в зависимости от настроек пользователя клик будет левой или правой кнопкой, верно?
Верно.
Цитировать
54, 240 - Где ты взял эти координаты?
На вкладке Mouse. Но сначала нужно переключить режим отсчёта координат "Options - Coord Mode - Client".
Цитировать
1 - видимо означает один клик
0 - Скорость перемещения курсора (максимальная)
Верно.
Цитировать
какие координаты он берёт?
Координаты относительно клиентской области активного окна.

OffTopicatlake  [?]
Цитировать
Какой программой пользовались для определения что и куда записывает/читает программа установки?
Редактором реестра. Искал "piriform" - нашёл google :)

Оффлайн Kolunt [?]

  • Новичок
  • *
  • Сообщений: 13

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
joiner, не исключаю этого :) Спасибо за ответы :)

Inni, спасибо за ликбез, не успел ещё разобраться с координатами, но в ближайшее время займусь этим  :laugh:

Русское сообщество AutoIt

Re: [Автоматизация] Установка CCleaner 4.03 средствами AutoIT
« Ответ #14 Отправлен: Июль 19, 2013, 12:03:21 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
4550 Просмотров
Последний ответ Апрель 06, 2011, 11:57:07
от forfrends
8 Ответов
11020 Просмотров
Последний ответ Июль 05, 2011, 09:27:06
от Kaster
0 Ответов
2111 Просмотров
Последний ответ Июнь 30, 2011, 17:28:12
от CreatoR
2 Ответов
3215 Просмотров
Последний ответ Июнь 21, 2012, 12:07:13
от svigelf
0 Ответов
1750 Просмотров
Последний ответ Июнь 24, 2013, 22:05:59
от Jan-Jak
0 Ответов
1653 Просмотров
Последний ответ Июль 16, 2013, 18:43:59
от madmasles
13 Ответов
12225 Просмотров
Последний ответ Декабрь 02, 2013, 10:46:39
от Futurebear
1 Ответов
3380 Просмотров
Последний ответ Декабрь 05, 2013, 12:50:13
от InnI
21 Ответов
25478 Просмотров
Последний ответ Август 03, 2016, 05:40:22
от SharkyEXE
0 Ответов
754 Просмотров
Последний ответ Январь 15, 2016, 08:30:21
от akoulev