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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2017, 12:06   #1
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию как захватить окно и нажать ок!?

Здравствуйте. На ПК сотрудниках устанавливаем программу, в конце выходит окошка и нужно нажать ок!

как захватить данное окно и нажать да, автоматический? Чтобы все было в автономном режиме. Если есть код поделитесь пожалуйста. По сути нетрудная задача, но у меня знании не хватает. пытался через командную строку но никак.
Изображения
Тип файла: jpg Без имени-1.jpg (109.0 Кб, 123 просмотров)
Art22 вне форума Ответить с цитированием
Старый 01.04.2017, 12:49   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

AutoHotkey, AutoIt
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 01.04.2017, 13:15   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

+ у многгих (если не у всех) инсталяторов есть ключи для тихой установки
p51x вне форума Ответить с цитированием
Старый 01.04.2017, 19:55   #4
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
AutoHotkey, AutoIt
это не вариант. нужен exe чтобы вместе с приложением запустился и когда откроется окно, нажмете на ок.
У меня был похожий код, но потерял(

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

Цитата:
Сообщение от Art22 Посмотреть сообщение
это не вариант. нужен exe чтобы вместе с приложением запустился и когда откроется окно, нажмете на ок.
Так и чем не вариант? AutoHotkey или AutoIt скрипты можно сделать в виде ехе.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2017, 01:00   #6
Art22
Пользователь
 
Регистрация: 27.07.2009
Сообщений: 19
По умолчанию

не смог разобраться. Надо много времени.
Нашел 2 вида кода

handle=FindWindow_(#Null,"{970C393F-F611-4722-B829-D8BA68B9C9AF}")
If handle<>0 ;
Button=FindWindowEx_(handle,0, 0,"ОК");
If Button<>0 ;
PostMessage_(Button,#BM_CLICK,0,0);
EndIf
EndIf

--

procedure TForm1.Button1Click(Sender: TObject);
var h1,h2:HWND;
begin
h1:=FindWindow(nil,'{970C393F-F611-4722-B829-D8BA68B9C9AF}');
h2:=FindWindowEx(h1,0,'Button','ОК' );
SendMessage(h2,WM_LBUTTONDOWN,1,1);
SendMessage(h2,WM_LBUTTONUP,1,1);
//SendMessage(h2,WM_LBUTTONDOWN,1,1);
//SendMessage(h2,WM_LBUTTONUP,1,1);
end;

Но почему то не работают, может неправильно скомпонировал? открывается окно и все. вроде должен в скрытном режиме работать.
Art22 вне форума Ответить с цитированием
Старый 02.04.2017, 01:49   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Настолько скрытном, что вы создали аж целую форму с кнопкой?

А что в AutoHotkey разбираться? Просто посмотрите туториал и список функций.

Что-то типа такого
Код:
#Persistent

SetTimer, CloseConfirmation, 25
return

CloseConfirmation:
If WinExist...........
{
	ControlSend ..........
}
return
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 02.04.2017, 07:48   #8
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

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

Run("setup.exe")
WinWaitActive("{970C393F-F611-4722-B829-D8BA68B9C9AF}")
Send("{ENTER}")

Сделал так, запускает приложение, через минуту выходит окно которое нужно закрыть, не получился.

Даже без программы когда нажимаю на Ентер не работает. Окно необычное. Даже ТАБ там не работает чтобы переключить на другую кнопку. Сама кнопка ОК синяя активная, на него действует только клик мышкой.

Сделал так.

WinWaitActive("{970C393F-F611-4722-B829-D8BA68B9C9AF}")
MouseClick("left",58,12) координаторы кнопки в самой окне.
не кликает.

ControlClick Coords: 58, 12 такие параметры в проге показывает. Как правильно задать данные параметры? чтобы не зависело от разрешения монитора. Прилепляю отчет

может по Handle определить окно?
Изображения
Тип файла: png 1.png (46.0 Кб, 101 просмотров)
Art22 вне форума Ответить с цитированием
Старый 02.04.2017, 14:15   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Странный Title.

Я бы лучше по классу искал.
https://www.autoitscript.com/autoit3...WaitActive.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