hook到了本进程的webbrowser的RegQueryValueEx函数。怎么修改返回值???function myRegQueryValueEx(hkey:HKEY; Lpvaluename:PansiChar; lpreserved:Pointer; lptype:pdword;lpdata:Pbyte;lpcbdata:Pdword):LongInt; stdcall;
var
s: string;
Flen:dword;
begin Result := oldRegQueryValueEx(hkey,Lpvaluename,lpreserved,lptype, lpdata, lpcbdata);
if pos(lpvaluename, 'mykey') > 0 then begin
form1.Memo1.Lines.Add(pchar(lpdata)); s := 'newvalue';
Flen:=length(s);
Move(s[1],lpdata^,flen);
lpcbdata^:=FLen;
form1.Memo1.Lines.Add(pchar(lpdata));//lpdata的值是变了。不过webbrowser调用时的值没变
end;
end;
var
s: string;
Flen:dword;
begin Result := oldRegQueryValueEx(hkey,Lpvaluename,lpreserved,lptype, lpdata, lpcbdata);
if pos(lpvaluename, 'mykey') > 0 then begin
form1.Memo1.Lines.Add(pchar(lpdata)); s := 'newvalue';
Flen:=length(s);
Move(s[1],lpdata^,flen);
lpcbdata^:=FLen;
form1.Memo1.Lines.Add(pchar(lpdata));//lpdata的值是变了。不过webbrowser调用时的值没变
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货