Автор Тема: Закрытие всплывающего окна подтверждения  (Прочитано 536 раз)

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

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Solid_Rio [?]

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

Описание: Есть программа, которую необходимо перезапускать каждые 2 часа. При запуске необходимо подтвердить всплывающее окно. Необходимо сделать процесс автоматическим.

(нажмите для показа/скрытия)

Примечания:  Пытался построить перезапуск с помощью сторонних программ (типо планировщика в вин7, xStarter и тд) по той причине, что работаю в сфере промышленной автоматизации и не сильно понимаю в IT. Все получилось - кроме подтверждения данного окна. Все используемые мною программы имели имитацию кнопок и нажатия ЛКМ и возможность закрытия необходимого окна, но из всех сработала только одна Auto keyboard by Murgee(имитировал нажатие клавиши ENTER), но она платная. Наткнулся на данный форум. Нашел похожую тему: http://autoit-script.ru/index.php?topic=12426.0 Но все советы и скрипт указанный там мне не помог.
(нажмите для показа/скрытия)
Пытался и ENTER отправлять и через совет из той темы - WinClose - ничего не помогло. Надеюсь вы мне подскажите как победить данное окно.
« Последнее редактирование: Июнь 27, 2018, 05:45:40 от Solid_Rio »

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

Закрытие всплывающего окна подтверждения
« Отправлен: Июнь 26, 2018, 11:02:29 »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1419
  • Репутация: 177
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
HotKeySet('{Esc}', '_Exit')
AdlibRegister('_CloseWin', 500)

While 1
    Sleep(500)
WEnd

Func _CloseWin()
    Local $h_Win = WinActivate("Time Limited License Agreement")
    If Not $h_Win Then Return
    ControlClick($h_Win, "", "Button1")
EndFunc   ;==>_CloseWin
Func _Exit()
    Exit
EndFunc   ;==>_Exit



Добавлено: Июнь 26, 2018, 16:13:09
Отредактируй свое сообщение выдели то, что под спойлером между этими тегами [code]
 
[/code] И свой скрипт тоже выдели тегами [autoit]

[/autoit]

