BSOne.SFC/eCrmHE/EXE_bs1rcd/Define.pas

119 lines
2.1 KiB
Plaintext

unit Define;
interface
uses
Tocsg.Param, Winapi.Windows, System.SysUtils;
const
APP_NAME = 'bs1rcd';
DAT_PARAM = '#prcd.dat';
MUTEX_NAME = 'Global\251120bs1rcd';
{$IFDEF WIN64}
DIR_AVLIB = 'avlib64\';
{$ELSE}
DIR_AVLIB = 'avlib\';
{$ENDIF}
type
TTaskInfo = record
hRcvWnd: HWND;
llTasker: LONGLONG;
sApps,
sTaskDir: String;
nMaxMain: Integer;
end;
TExeType = (etNone, etTest, etRecordWait, etRecordConn);
TProcessParam = class(TTgParam)
private
ExeType_: TExeType;
TaskInfo_: TTaskInfo;
sOwMtxName_: String;
public
Constructor Create;
Destructor Destroy; override;
function ProcessParam: Boolean;
property ExeType: TExeType read ExeType_;
property TaskInfo: TTaskInfo read TaskInfo_;
property OwMtxName: String read sOwMtxName_;
end;
var
gParam: TProcessParam = nil;
implementation
uses
Tocsg.Path, superobject;
{ TProcessParam }
Constructor TProcessParam.Create;
begin
Inherited Create;
ASSERT(gParam = nil);
gParam := Self;
ExeType_ := etNone;
ZeroMemory(@TaskInfo_, SizeOf(TaskInfo_));
end;
Destructor TProcessParam.Destroy;
begin
gParam := nil;
Inherited;
end;
function TProcessParam.ProcessParam: Boolean;
var
sPath: String;
O: ISuperObject;
begin
Result := false;
if ExistsParam('-test_rcd') then
begin
Result := true;
ExeType_ := etTest;
exit;
end;
sPath := GetParamValue('-p');
if sPath = '' then
sPath := GetRunExePathDir + DAT_PARAM;
if FileExists(sPath) then
begin
try
if not LoadJsonObjFromFile(O, sPath) then
exit;
case O.I['Cmd'] of
1 :
begin
ExeType_ := etRecordWait;
TaskInfo_.hRcvWnd := O.I['RcvWnd'];
TaskInfo_.llTasker := O.I['Tasker'];
TaskInfo_.sApps := O.S['Apps'];
TaskInfo_.sTaskDir := O.S['TaskDir'];
TaskInfo_.nMaxMain := O.I['MaxMin'];
sOwMtxName_ := O.S['OwMtx'];
end;
else exit;
end;
Result := true;
finally
{$IFNDEF DEBUG}
DeleteFile(sPath);
{$ENDIF}
end;
end;
end;
end.