program AppCtrl; uses Vcl.Forms, Tocsg.Win32, Tocsg.Safe, Tocsg.Param, Tocsg.Path, Tocsg.Process, Vcl.Dialogs, System.SysUtils, DAppCtrlMain in 'DAppCtrlMain.pas' {DlgAppCtrlMain}, AppCtrlServer in 'AppCtrlServer.pas', Define in 'Define.pas', AppCtrlDefine in '..\LIB_Common\AppCtrlDefine.pas', Tocsg.DRM.Encrypt in '..\..\TocsgDRM\LIB_Common\Tocsg.DRM.Encrypt.pas', Condition in '..\..\..\eCrmHE\LIB_Common\Condition.pas', GlobalDefine in '..\..\..\eCrmHE\LIB_Common\GlobalDefine.pas'; {$R *.res} var mtx: TTgMutex; param: TTgParam; begin ReportMemoryLeaksOnShutdown := DebugHook <> 0; param := TTgParam.Create; try if param.ExistsParam('-hook') then begin var nResult := InjectModule(StrToIntDef(param.GetParamValue('-hook'), 0), GetRunExePathDir + DLL_APIHOOK); if nResult <> 1 then ShowMessage('Fail .. Code=' + IntToStr(nResult)); exit; end else if param.ExistsParam('-clearhook') then begin EjectModuleFromPath(GetRunExePathDir + DLL_APIHOOK); Sleep(1000); EjectModuleFromPath(GetRunExePathDir + DLL_APIHOOK); exit; end; finally param.Free; end; Guard(mtx, TTgMutex.Create(APP_MUTEX {$IFNDEF WIN64} + '32' {$ENDIF})); if mtx.MutexState <> msCreateOk then exit; Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TDlgAppCtrlMain, DlgAppCtrlMain); Application.Run; end.