📄 formsettingsunit.pas
字号:
cbShowDebugOptions.Enabled:=true;
ReplaceWithNops.enabled:=true;
askforreplacewithnops.Enabled:=replacewithnops.Checked;
end
else
begin
cbShowDebugOptions.Enabled:=false;
ReplaceWithNops.enabled:=false;
askforreplacewithnops.Enabled:=false;
end;
end;
procedure TformSettings.replacewithnopsClick(Sender: TObject);
begin
askforreplacewithnops.Enabled:=replacewithnops.Checked;
end;
procedure TformSettings.CheckBox1Click(Sender: TObject);
begin
checkbox2.Checked:=checkbox1.checked;
end;
procedure TformSettings.CheckBox2Click(Sender: TObject);
begin
Checkbox1.Checked:=checkbox2.Checked;
end;
procedure TformSettings.cbUpdatefoundListClick(Sender: TObject);
begin
if cbUpdatefoundList.Checked then
begin
label18.Enabled:=true;
editUpdatefoundInterval.Enabled:=true;
Label19.Enabled:=true;
end
else
begin
label18.Enabled:=false;
editUpdatefoundInterval.Enabled:=false;
Label19.Enabled:=false;
end;
end;
procedure TformSettings.Label20Click(Sender: TObject);
begin
with tabout.create(self) do
begin
showmodal;
free;
end;
end;
procedure TformSettings.cbHideAllWindowsClick(Sender: TObject);
begin
btnExcludeProcesses.enabled:=cbHideallWindows.Checked;
end;
procedure TformSettings.btnExcludeProcessesClick(Sender: TObject);
begin
{$ifndef net}
with tfrmExcludeHide.create(self) do
begin
showmodal;
free;
end;
{$endif}
end;
procedure TformSettings.FormCreate(Sender: TObject);
begin
pagecontrol1.tabindex:=0;
{$ifdef net}
button3.visible:=false;
cbHideAllWindows.visible:=false;
btnExcludeProcesses.visible:=false;
cbCenterOnPopup.visible:=false;
cbHideAllWindows.Visible:=false;
btnExcludeProcesses.visible:=false;
cbCenterOnPopup.visible:=false;
cbUpdatefoundList.Visible:=false;
cbShowAdvanced.Visible:=false;
cbShowUndo.Visible:=false;
cbfastscan.Visible:=false;
cbEnableHyperscanWhenPossible.Visible:=false;
cbLowMemoryUsage.Visible:=false;
label21.Visible:=false;
cbMemprivate.Visible:=false;
cbMemImage.Visible:=false;
cbMemMapped.Visible:=false;
label2.visible:=false;
checkthread.Visible:=false;
label3.Visible:=false;
combothreadpriority.Visible:=false;
checkbox1.visible:=false;
checkbox2.visible:=false;
cbshowdebugoptions.enableD:=false;
rbDebugAsBreakpoint.Enabled:=false;
rbInt3AsBreakpoint.Enabled:=false;
cbBreakOnAttach.Enabled:=false;
cbBreakOnAttach.Visible:=false;
checkbox2.Visible:=false;
checkbox1.Visible:=false;
cbstealth.Visible:=false;
cbprotectme.visible:=false;
label25.Visible:=false;
cbUndoMemoryChanges.Visible:=false;
cbForceUndo.Visible:=false;
panel1.Visible:=false;
formsettings.Height:=formsettings.Height+24;
pagecontrol1.Height:=pagecontrol1.Height+24;
button1.top:=button1.top+24;
button2.top:=button2.top+24;
label16.Visible:=true;
EditNetworkUpdateInterval.Visible:=true;
Label17.Visible:=true;
Label13.top:=label13.top+24;
editUpdateInterval.top:=editUpdateInterval.top+24;
label17.Top:=label17.Top+24;
label14.top:=label14.top+24;
editFreezeInterval.top:=editFreezeInterval.Top+24;
label12.Top:=label12.top+24;
cbprocesswatcher.Visible:=false;
cbKdebug.Visible:=false;
btnUnrandomizerconfig.Visible:=false;
{$else}
panel1.Visible:=fileexists(cheatenginedir+'stealth.dll');
{$endif}
//set the default popup
laststatePopupHide:=vk_next;
lastpopupmodifier:=MOD_CONTROL or MOD_ALT;
laststatepause:=ord('P');
lastpausemodifier:=MOD_CONTROL or MOD_ALT;
laststateSpeedhack:=ord('S');
laststateSpeedhack:=MOD_CONTROL or MOD_ALT;
end;
procedure TformSettings.cbKernelQueryMemoryRegionClick(Sender: TObject);
begin
if (cbkdebug.checked) or (cbKernelQueryMemoryRegion.Checked) or (cbKernelReadWriteProcessMemory.Checked) then
begin
cbKernelOpenProcess.Checked:=true;
cbKernelOpenProcess.Enabled:=false;
end
else cbKernelOpenProcess.Enabled:=true;
end;
procedure TformSettings.cbUndoMemoryChangesClick(Sender: TObject);
begin
if (cbUndoMemoryChanges.checked) and (not LoadingSettingsFromRegistry) then
cbUndoMemoryChanges.checked:=Messagedlg('Are you sure the memory is clean from any alterations?',mtconfirmation,[mbyes,mbno],0)=mryes;
cbforceundo.Enabled:=cbUndoMemoryChanges.checked;
if not cbforceundo.enabled then cbforceundo.Checked:=false;
end;
procedure TformSettings.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
{$ifndef net}
if frmHotkeyConfig<>nil then
begin
frmhotkeyconfig.free;
frmHotkeyConfig:=nil;
end;
{$endif}
end;
procedure TformSettings.Button3Click(Sender: TObject);
var i:integer;
begin
{$ifndef net}
if frmHotkeyConfig=nil then
frmhotkeyconfig:=tfrmhotkeyconfig.create(self);
//fill the list with the current hotkeylist
if not ClickedOK then
begin
for i:=0 to length(hotkeythread.hotkeylist)-1 do
if hotkeythread.hotkeylist[i].handler2 then
frmhotkeyconfig.newhotkeys[hotkeythread.hotkeylist[i].id]:=hotkeythread.hotkeylist[i].keys;
frmhotkeyconfig.newspeedhackspeed1:=speedhackspeed1;
frmhotkeyconfig.newspeedhackspeed1:=speedhackspeed2;
frmhotkeyconfig.newspeedhackspeed1:=speedhackspeed3;
frmhotkeyconfig.newspeedhackspeed1:=speedhackspeed4;
frmhotkeyconfig.newspeedhackspeed1:=speedhackspeed5;
frmhotkeyconfig.speedupdelta:=speedupdelta;
frmhotkeyconfig.slowdowndelta:=slowdowndelta;
end;
if frmHotkeyConfig.showmodal=mrok then clickedok:=true;
{$endif}
end;
procedure TformSettings.startsystemcallretrieverifneeded;
begin
startsystemcallretrieverifneeded('');
end;
procedure TformSettings.startsystemcallretrieverifneeded(why:string);
var
proc_info: TProcessInformation;
startinfo: TStartupInfo;
ec: dword;
begin
if systemcallretrieverexecuted then
begin
//check if it's still running
if GetExitCodeProcess(systemcallretrieverhandle,ec) then
if ec=STILL_ACTIVE then exit; //still running
end;
//start the systemsignalretriever if there's no callnumbers.dat
if not fileexists(cheatenginedir+'kerneldata.dat') then
begin
if why<>'' then
if messagedlg(why,mtconfirmation,[mbyes,mbno],0)<>mryes then exit;
zeromemory(@proc_info,sizeof(proc_info));
zeromemory(@startinfo,sizeof(startinfo));
startinfo.cb:=sizeof(startinfo);
if Createprocess(nil,'systemcallretriever.exe',nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,startinfo,proc_info) then
begin
systemcallretrieverexecuted:=true;
systemcallretrieverhandle:=proc_info.hProcess;
end;
end;
end;
procedure TformSettings.cbProtectMeClick(Sender: TObject);
begin
btnmorestealth.enabled:=cbProtectme.checked;
if cbprotectme.Checked then
startsystemcallretrieverifneeded;
end;
procedure TformSettings.cbKdebugClick(Sender: TObject);
begin
if (cbkdebug.checked) or (cbKernelQueryMemoryRegion.Checked) or (cbKernelReadWriteProcessMemory.Checked) then
begin
cbKernelOpenProcess.Checked:=true;
cbKernelOpenProcess.Enabled:=false;
end
else cbKernelOpenProcess.Enabled:=true;
if cbkdebug.Checked then
begin
cbKernelOpenProcess.enabled:=false;
cbKernelOpenProcess.Checked:=true;
cbProcessWatcher.Enabled:=false;
cbProcesswatcher.Checked:=true;
cbProcessWatcherClick(cbProcessWatcher);
end else cbprocesswatcher.enableD:=true;
end;
procedure TformSettings.cbProcessWatcherClick(Sender: TObject);
var
proc_info: TProcessInformation;
startinfo: TStartupInfo;
begin
if cbprocesswatcher.checked then
startsystemcallretrieverifneeded('To get more detailed information about processes, like the processname, it''s recommended to run the kerneldataretriever program. Do you want to run it ?');
end;
procedure TformSettings.btnMoreStealthClick(Sender: TObject);
var i: integer;
p:pbyte;
p2: pchar;
begin
{$ifndef net}
if frmModuleSafety=nil then
begin
//fill the list with all the modules
frmModuleSafety:=TfrmModuleSafety.create(self);
with frmModuleSafety do
begin
rbDenyList.checked:=DenyList;
rbAllowList.Checked:=not Denylist;
cbGlobalDeny.Checked:=DenyListGlobal;
p:=modulelist;
p2:=modulelist;
i:=0;
while i<modulelistsize do
begin
if p^=0 then
begin
ListBox1.Items.Add(p2);
p2:=pointer(p);
end;
inc(p);
inc(i);
end;
end;
end;
frmModuleSafety.showmodal;
//now fill the tempmodulelist with the data of the list
//get the size
if tempmodulelist<>nil then freemem(tempmodulelist);
tempmodulelistsize:=0;
for i:=0 to frmmodulesafety.ListBox1.items.count-1 do
inc(tempmodulelistsize,length(frmmodulesafety.ListBox1.Items[i])+1); //+1 because of the 0 terminator
getmem(tempmodulelist,tempmodulelistsize);
p:=pointer(tempmodulelist);
for i:=0 to frmmodulesafety.ListBox1.items.count-1 do
begin
copymemory(p,@frmmodulesafety.ListBox1.items[i][1],length(frmmodulesafety.ListBox1.items[i])+1);
inc(p,length(frmmodulesafety.ListBox1.items[i])+1);
end;
tempdenylist:=frmModuleSafety.rbDenyList.checked;
tempDenyListGlobal:=frmModuleSafety.cbGlobalDeny.Checked;
{$endif}
end;
procedure TformSettings.btnUnrandomizerconfigClick(Sender: TObject);
begin
{$ifndef net}
with tfrmConfigUnrandomizer.Create(self) do
begin
edtdefault.text:=inttostr(unrandomizersettings.defaultreturn);
cbIncremental.checked:=unrandomizersettings.incremental;
if showmodal=mrok then
begin
unrandomizersettings.defaultreturn:=strtoint(edtdefault.Text);
unrandomizersettings.incremental:=cbincremental.Checked;
end;
free;
end;
{$endif}
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -