![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 06.07.2010
Сообщений: 3
|
![]()
Вопросы уже задавались, но проблема такая:
Имеется несколько ОТКРЫТЫХ программ. В каждой программе должна нажиматься кнопка СТАРТ, по окончанию работы предыдущей. Запускать все в ручную надоело - каждая программа до окончания действия работает по 1 часу примерно. Т.е, указываешь время работы, путь к файлам .exe (Если это возможно, то именно путь). Программа сначала нажимает кнопку СТАРТ у одной из программ, по истечению таймаута (скажем 1 час, когда первая программа закончит работу) нажимает СТАРТ у второй программы и т.д. Как это все организовать? Вид программ: ![]() Язык программирования, с которым работаю - Delphi. Последний раз редактировалось arach; 03.09.2010 в 17:28. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
![]()
К примеру так:
На форме ТВОЕЙ ПРОГРАММЫ, а не той у которой нажать надо, кнопка "старт", поле ввода "Имя программы", поле ввода "Задержка". При нажатии на кнопку "старт": - запускаеш программу, имя которой в поле ввода "Имя программы" (ф-ция CreateProcess), хендл сохраняеш; - По получившиму хендлу ишеш кнопку которую нужно нажать: 1. Качаеш программу WinDowse, запускаеш и наводиш мышку на нужную кнопку, во вкладке Parents смотриш всех ее родителей (Хендл первого родителя уже есть - это хендл запушенной программы). 2. Во вкладке Window смотри класс и текст самой кнопки, и по очереди функцией FindWindowsEx (параметры смотри в MSDN) ищи хендл нужной кнопки. - Хендл кнопки есть, теперь отправляй 2 сообщения подряд: SendMessage(хендл кнопки,WM_LBUTTONDOWN,0,0) SendMessage(хендл кнопки,WM_LBUTTONUP,0,0) Это имитация нажатия кнопки Все, программа работает! - Бери значение из поле ввода "Задержка" и вызывай Sleep - Потом, как Sleep отработала вызывай TerminateProcess (закрываеш программу) - Возвращайся на начало ( - запускаеш программу, имя которой в поле ввода "Имя программы" (ф-ция CreateProcess), хендл сохраняеш) |
![]() |
![]() |
![]() |
#3 |
Регистрация: 06.07.2010
Сообщений: 3
|
![]()
Все это хорошо, но возможно ты меня не до понял
![]() Программу закрывать не нужно, она так и остается работать, просто действие должно перейти следующей программе, как - хз. Задержку я задаю сам, она не зависит от задержки рабочих программ. |
![]() |
![]() |
![]() |
#4 | ||
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
![]() Цитата:
Цитата:
Изменить заголовок первой программы нужно для того, что бы при вызове FindWindow опять не вернулась она же. Так пойдет? |
||
![]() |
![]() |
![]() |
#5 |
Регистрация: 06.07.2010
Сообщений: 3
|
![]()
Кот, с тобой можно как-то связаться? Есть контактные данные?
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 09.03.2008
Сообщений: 127
|
![]()
381544830 аська
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 28.01.2010
Сообщений: 224
|
![]()
А с твоем приложении возможно изменить чтото например ввести окно редактирования и в него вводить время задержки.
всему свое время как зиме и весне
и каждому солнцу свой неба кусок |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как нажать кнопку в TWebBrowser | duhduhduh | Компоненты Delphi | 0 | 03.05.2010 13:49 |
Как нажать на кнопку зная ее class? | pain_kill | Работа с сетью в Delphi | 1 | 26.12.2009 17:51 |
Как нажать кнопку другого приложения? | TwiX | Общие вопросы Delphi | 2 | 29.07.2009 19:08 |
Как нажать на кнопку в TWebBrowser да и вообще хоть на что-то.. | postal2 | Работа с сетью в Delphi | 9 | 08.02.2009 22:45 |