{*******************************************************} { } { 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.