Текущий архив: 2002.10.14;
Скачать: CL | DM;
Вниз
Клик по левй кнопки мыши после позиционирования Найти похожие ветки
← →
Константин (2002-08-28 10:18) [0]Написал следующую процедуру:
procedure _MouseMove_(x2, y2 : integer; KeyClick: Boolean);
var
x1, y1, x, y, xend,
yend, s, dx, dy, d,
inc1, inc2 : integer ;
MousePos : TPoint ;
begin
GetCursorPos(MousePos);
x1:= MousePos.x;
y1:= MousePos.y;
dx:= abs(x2-x1);
dy:= abs(y2-y1);
if dx > dy then begin
inc1:= 2*dy;
inc2:= 2*(dy-dx);
d:= 2*dy - dx;
x:= x1;
y:= y1;
xend:= x2;
if x1 < x2 then begin
if y1 < y2 then s:= 1 else s:= -1;
while x < xend do begin
Delay(10);
inc(x);
if d > 0 then begin
inc(y, s);
inc(d, inc2);
end else inc(d, inc1);
SetCursorPos(x, y);
end;
end else begin
if y1 > y2 then s:= -1 else s:= 1;
while x > xend do begin
Delay(10);
dec(x);
if d > 0 then begin
inc(y, s);
inc(d, inc2);
end else inc(d, inc1);
SetCursorPos(x, y);
end;
end;
end else begin
inc1:= 2*dx;
inc2:= 2*(dx-dy);
d:= 2* dx-dy;
y:= y1;
x:= x1;
yend:= y2;
if y1 < y2 then begin
if x1 < x2 then s:= 1 else s:= -1;
while y < yend do begin
Delay(10);
inc(y);
if d > 0 then begin
inc(x, s);
inc(d, inc2);
end else inc(d, inc1);
SetCursorPos(x, y);
end;
end else begin
if x1 > x2 then s:= -1 else s:= 1;
while y > yend do begin
Delay(10);
dec(y);
if d > 0 then begin
inc(x, s);
inc(d, inc2);
end else inc(d, inc1);
SetCursorPos(x, y);
end;
end;
end;
if KeyClick then begin
mouse_event(
MOUSEEVENTF_LEFTDOWN, // flags specifying various motion/click variants
0, // horizontal mouse position or position change
0, // vertical mouse position or position change
0, // amount of wheel movement
0 // 32 bits of application-defined information
);
mouse_event(
MOUSEEVENTF_LEFTUP, // flags specifying various motion/click variants
0, // horizontal mouse position or position change
0, // vertical mouse position or position change
0, // amount of wheel movement
0 // 32 bits of application-defined information
);
end;
end;
При установленой KeyClick в TRUE после позиционирования должен эмулироваться клик левой клавиши мыши.
Почему то это срабатывает не для всех приложений!
Подскажите где руки кривые?
← →
Константин (2002-08-29 02:01) [1]И что же ни кто не подскажет решения проблемы?
Страницы: 1 вся ветка
Текущий архив: 2002.10.14;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.015 c