Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2017, 14:37   #11
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

Run("setup.exe")
WinWaitActive("{970C393F-F611-4722-B829-D8BA68B9C9AF}")
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]');
Filka вне форума Ответить с цитированием
Старый 02.04.2017, 15:23   #12
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

Попробую сейчас.
кстати, когда запускаю setup.exe устанавливает setup.exe, а окно выдает setup2.exe это играет роли?

Последний раз редактировалось Art22; 02.04.2017 в 15:49.
Art22 вне форума Ответить с цитированием
Старый 02.04.2017, 17:34   #13
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

получился)))
вот так...
Код:
WinWaitActive("[CLASS:TfmIdNotification]", "", 1)
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]')
Когда окно открывается, запускаю скрипт через секунду нажимает на ок.

Но когда вместе с программой запускаю, скрипт через 1 сек отключается.

Как сделать так, чтобы как открывается окно нажимался на ок. а не по времени, так как на каждое ОС по разному устанавливается, где то 20 сек а где то 80 сек.

я думаю можно использовать функцию. IF.

Если существует окно [CLASS:TfmIdNotification]

нажать на кнопку
Код:
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]')
как это сделать?
Art22 вне форума Ответить с цитированием
Старый 02.04.2017, 18:24   #14
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

http://autoit-script.ru/autoit3_docs.../WinExists.htm
Filka вне форума Ответить с цитированием
Старый 02.04.2017, 19:53   #15
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

Код:
If WinExists("[CLASS:TfmIdNotification]") Then
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]')
EndIf
моментально отключает. Но не ждет пока процесс появиться. Пытался использовать

ProcessWait("[CLASS:TfmIdNotification]") но 0 действии разве что поставить время. А это не выход.
Art22 вне форума Ответить с цитированием
Старый 02.04.2017, 20:00   #16
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так либо улучшайте селектор для Wait (текст кнопки/кнопок, ...) либо просто сделайте бесконечный цикл (с небольшим Sleep чтоб не грузить процессор).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2017, 23:47   #17
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

пытался с помощью IF Else экспереминтировать над ProcessWait но ни как. В итоге
размножал код раз 600 таким образом...

Sleep(1000)
If WinExists("[CLASS:TfmIdNotification]") Then
ControlClick('[CLASS:TfmIdNotification]', '', '[CLASS:TButton; INSTANCE:2]')
EndIf

по любому с помощью ProcessWait или другой функции можно что то придумать но голова уже не знает что делать, давно не занимался Программированием.

В виндовс 10 данный скрипт не работает? сделал exe залил на 1 ПК запускаю, программа устанавливается а над окном 0 действии может что то надо добавить?

Последний раз редактировалось Art22; 03.04.2017 в 00:10.
Art22 вне форума Ответить с цитированием
Старый 03.04.2017, 00:39   #18
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Art22 Посмотреть сообщение
размножал код раз 600 таким образом
https://www.autoitscript.com/autoit3...eywords/Do.htm
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 03.04.2017, 01:52   #19
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

спасибо разобрался! Нет никаких идей почему в виндовс 10 не работает?
Art22 вне форума Ответить с цитированием
Старый 03.04.2017, 09:36   #20
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А где работает? В ХР?

Установщик запрашивает права админа при запуске (UAC)?
Тогда скорее всего и скрипт надо с ними запускать.
https://www.autoitscript.com/autoit3...t_on_vista.htm
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти окно, нажать в нём кнопку. Не срабатывает с 1-2-ой попытки. Человек_Борща Win Api 4 24.01.2012 00:55
Найти окно ошибки и нажать OK Shouldercannon Общие вопросы Delphi 8 01.05.2011 21:38
Нужно программно найти окно программы и нажать на нем кнопку SeRыЙ Win Api 23 09.03.2010 08:00
Как захватить одно из двух окон с одинаковыми классами и без имени? TwiX Общие вопросы Delphi 11 05.08.2009 11:03
Как захватить весь вывод в консоли??? alexfmf Общие вопросы Delphi 5 13.05.2009 21:54