Оффлайн Solid_Rio [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
(нажмите для показа/скрытия)

Пробовал данный вариант, еще в качестве предложения из темы указанной в первом посте, не работает. Окно становится активным, кнопка ОК подсвечивается синим, но нажатия не происходит. Данное окно какое-то необычно, ибо, как я указывал в первом посте, все программы имитации нажатия клавиш клавиатуры/кликов мыши/команд закрытия окна (кроме одной, о которой я говорил) не работают на данное окно.  :(

Хм... Может быть это полезная информация, но сама программа, которая выдает это окно требует включения функции "Управления учетными записями пользователей" в вин7 - по умолчанию. И соответственно на ярлыке данной программы синий щит и уведомление о подтверждения запуска данной программы. Изначально, когда я строил перезапуск программы - это было для меня препятствием, но обошел по советам из гугла через планировщик заданий и пару команд в бат файле. Собственно, к чему это я, быть может необходимо наделить команду в скрипте какими-то правами?
« Последнее редактирование: Июнь 27, 2018, 06:09:43 от Solid_Rio »

Помечен как лучший ответ пользователем Solid_Rio Отправлен Июнь 27, 2018, 10:42:00

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1419
  • Репутация: 177
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
А если в начале скрипта написать?

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

Re: Закрытие всплывающего окна подтверждения
« Ответ #3 Отправлен: Июнь 27, 2018, 07:29:56 »

Оффлайн Solid_Rio [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Код: AutoIt [Выделить]
А если в начале скрипта написать?
И.... Заработало! Спасибо  :)

Мой конечный скрипт, быть может кто-нибудь столкнется с похожей проблемой и он, как я в свое время, наткнется на данную тему.
(нажмите для показа/скрытия)

Простите за оффтопП.с. Понравилось использовать скрипты Autoit, никогда не сталкивался с таким. Возник вопрос. Могу ли я реализовать скрипт(я уже описывал выше), который будет висеть в ожидании, при старте определенной программы он начинает отсчитывать 7190 секунд, закрывает 2 программы по истечении времени (в случае, если программа была закрыта до истечения времени - возвращаться в режим ожидания со сбросом таймера), и открывает их заново с использованием части кода, который уже есть в этой теме. На данный момент я делаю это с помощью стороннего планировщика, но хотелось бы попробовать в скрипт autoit. Если это возможно, то где я могу спросить помощи, в этой теме или создать новую?

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1419
  • Репутация: 177
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Цитировать
Понравилось использовать скрипты Autoit, никогда не сталкивался с таким.
Да, это мощная штука.
Цитировать
Могу ли я реализовать скрипт(я уже описывал выше), который будет висеть в ожидании, при старте определенной программы он начинает отсчитывать 7190 секунд, закрывает 2 программы по истечении времени (в случае, если программа была закрыта до истечения времени - возвращаться в режим ожидания со сбросом таймера), и открывает их заново с использованием части кода, который уже есть в этой теме.
Цитировать
в этой теме или создать новую?
Лучше в новой. Но я уже подготовил ответ:
Код: AutoIt [Выделить]
#RequireAdmin ; запрос прав администратора
HotKeySet('{Esc}', '_Exit')
Local $iWaitSeconds = 7190 ; сколько сек. ждать
Local $sProcessName = "prog.exe" ; имя процесса программы
Local $hTimer ; переменная с указателем на таймер
While 1 ; бесконечный цикл
    If ProcessExists($sProcessName) Then ; если процесс существует (запущен)
        If Not $hTimer Then $hTimer = TimerInit() ; если таймер не запущен - запускаем
        If Floor(TimerDiff($hTimer) / 1000) > $iWaitSeconds Then ; если прошло время
            AdlibRegister('_CloseWin', 500) ; запускаем функцию закрытия через каждые 500 мс.
        EndIf
    Else ; если процесса нет
            AdlibUnRegister('_CloseWin') ; удаляем зарег. функ., если есть
        $hTimer = TimerInit() ; перезапуск таймера с нуля
    EndIf
    Sleep(500)
WEnd

Func _CloseWin()
    Local $h_Win = WinActivate("Time Limited License Agreement")
    If Not $h_Win Then Return
    ControlClick($h_Win, "", "Button1")
EndFunc   ;==>_CloseWin
Func _Exit()
    Exit
EndFunc   ;==>_Exit

 


Оффлайн Solid_Rio [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
(нажмите для показа/скрытия)

Спасибо большое за предложенное решение. Правда это не совсем то, что я хотел, но это по причине того, что я возможно неправильно объяснил. На данный момент пока буду осуществлять перезапуск с помощью сторонних программ и скрипта, который находится выше в теме, т.к. сейчас очень много проектов по работе. В случае наличия свободного времени обязательно вернусь к данном вопросу и возможно обращусь на данный форум, но уже в новой теме. AutoIT меня действительно заинтересовал и возможно в дальнейшем буду искать его применение в сфере своей работы.

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

Re: Закрытие всплывающего окна подтверждения
« Ответ #6 Отправлен: Июнь 27, 2018, 10:41:44 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
5669 Просмотров
Последний ответ Июль 15, 2010, 00:32:01
от Garrett
8 Ответов
2864 Просмотров
Последний ответ Сентябрь 05, 2011, 21:24:48
от Yashied
1 Ответов
2673 Просмотров
Последний ответ Сентябрь 24, 2012, 13:14:47
от inververs
2 Ответов
2300 Просмотров
Последний ответ Январь 04, 2013, 18:15:54
от general66
19 Ответов
10117 Просмотров
Последний ответ Январь 10, 2013, 14:05:54
от logos
7 Ответов
3706 Просмотров
Последний ответ Март 19, 2013, 17:56:16
от forbrock
10 Ответов
2615 Просмотров
Последний ответ Сентябрь 26, 2014, 00:31:55
от AZJIO
2 Ответов
1536 Просмотров
Последний ответ Июль 30, 2016, 19:34:24
от Latoid
6 Ответов
358 Просмотров
Последний ответ Апрель 24, 2018, 17:00:47
от CRD
1 Ответов
183 Просмотров
Последний ответ Июнь 18, 2018, 12:02:42
от alex33