Вверх ↑
Ответов: 2059
Рейтинг: 132
#1: 2019-09-02 18:16:40 ЛС | профиль | цитата
K0ndar, Для каких целей?
Ровно, как написано в ТЗ. при зажатой пкм повторяются ее нажатия 100 раз в секунду.

Add(MainForm,2953706,35,105)
{
}
Add(MouseEvent,8103230,378,238)
{
Button=2
}
Add(Timer,16396667,224,238)
{
Interval=10
Enable=1
Point(doInterval)
link(onTimer,8103230:doClick,[])
}
Add(InfoTip,13344029,98,42)
{
Info=#20:5120 - движение мыши|55:522ХХХ - прокрутка колеса, где ХХХ - значение прокрутки|18:5130 - нажатие ЛКМ|21:5140 - отпускание ЛКМ|18:5160 - нажатие ПКМ|21:5170 - отпускание ПКМ|21:5190 - нажатие колеса|24:5200 - отпускание колеса|33:5231 - нажатие 1-й боковой кнопки|36:5241 - отпускание 1-й боковой кнопки|33:5232 - нажатие 2-й боковой кнопки|35:5242 - отпускание 2-й боковй кнопки|
Frame=2
Transparent=1
HAlign=0
Width=316
Height=172
Margin=5
}
Add(InlineCode,15021347,51,238)
{
@Hint=#24:Глобальный перехват мыши|
EventPoints=#2:ev|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|38:uses kol,Share,Debug,windows,messages;|0:|4:type|27: tagMSLLHOOKSTRUCT = record|12: pt:TPoint;|18: mouseData:dword;|14: flags:dword;|13: time:dword;|23: dwExtraInfo:^Cardinal|5: end;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|17: ev:THI_Event;|0:|23: constructor Create;|33: destructor Destroy; override;|0:|5: end;|0:|14:var H:THandle;|20: hac:THiAsmClass;|0:|14:implementation|0:|49:function hook(code,w,l:integer):Lresult; stdcall;|15:var str:string;|25: ll:tagMSLLHOOKSTRUCT;|15: d:LongWord;|5:begin|38: ll := tagMSLLHOOKSTRUCT(pointer(l)^);|0:|26: d := ll.mouseData shr 16;|46: if d and $8000 <> 0 then d := d or $FFFF0000;|0:|30: str := Int2Str(w)+Int2Str(d);|25: _hi_OnEvent(hac.ev,str);|38: result := CallNextHookEx(H,code,w,l);|4:end;|0:|31:constructor THiAsmClass.Create;|5:begin|18: inherited Create;|13: hac := self;|48: H := SetWindowsHookEx(14, @hook, hInstance, 0);|82: if H = 0 then messagebox(ReadHandle,'Ошибка перехвата мыши','ERROR',mb_iconhand);|4:end;|0:|31:destructor THiAsmClass.Destroy;|5:begin|24: UnhookWindowsHookEx(H);|19: inherited Destroy;|4:end;|0:|4:end.|
link(ev,9787186:doEvent1,[])
}
Add(If_else,12237010,140,238)
{
Op2=Integer(5160)
link(onTrue,16396667:doTimer,[])
}
Add(If_else,5918773,140,287)
{
Op2=Integer(5170)
link(onTrue,16396667:doStop,[(198,293)(198,251)])
}
Add(Hub,9787186,105,238)
{
link(onEvent1,12237010:doCompare,[])
link(onEvent2,5918773:doCompare,[(129,251)(129,293)])
}

Компьютер обыгрывает?


Для сетевых игр такое не прокатит!
Нужен, или настоящий драйвер писать, или изучать программу, чтобы сделать перехват мыши и писать макросы(скрипты) на каскад действий на одно нажатие.
Простой перехват по хендлу экрана не прокатит.
карма: 6

0
Редактировалось 5 раз(а), последний 2019-09-02 18:41:02