Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: 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 вся ветка

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
11-51158
microlab
2003-02-01 21:59
2003.10.16
Меню как много в этом слове...


1-51259
Jeck
2003-10-07 09:34
2003.10.16
Help


7-51529
Jeka.
2003-08-04 13:27
2003.10.16
Виндовый login uzera???


3-51081
KMI
2003-09-26 18:44
2003.10.16
EMS IB Manager Prof 3.5.0.3 - Cracked


8-51360
Olim
2003-06-16 16:55
2003.10.16
Как записать звук из микрафона