Главная страница
    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.053 c
2-1233675967
Krozzz
2009-02-03 18:46
2009.03.29
Одна программа должна нажать на кнопку другой программы


15-1232920547
pushkin42
2009-01-26 00:55
2009.03.29
Глупая ситуация...


15-1232335816
Slider007
2009-01-19 06:30
2009.03.29
С днем рождения ! 19 января 2009 понедельник


15-1233142456
XeON
2009-01-28 14:34
2009.03.29
Обрезка изображения


2-1233557503
Mops
2009-02-02 09:51
2009.03.29
определение variant





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский