Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Вниз

Как кликнуть мышкой в своем же окне   Найти похожие ветки 

 
Новичек   (2003-11-27 19:26) [0]

Подскажите пожалуйста как програмно кликнуть мышкой в точку находящуюся с координатами x,y от левого верхнего угла моей формы!
Я пытался делать так:
Поставил на форму Button1 и Button2
Нажимая на Button2 хотел чтоб програмно нажималось на Button1.
Координаты центра Button1 нашел с помошью OnMouseMove.
Использовал SendMessage вместо mouse_event(), потому что мне надо с емулировать нажатие, и при етом чтоб мышка не двигалась и работала даже если форма свернута или спрятана!

вот сам код программы:

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage("Button 1 clicked");
end;

procedure TForm1.Button2Click(Sender: TObject);
var
wpar : WPARAM;
lpar : LPARAM;
begin
lpar:=MAKELPARAM(110,68);
wpar:=MK_LBUTTON;
SendMessage(Form1.Handle,WM_LBUTTONDOWN,wpar,lpar);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Form1.Label1.Caption:="x="+inttostr(x)+" y="+inttostr(y);
end;


Обьясните мне пожалуйста что я делаю не так!
И будет ли оно работать если моя форма будет свернута или спрятана?


 
dataMaster   (2003-11-27 19:35) [1]

Кликнуть по кнопке Button1 кнопкой Button2 можно так:

procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(Button1.Handle,WM_LBUTTONDOWN, Button1.Left+2, Button1.Top+2);
SendMessage(Button1.Handle,WM_LBUTTONUP, Button1.Left+2, Button1.Top+2);
end;


или так Button1.Click;


 
dataMaster   (2003-11-27 19:38) [2]

Прошу прощение, что-то я ахинею какую-то с сообщениями написал... :-)


 
Новичек   (2003-11-27 19:42) [3]

Та с кнопками ето просто тренируюсь!... Мне надо кликать на все что угодно с нужными координатами в окне!..


 
dataMaster   (2003-11-27 19:58) [4]

procedure TForm1.Button2Click(Sender: TObject);
var
P: TPoint;
begin
// запоминаем текущее положение курсора
GetCursorPos(P);

// ставим курсор куда надо
SetCursorPos(координата х, координата y);

// жмем левую кнопку мыши
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
Application.ProcessMessages;
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// возвращаем курсор на прежнее место
SetCursorPos(P.X, P.Y);
end;


 
Новичек   (2003-11-28 10:52) [5]


> dataMaster


Яж говорю что мне не подходит через mouse_event!
Сам подумай как он будет работать если окно свернуто (или скрыто)!
mouse_event - ето просто кликание по координатам на рабочем столе!.. может попасть на все что угодно, что будет по данным координатам!

А мне надо посылать сообщение окну своему!
как я понял ето надо делать через SendMessage

Только как ето сделать? Кликать надо по координатам от левого верхнего угла формы моей!

Люди поскажите пожалуйста!


 
Новичек   (2003-11-28 16:22) [6]

Люди, подскажите пожалуйста как ето сделать!


 
Новичек   (2003-12-03 18:05) [7]

Мастера подскажите пожалуйста как программно кликать мышкой с помощью SendMessage!


 
alex_***   (2003-12-04 09:19) [8]

Запускаешь WinSight32, натравливаешь на свою прогу, кликаешь мышой и смотришь какие мессаги прошли.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.03 c
14-80104
Думкин
2004-02-03 06:07
2004.02.25
С днем рождения! 3 февраля.


3-79648
Soi
2004-01-31 17:33
2004.02.25
Чтение файла из Blob-поля


1-79943
афвуд
2004-02-09 16:00
2004.02.25
Уникальный ключ.


1-80007
Den_K2004
2004-02-13 10:25
2004.02.25
Как подсунуть свои картинки в TWebBrowser


3-79619
chtr
2004-01-19 15:37
2004.02.25
MSSQL через интернет?





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