Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1234270641
Alex_Ford
2009-02-10 15:57
2009.03.29
Ping - Программно


15-1231773633
Добежал
2009-01-12 18:20
2009.03.29
Поиск (F3) в Vista


1-1208421010
Petrovich
2008-04-17 12:30
2009.03.29
Показ формы из компонента


3-1217079807
Руслан
2008-07-26 17:43
2009.03.29
Вопрос новичка


15-1231814498
Kerk
2009-01-13 05:41
2009.03.29
Медицина





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский