请帮我看下这段代码,如何处理资源消耗问题。时间一长画面就会晃动,资源消耗尤其严重。
hook.dlllibrary hook;uses windows;var nextglBegin: procedure(mode: cardinal); stdcall;
nextglEnable: procedure(mode: cardinal); stdcall;
nextglDisable: procedure(mode: cardinal); stdcall;
nextglTexEnvi: procedure(a,b,c: cardinal); stdcall;procedure myglBegin(mode: cardinal); stdcall;
var keystate: tKeyboardstate;
begin
getkeyboardstate(keystate);
if keystate[VK_NUMPAD1] > 0 then
if (mode = $5) or (mode = $6) then
nextglDisable($0B71) else
nextglEnable($0B71); if keystate[VK_NUMPAD2] > 0 then
if (mode = $5) or (mode = $6) then
nextglTexEnvi($2300, $2200, $2101);
nextglBegin(mode);
end;procedure schleife;
begin
while getmodulehandle('opengl32.dll') = 0 do sleep(1000);
sleep(2000);
@nextglDisable := getprocaddress(getmodulehandle('opengl32.dll'),'glDisable');//pointer($6955d800);
@nextglEnable := getprocaddress(getmodulehandle('opengl32.dll'),'glEnable');//pointer($6955f030);
@nextglTexEnvi := getprocaddress(getmodulehandle('opengl32.dll'),'glTexEnvi');//pointer($6955f030);
asm
mov eax, [$7FFDE7CC]
mov [nextglBegin], eax
mov eax, offset myglBegin
mov [$7FFDE7CC], eax
end;
end;var tid: cardinal;
begin
messagebox(0,加载成功!','加载成功~~',0);
createthread(nil,0,@schleife,nil,0,tid);
end.
hook.dlllibrary hook;uses windows;var nextglBegin: procedure(mode: cardinal); stdcall;
nextglEnable: procedure(mode: cardinal); stdcall;
nextglDisable: procedure(mode: cardinal); stdcall;
nextglTexEnvi: procedure(a,b,c: cardinal); stdcall;procedure myglBegin(mode: cardinal); stdcall;
var keystate: tKeyboardstate;
begin
getkeyboardstate(keystate);
if keystate[VK_NUMPAD1] > 0 then
if (mode = $5) or (mode = $6) then
nextglDisable($0B71) else
nextglEnable($0B71); if keystate[VK_NUMPAD2] > 0 then
if (mode = $5) or (mode = $6) then
nextglTexEnvi($2300, $2200, $2101);
nextglBegin(mode);
end;procedure schleife;
begin
while getmodulehandle('opengl32.dll') = 0 do sleep(1000);
sleep(2000);
@nextglDisable := getprocaddress(getmodulehandle('opengl32.dll'),'glDisable');//pointer($6955d800);
@nextglEnable := getprocaddress(getmodulehandle('opengl32.dll'),'glEnable');//pointer($6955f030);
@nextglTexEnvi := getprocaddress(getmodulehandle('opengl32.dll'),'glTexEnvi');//pointer($6955f030);
asm
mov eax, [$7FFDE7CC]
mov [nextglBegin], eax
mov eax, offset myglBegin
mov [$7FFDE7CC], eax
end;
end;var tid: cardinal;
begin
messagebox(0,加载成功!','加载成功~~',0);
createthread(nil,0,@schleife,nil,0,tid);
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货