Вниз
Скачать: CL | DM;

mouse_event - не понял.   Найти похожие ветки 

 
Dude   (2003-10-04 17:01) [0]

Hi all!
Я юзаю mouse_event. Следующий код, по идее, должен по нажатию одной кнопки, нажимать другую.

procedure TForm1.Button2Click(Sender: TObject);
var
P:TPoint;
begin
P:=Button1.ClientToScreen(Point(1,1));
mouse_event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN,P.X,P.Y,0,0);
mouse_event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTUP,P.X,P.Y,0,0);
end;

Но он нажимает вторую кнопку. Почему?


 
Дубинин Алексей ©   (2003-10-05 23:08) [1]

Не могу сказать точно, но помоему ты в обоих моментах задаешь вторым параметром координаты 0 0...и куда она жмыхается? А вот идею не совсем понял...


 
Almaz ©   (2003-10-06 04:14) [2]


> Но он нажимает вторую кнопку. Почему?

По двум причинам:
1. Параметры, определяющие DX и DY актуальны только при выполнении команды MOUSEEVENTF_MOVE. Для остальных команд они игнорируются.
2. Даже если бы они не игнорировались, ваш код бы не сработал, т.к. координаты задаются не в пикселах а в нормализованных координатах.
А решение будет следующее:
var
P: TPoint;
begin
P := Button1.ClientToScreen(Point(1,1));
mouse_event(MOUSEEVENTF_MOVE or MOUSEEVENTF_ABSOLUTE,
Round(65535 / Screen.Width * P.X),
Round(65535 / Screen.Height * P.Y), 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end;


Если хотите при этом еще и вернуть курсор обратно, то запомните сначала текущие координаты курсора, получив их с помощью GetCursorPos а затем выполните еще один MOUSEEVENTF_MOVE.

Удачи.

p.s. А еще можно просто Button1.Click; ;)



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
3-51128
Chery
2003-09-22 14:57
2003.10.16
Midas - клиентская часть - обновление данных на форме.


7-51543
Duncan
2003-08-04 09:49
2003.10.16
Можно ли определить количество оперативки?


3-51136
Alex_x
2003-09-26 13:05
2003.10.16
Форматирование с помощью SQL


14-51404
Ketmar
2003-09-25 17:37
2003.10.16
читаю другие разделы и охреневаю


6-51389
BorH
2003-08-17 04:16
2003.10.16
Как по http узнать размер файла??




   Наверх