BSOne.SFC/eCrmHE/EXE_eCrmHomeEdition/Handle/HandleConfig.pas

110 lines
3.3 KiB
Plaintext

{*******************************************************}
{ }
{ HandleConfig }
{ }
{ Copyright (C) 2022 kku }
{ }
{*******************************************************}
unit HandleConfig;
interface
uses
Tocsg.Obj, System.SysUtils, System.Classes;
type
THandleConfig = class(TTgObject)
private
bUpdated_: Boolean; // 최초 연결후 업데이트 받았는가? 22_0422 13:25:44 kku
bIsScreenSaver_,
bIsPasswordSet_,
bIsPasswordSetTermOk_: Boolean;
sIdleTime_,
sOsVersion_,
sOsMajorVer_,
sUserName_: String;
public
Constructor Create;
procedure SetIdleTime(sVal: String);
procedure Update(sData: String); overload;
procedure Update(bScrSecu, bPassSet, bPassTermOk: Boolean; sUserName: String); overload;
property Updated: Boolean read bUpdated_;
property IsScreenSaver: Boolean read bIsScreenSaver_;
property IsPasswordSet: Boolean read bIsPasswordSet_;
property IsPasswordSetTermOk: Boolean read bIsPasswordSetTermOk_;
property IdleTime: String read sIdleTime_;
property OsVersion: String read sOsVersion_;
property OsMajorVer: String read sOsMajorVer_;
property UserName: String read sUserName_;
end;
implementation
uses
Tocsg.Safe, Tocsg.Strings, EM.WinOSVersion, Winapi.Windows, Tocsg.Files, Tocsg.Path, Tocsg.Registry;
{ THandleConfig }
Constructor THandleConfig.Create;
begin
Inherited Create;
bUpdated_ := false;
bIsScreenSaver_ := true;
bIsPasswordSet_ := true;
bIsPasswordSetTermOk_ := true;
sIdleTime_ := '0';
sOsVersion_ := GetWinVersion.WinVer;
sOsMajorVer_ := GetRegValueAsString(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'DisplayVersion');
if sOsMajorVer_ = '' then
sOsMajorVer_ := ''; // 'None';
sUserName_ := '';
end;
procedure THandleConfig.SetIdleTime(sVal: String);
begin
sIdleTime_ := sVal;
end;
procedure THandleConfig.Update(sData: String);
var
DataList: TStringList;
i: Integer;
begin
// _Trace('Update()');
bUpdated_ := true;
Guard(DataList, TStringList.Create);
SplitString(sData, '_tocLine_', DataList);
for i := 0 to DataList.Count - 1 do
begin
if DataList[i].Contains('ScreenSecure:') then
bIsScreenSaver_ := DataList[i].Contains('1')
// else if DataList[i].Contains('Version:') then
// sOsVersion_ := Trim(DataList[i].Replace('Version:', ''))
else if DataList[i].Contains('WinLogin:') then
bIsPasswordSet_ := DataList[i].Contains('PasswordSet')
else if DataList[i].Contains('IdleTime:') then
sIdleTime_ := Trim(DataList[i].Replace('IdleTime:', ''))
else if DataList[i].Contains('DomainName:') then
sUserName_ := Trim(DataList[i].Replace('DomainName:', ''));//.Trim;
end;
end;
procedure THandleConfig.Update(bScrSecu, bPassSet, bPassTermOk: Boolean; sUserName: String);
begin
// 일단 기존 형식으로 구색을 맞춰주고 나중에 정리 하자 22_0519 10:23:31 kku
bUpdated_ := true;
bIsScreenSaver_ := bScrSecu;
bIsPasswordSet_ := bPassSet;
bIsPasswordSetTermOk_ := bPassTermOk;
sUserName_ := sUserName;
end;
end.