Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.25;
Скачать: CL | DM;

Вниз

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

 
Новичек   (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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
3-79598
GIL
2004-02-02 14:54
2004.02.25
update IBQuery


3-79645
deadbitch
2004-01-28 16:07
2004.02.25
Пустые клетки в Excel через ADO


1-79724
smolin
2004-02-12 11:21
2004.02.25
Функция перемещения файла


3-79662
Вованчик
2004-02-03 08:01
2004.02.25
снова IBUpdateSQL


3-79666
Layner
2004-01-30 13:37
2004.02.25
Помогите вызвать хр. процедуру из тригера MS SQL Serv.