📄 mainunit2.pas.svn-base
字号:
try reg.ReadBinaryData('Changed Value Hotkey',temphotkeylist[25][0],10); except end;
try reg.ReadBinaryData('Unchanged Value Hotkey',temphotkeylist[26][0],10); except end;
try reg.ReadBinaryData('Undo Last scan Hotkey',temphotkeylist[27][0],10); except end;
try reg.ReadBinaryData('Cancel scan Hotkey',temphotkeylist[28][0],10); except end;
try reg.ReadBinaryData('Speedhack speed 1',Speedhackspeed1,sizeof(tspeedhackspeed)); except speedhackspeed1.speed:=2; speedhackspeed1.sleeptime:=3; end;
try reg.ReadBinaryData('Speedhack speed 2',Speedhackspeed2,sizeof(tspeedhackspeed)); except speedhackspeed2.speed:=2; speedhackspeed2.sleeptime:=3; end;
try reg.ReadBinaryData('Speedhack speed 3',Speedhackspeed3,sizeof(tspeedhackspeed)); except speedhackspeed3.speed:=2; speedhackspeed3.sleeptime:=3; end;
try reg.ReadBinaryData('Speedhack speed 4',Speedhackspeed4,sizeof(tspeedhackspeed)); except speedhackspeed4.speed:=2; speedhackspeed4.sleeptime:=3; end;
try reg.ReadBinaryData('Speedhack speed 5',Speedhackspeed5,sizeof(tspeedhackspeed)); except speedhackspeed5.speed:=2; speedhackspeed5.sleeptime:=3; end;
//fill the hotkeylist
for i:=0 to 28 do
begin
found:=false;
for j:=0 to length(hotkeythread.hotkeylist)-1 do
begin
if (hotkeythread.hotkeylist[j].id=i) and (hotkeythread.hotkeylist[j].handler2) then
begin
//found it
hotkeythread.hotkeylist[j].keys:=temphotkeylist[i];
found:=true;
break;
end;
end;
if not found then //add it
begin
j:=length(hotkeythread.hotkeylist);
setlength(hotkeythread.hotkeylist,j+1);
hotkeythread.hotkeylist[j].keys:=temphotkeylist[i];
hotkeythread.hotkeylist[j].windowtonotify:=mainform.Handle;
hotkeythread.hotkeylist[j].id:=i;
hotkeythread.hotkeylist[j].handler2:=true;
end;
checkkeycombo(temphotkeylist[i]);
end;
if temphotkeylist[0][0]<>0 then
hotkey:=ConvertKeyComboToString(temphotkeylist[0])
else
hotkey:='no';
if temphotkeylist[1][0]<>0 then
advancedoptions.pausehotkeystring:='('+ConvertKeyComboToString(temphotkeylist[1])+')'
else
advancedoptions.pausehotkeystring:=' (No hotkey)';
if temphotkeylist[2][0]<>0 then
mainform.cbSpeedhack.Hint:='Enable/Disable speedhack. ('+ConvertKeyComboToString(temphotkeylist[2])+')'
else
mainform.cbSpeedhack.Hint:='Enable/Disable speedhack. (No hotkey)';
ResumeHotkeyHandler;
{$endif}
if reg.ValueExists('Buffersize') then
buffersize:=reg.readInteger('Buffersize')
else
buffersize:=512;
try EditBufSize.text:=IntToStr(buffersize) except EditBufSize.Text:='512'; end;
buffersize:=buffersize*1024;
{$ifdef net} mainform.buffersize:=buffersize; {$endif}
try if reg.ReadBool('UseDebugRegs') then formsettings.rbDebugRegisters.checked:=true else formsettings.rdWriteExceptions.checked:=true; except end;
try
if reg.readbool('Show Disassembler') then
begin
formsettings.cbShowDisassembler.checked:=true;
memorybrowser.Panel1.Visible:=true;
memorybrowser.updatedisassemblerview;
memorybrowser.RefreshMB;
end
else
begin
formsettings.cbShowDisassembler.checked:=false;
memorybrowser.Panel1.Visible:=false;
memorybrowser.RefreshMB;
end;
except
end;
try formsettings.cbCenterOnPopup.checked:=reg.readbool('Center on popup'); except end;
try mainform.updatetimer.Interval:=reg.readInteger('Update interval'); except end;
try mainform.freezetimer.Interval:=reg.readInteger('Freeze interval'); except end;
formsettings.EditUpdateInterval.text:=IntToStr(mainform.updatetimer.Interval);
formsettings.EditFreezeInterval.text:=IntToStr(mainform.freezetimer.Interval);
{$ifdef net}
//also get the update interval for network
try i:=reg.readInteger('Network Update Interval'); except end;
try formsettings.EditNetworkUpdateInterval.Text:=IntToStr(i); except end;
{$endif}
try cbShowAsSigned.checked:=reg.readbool('Show values as signed'); except end;
try cbBinariesAsDecimal.checked:=reg.readbool('Handle binarys as decimals'); except end;
// reg.ValueExists()
if reg.ValueExists('AutoAttach') then
EditAutoAttach.Text:=reg.ReadString('AutoAttach');
if reg.ValueExists('Always AutoAttach') then
cbAlwaysAutoAttach.checked:=reg.readbool('Always AutoAttach');
try EditNetworkUpdateInterval.Text:=IntToStr(reg.ReadInteger('Network Update Interval')); except end;
try cbShowDebugoptions.checked:=reg.ReadBool('Show debugger options'); except end;
try replacewithnops.checked:=reg.readBool('Replace incomplete opcodes with NOPS'); except end;
try askforreplacewithnops.checked:=reg.readBool('Ask for replace with NOPS'); except end;
try cbFastscan.checked:=reg.ReadBool('Fastscan on by default'); except end;
try checkbox1.Checked:=reg.readbool('Use Anti-debugdetection'); except end;
try cbhandlebreakpoints.Checked:=reg.ReadBool('Handle unhandled breakpoints'); except end;
if cbFastscan.Checked then mainform.cbFastscan.Checked:=true else mainform.cbFastScan.Checked:=false;
try cbsimplecopypaste.checked:=reg.readbool('Simple copy/paste'); except end;
try rbDebugAsBreakpoint.Checked:=reg.readbool('Hardware breakpoints'); except end;
try rbInt3AsBreakpoint.checked:=not reg.readbool('Hardware breakpoints'); except end;
try cbUpdatefoundList.Checked:=reg.readbool('Update Foundaddress list'); except end;
try mainform.UpdateFoundlisttimer.interval:=reg.readInteger('Update Foundaddress list Interval'); except end;
try editUpdatefoundInterval.Text:=IntToStr(mainform.UpdateFoundlisttimer.interval); except end;
try cbSkip_PAGE_NOCACHE.Checked:=reg.readbool('skip PAGE_NOCACHE'); except end;
Skip_PAGE_NOCACHE:=cbSkip_PAGE_NOCACHE.Checked;
//try cbBreakOnAttach.Checked:=reg.readbool('Break when debuging'); except end;
cbBreakOnattach.Checked:=false;
try cbHideAllWindows.Checked:=reg.ReadBool('Hide all windows'); except end;
try temphideall:=reg.ReadBool('Really hide all windows'); except end;
onlyfront:=not formsettings.temphideall;
try cbMemPrivate.Checked:=reg.ReadBool('MEM_PRIVATE'); except end;
try cbMemImage.Checked:=reg.ReadBool('MEM_IMAGE'); except end;
try cbMemMapped.Checked:=reg.ReadBool('MEM_MAPPED'); except end;
Scan_MEM_PRIVATE:=cbMemPrivate.checked;
Scan_MEM_IMAGE:=cbMemImage.Checked;
Scan_MEM_MAPPED:=cbMemMapped.Checked;
try cbLowMemoryUsage.Checked:=reg.ReadBool('Low Memory Usage'); except end;
try cbEnableHyperscanWhenPossible.Checked:=reg.ReadBool('Use Hyperscan if posible'); except end;
if reg.ValueExists('StealthOnExecute') then
cbStealth.Checked:=reg.ReadBool('StealthOnExecute')
else
cbstealth.Checked:=false;
if reg.ValueExists('Protect CE') then
cbProtectMe.Checked:=reg.readbool('Protect CE')
else
cbprotectme.checked:=false;
try cbKernelQueryMemoryRegion.checked:=reg.ReadBool('Use dbk32 QueryMemoryRegionEx'); except end;
try cbKernelReadWriteProcessMemory.checked:=reg.ReadBool('Use dbk32 ReadWriteProcessMemory'); except end;
try cbKernelOpenProcess.checked:=reg.ReadBool('Use dbk32 OpenProcess'); except end;
if reg.ValueExists('Undo memory changes') then
cbUndoMemoryChanges.checked:=reg.ReadBool('Undo memory changes');
if reg.ValueExists('Undo memory changes:Force writable') then
cbForceUndo.checked:=reg.ReadBool('Undo memory changes:Force writable');
if not cbUndoMemorychanges.Checked then
begin
cbforceundo.Checked:=false;
cbforceundo.Enabled:=false;
end;
{$ifndef net}
try unrandomizersettings.defaultreturn:=reg.ReadInteger('Unrandomizer: default value'); except end;
try unrandomizersettings.incremental:=reg.ReadBool('Unrandomizer: incremental'); except end;
if reg.ValueExists('ModuleList as Denylist') then
DenyList:=reg.ReadBool('ModuleList as Denylist')
else
denylist:=true;
if reg.ValueExists('Global Denylist') then
DenyListGlobal:=reg.ReadBool('Global Denylist')
else
denylistglobal:=false;
if reg.ValueExists('ModuleListSize') then
ModuleListSize:=reg.ReadInteger('ModuleListSize')
else
modulelistsize:=0;
if modulelist<>nil then freemem(modulelist);
getmem(modulelist,modulelistsize);
try reg.ReadBinaryData('Module List',ModuleList^,ModuleListSize); except end;
try cbProcessWatcher.checked:=reg.readBool('Use Processwatcher'); except end;
try cbKdebug.checked:=reg.ReadBool('Use Kernel Debugger'); except end;
try cbGlobalDebug.checked:=reg.ReadBool('Use Global Debug Routines'); except end;
if cbForceUndo.checked or cbGlobalDebug.checked then LoadDBK32;
if cbKernelQueryMemoryRegion.checked then UseDBKQueryMemoryRegion else DontUseDBKQueryMemoryRegion;
if cbKernelReadWriteProcessMemory.checked then UseDBKReadWriteMemory else DontUseDBKReadWriteMemory;
if cbKernelOpenProcess.Checked then UseDBKOpenProcess else DontUseDBKOpenProcess;
if cbProcessWatcher.Checked then
if (frmProcessWatcher=nil) then //propably yes
frmProcessWatcher:=tfrmprocesswatcher.Create(mainform); //start the process watcher
if assigned(newkernelhandler.SetGlobalDebugState) then
newkernelhandler.SetGlobalDebugState(cbGlobalDebug.checked);
{$endif}
if cbUndoMemoryChanges.checked then
if not fileexists(cheatenginedir+'ceprotect.dat') then
begin
cbUndoMemoryChanges.Checked:=false;
cbforceundo.Enabled:=false;
cbforceundo.Checked:=false;
end;
//load the exclude list
try
i:=0;
go:=true;
while go do
begin
setlength(donthidelist,length(donthidelist)+1);
donthidelist[i]:=reg.readstring('Do not hide '+IntToStr(i));
if donthidelist[i]='' then
begin
setlength(donthidelist,length(donthidelist)-1);
go:=false;
end;
inc(i);
end;
except
if length(donthidelist)=0 then
begin
setlength(donthidelist,1);
donthidelist[0]:='explorer.exe';
end;
end;
end;
end;
{$ifndef net}
if Reg.OpenKey('\Software\Cheat Engine\plugins',false) then
begin
names:=TStringList.create;
try
reg.GetValueNames(names);
names.Sort;
for i:=0 to names.Count-1 do
begin
try
if names[i][10]='A' then //plugin dll
begin
s:=reg.ReadString(names[i]);
j:=pluginhandler.LoadPlugin(s);
end;
if names[i][10]='B' then //enabled or not
begin
if reg.ReadBool(names[i]) then
pluginhandler.EnablePlugin(j);
end;
except
end;
end;
pluginhandler.FillCheckListBox(formsettings.clbPlugins);
finally
names.Free;
end;
end;
{$endif}
formsettings.LoadingSettingsFromRegistry:=false;
finally
reg.CloseKey;
end;
except
end;
{$ifdef net}
MemoryBrowser.Kerneltools1.visible:=false;
{$else}
MemoryBrowser.Kerneltools1.Enabled:=DarkByteKernel<>0;
{$endif}
HandleAutoAttachString;
end;
procedure initcetitle;
var dwhandle: thandle;
FileVersionInfoSize: integer;
puLen: cardinal;
FileVersionInfo: pointer;
b: pointer;
ffi: ^VS_FIXEDFILEINFO;
begin
CEnorm:='Cheat Engine 5.4'; //.';
{ FileVersionInfoSize:=GetFileVersionInfoSize(pchar(application.exename),dwhandle);
if FileVersionInfoSize>0 then
begin
getmem(FileVersionInfo,FileVersionInfoSize);
try
if GetFileVersionInfo(pchar(application.exename),0,FileVersionInfoSize,FileVersionInfo) then
begin
if VerQueryValue(FileVersionInfo,'\',b,puLen) then
begin
ffi:=b;
cenorm:=cenorm+(inttostr(ffi.dwFileVersionLS))+beta;
end;
end;
finally
freemem(FileVersionInfo);
end;
end; }
CERegion:=cenorm+' - Please Wait!';
CESearch:=CERegion;
CERegionSearch:= CERegion;
CEWait:= ceregion;
mainform.Caption:=CENorm;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -