Автор Тема: Автоматическая установка adguard  (Прочитано 6299 раз)

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

Оффлайн Fergus [?]

  • Новичок
  • *
  • Сообщений: 11
  • Репутация: 0
    • Награды
Помогите решить проблему с установкой, не могу понять где ошибка, вот часть кода:
Код: AutoIt [Выделить]
Func zapusk_programm()
$iCheck = 0
$sMessage = ''
$iPid = Run('D:\Новая папка\ATF-Cleaner\adguardInstaller.exe')
$hWin = WinWait('[Title:Adguard - загрузка компонента; Class:#32770]', '', 3)
If Not $hWin Then
    MsgBox(16, 'Error', 'Нет окна :(')
    If ProcessExists($iPid) Then ProcessClose($iPid)
    Exit -33
 EndIf
$hProgress = ControlGetHandle($hWin, '', '[CLASS:msctls_progress32; INSTANCE:1]')
$iStart = TimerInit()
While $iCheck < 100
    $iCheck = _SendMessage($hProgress, $PBM_GETPOS)
    ConsoleWrite(StringFormat('%d%', $iCheck) & @LF)
    Sleep(500)
    If TimerDiff($iStart) > 200000 Then ExitLoop
WEnd
If $iCheck < 100 Then
    MsgBox(16, 'Error', 'Не дождались окончания установки :(')
    WinClose($hWin)
    Exit -77
 EndIf
 ControlClick($hWin, 'Д&алее', '[CLASS:Button; INSTANCE:1]')


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

Автоматическая установка adguard
« Отправлен: Апрель 15, 2012, 21:07:15 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2688
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическая установка adguard
« Ответ #1, Отправлен: Апрель 15, 2012, 23:40:19 »
Fergus
а в чем проблема то? что за ошибка выпадает или где не срабатывает?
почему у тебя таймаут ожидания окна три секунды? не мало ли?
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Fergus [?]

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

  • Автор темы
  • Репутация: 0
    • Награды
Re: Автоматическая установка adguard
« Ответ #2, Отправлен: Апрель 16, 2012, 09:36:51 »
Ошибка связана с переменной:
Line 24(...)
$iCheck=_SendMessage($hProgress, $PBM_GETPOS)
$iCheck=_SendMessage($hProgress, ^ERROR
Error: Variable used without being declared
Код: AutoIt [Выделить]
ControlClick($hWin, 'Д&алее', '[CLASS:Button; INSTANCE:1]')

Кнопку "Далее" не нажимает.
Насчет таймаута, запуск установки происходит моментально, так что вроде 3 секунд достаточно. А вот дальше идет задержка, причем большая(качает с интернета файлы, скорость соединения не большая). Потом, кнопка "Далее" неактивна, опять задержка правда не большая.
« Последнее редактирование: Апрель 16, 2012, 10:34:20 от Fergus »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Автоматическая установка adguard
« Ответ #3, Отправлен: Апрель 16, 2012, 10:50:30 »
Fergus  [?]
Цитировать
Ошибка связана с переменной
Вы, если копируете код, то копируйте весь. У Вас есть в начале скрипта эти строки?
Код: AutoIt [Выделить]
#include <ProgressConstants.au3>
#include <SendMessage.au3>


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

Re: Автоматическая установка adguard
« Ответ #3 Отправлен: Апрель 16, 2012, 10:50:30 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2688
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическая установка adguard
« Ответ #4, Отправлен: Апрель 16, 2012, 13:33:05 »
  [?]
Цитировать
$iCheck=_SendMessage($hProgress, $PBM_GETPOS)
$iCheck=_SendMessage($hProgress, ^ERROR
Error: Variable used without being declared
Fergus, ну так вроде ясно написано что ты не "объявил" ее, переменную 
Код: AutoIt [Выделить]
$PBM_GETPOS

в локальных ее нет, значит она глобальная..значит объяви ее вначале скрипта\
по
Код: AutoIt [Выделить]
смотри еще раз справку
первый параметр: заголовок окна
второй: текст (можно пустые кавычки)
третий: объект, по которому кликаешь.
плюс порой мало дождаться появления окна, нужно дождаться его активности или сделать активным, потом кликать.
пример на форуме по автоустановке достаточно..
вот пример кликанья по чужому окну http://autoit-script.ru/index.php/topic,8921.msg59973.html#msg59973
по
Код: AutoIt [Выделить]
опять читай справку
Цитировать
Возвращает дескриптор указанного окна.
Ошибка:   Возвращает 0, если выход по тайм-ауту.
в твоем случае возвращает нуль..не нужен тайм-аут.
а может лучше использовать
Код: AutoIt [Выделить]
« Последнее редактирование: Апрель 16, 2012, 13:54:36 от Александр »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Автоматическая установка adguard
« Ответ #5, Отправлен: Апрель 16, 2012, 14:13:28 »
Александр  [?]
Цитировать
в твоем случае возвращает нуль..не нужен тайм-аут.
Почему Вы так решили? Это не так.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2688
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Автоматическая установка adguard
« Ответ #6, Отправлен: Апрель 16, 2012, 14:23:49 »
madmasles
я согласен с любым указанием на ошибку в моих выводах. мои познания весьма скромны..только хочется услышать и пояснения.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2317
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: Автоматическая установка adguard
« Ответ #7, Отправлен: Апрель 16, 2012, 14:29:44 »
Александр,
Если бы функция WinWait вернула 0, то до строки 24 скрипт бы не дошел, а выдал сообщение и выход с кодом -33.

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

Re: Автоматическая установка adguard
« Ответ #7 Отправлен: Апрель 16, 2012, 14:29:44 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
16721 Просмотров
Последний ответ Январь 31, 2012, 16:44:25
от snoitaleR
26 Ответов
13315 Просмотров
Последний ответ Апрель 05, 2014, 16:07:30
от Mancoffee
1 Ответов
5326 Просмотров
Последний ответ Июль 15, 2011, 11:17:40
от snoitaleR
4 Ответов
4307 Просмотров
Последний ответ Март 13, 2013, 15:42:04
от InnI
4 Ответов
4723 Просмотров
Последний ответ Апрель 11, 2013, 12:03:36
от ildar
6 Ответов
7586 Просмотров
Последний ответ Октябрь 18, 2013, 16:46:20
от Vovsla
0 Ответов
4571 Просмотров
Последний ответ Сентябрь 03, 2013, 16:11:53
от alex33
0 Ответов
6590 Просмотров
Последний ответ Декабрь 05, 2013, 14:53:00
от saturnus
13 Ответов
4350 Просмотров
Последний ответ Март 07, 2015, 18:33:47
от AZJIO
0 Ответов
226 Просмотров
Последний ответ Ноябрь 25, 2017, 01:13:01
от Kuznec