Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизОдна программа должна нажать на кнопку другой программы Найти похожие ветки
← →
Krozzz (2009-02-03 18:46) [0]Здраствуйте. Собственно задача:
Есть первая програма с одной кнопкой и одним компонентом Label1. При нажатии на кнопку в Label1 записывается случайный набор букв(20 штук). Есть вторая программа только лишь с одной кнопкой. При нажатии на эту кнопку должна нажаться кнопка в первой прграмме(если программа открыта). Как это можно реализовать?
Заранее спасибо.
← →
DVM © (2009-02-03 18:52) [1]
> Как это можно реализовать?
Найти окно первой программы FindWindow(), в нем найти окно кнопки FindWindowEx(), и отослать кнопке соответствующее сообщение о том, что ее нажали или иммитировать клик мышью.
← →
Krozzz (2009-02-03 18:56) [2]
> и отослать кнопке соответствующее сообщение
А как отослать?
← →
Anatoly Podgoretsky © (2009-02-03 19:18) [3]> Krozzz (03.02.2009 18:46:00) [0]
Очень просто - одна программа лишняя.
← →
DVM © (2009-02-03 19:41) [4]
> А как отослать?
SendMessage()
← →
Krozzz (2009-02-03 20:46) [5]
> SendMessage()
Описание:
function SendMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint;
Каким нужно поставить Msg, wParam, lParam?
← →
DVM © (2009-02-03 20:54) [6]
> Каким нужно поставить Msg, wParam, lParam?
BM_CLICK, 0, 0
← →
Krozzz (2009-02-03 21:25) [7]DVM c - Огромное спасибо!!!
← →
Leonid Troyanovsky © (2009-02-03 22:38) [8]
> Krozzz (03.02.09 20:46) [5]
> Каким нужно поставить Msg, wParam, lParam?
WM_COMMAND, msdn.
--
Regards, LVT.
← →
Krozzz (2009-02-04 10:00) [9]А если у нас в первой программе не одна, а три кнопки , то вторая программа будет всегда нажимать на последнюю созданную кнопку.
Как сделать так, чтобы нажималась строго определенная кнопка?
← →
Сергей М. © (2009-02-04 10:11) [10]
> то вторая программа будет всегда нажимать на последнюю созданную
> кнопку
Это почему же ?
> чтобы нажималась строго определенная кнопка
Надо определиться с критериями "строгой определенности".
← →
Krozzz (2009-02-04 10:13) [11]
> Надо определиться с критериями "строгой определенности".
Как, если не секрет?
← →
Сергей М. © (2009-02-04 10:50) [12]Ну вот что ты называешь "строго определенной" кнопкой ?
Например, "единственная зеленая кнопка среди других кнопок" ..
Или "вторая слева кнопка считая оттуда-то" ..
Или "единственная круглая кнопка среди других кнопок" ..
Или "единственная кнопка среди других кнопок, где написано ЖМАКНИ МЕНЯ"
??
← →
Krozzz (2009-02-04 11:00) [13]Сергей М.
Была одна с именем Button1 (нажималась соответственно только она).
Появилсь еще две : Button2 и Button3. Нажиматься стала только Button3.
Как сделать, чтобы нажималась только Button1 (или Button2)?
Вот код:
procedure TForm1.Button1Click(Sender: TObject);
var wnd:Hwnd;
begin
wnd := FindWindow(nil,"Form2");
if wnd <> 0 then
begin
wnd := FindWindowEx(wnd, 0, "TButton", nil);
SendMessage(wnd, BM_CLICK, 0, 0);
end;
end;
В нем, насколько я могу видеть, нет привязки а имени кнопки, а только к типу.
← →
Сергей М. © (2009-02-04 11:04) [14]А что, разве на всех трех кнопках написано одно и то же - "ЖМАКНИ МЕНЯ" ?
Пользователь-то сам как ориентируется, на какую жмакать мышью ? Они ж все на одно лицо у тебя) ..
← →
Krozzz (2009-02-04 11:11) [15]
> Пользователь-то сам как ориентируется, на какую жмакать
> мышью ?
Я не нажимаю ни на одну из этих кнопок НЕПОСРЕДСТВЕННО МЫШЬЮ. Это за меня делает программа, код которой я написал выше.
И мне интересно, как заставить эту програму нажимать не на Button3, а на Button1.
← →
Сергей М. © (2009-02-04 11:19) [16]
> Krozzz (04.02.09 11:11) [15]
Ты русский понимаешь ?)
Вопрос же до смешного простой - чем визуально отличаются эти три кнопки ?
← →
Krozzz (2009-02-04 11:28) [17]
> чем визуально отличаются
названием
← →
Сергей М. © (2009-02-04 11:32) [18]Ну наконец-то)
wnd := FindWindowEx(wnd, 0, "TButton", "Строго определенное название");
← →
Krozzz (2009-02-04 11:34) [19]Спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c