|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как нажать кнопку в другой программе?
В общем, дело такое:
Имеется несколько ОТКРЫТЫХ программ. Каждая должна запускаться по очереди, по окончанию работы предыдущей. Запускать все в ручную надоело - каждая программа до окончания действия работает по 1 часу примерно. Т.е, указываешь время работы, путь к файлам .exe. Программа сначала нажимает кнопку СТАРТ у одной из программ, по истечению часа нажимает СТАРТ у второй программы и т.д. Как это все организовать? |
#2
|
|||
|
|||
Ищи хендл кнопки и посылай сообщение (SendMessage) wm_mousedown
|
#3
|
|||
|
|||
Как я понимаю, можно сделать так:
Код:
procedure TForm1.Button1Click(Sender: TObject); var h1, h2: hwnd; begin h1 := FindWindow(nil, 'Имя_Окна'); h2 := FindWindowEx(h1, 0, 'TButton', 'Кнопка'); // SendMessage(h2, BM_CLICK, 0, 0); showmessage(inttostr(h2)); end; Но окна могут находиться в различных позициях. К тому же имя окон одинаково. Необходимо каким-либо образом использовать путь к файлу. Последний раз редактировалось Admin, 04.09.2010 в 14:26. |
#4
|
|||
|
|||
И что? Что мешает хендл окна найти? Позиция никак не влияет на это.
|
#5
|
|||
|
|||
Позиция возможно да, но окно программы будет иметь одинаковое название.
|