999 lines
36 KiB
Plaintext
999 lines
36 KiB
Plaintext
unit DNoticeBT;
|
||
|
||
interface
|
||
|
||
uses
|
||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Imaging.pngimage,
|
||
Vcl.StdCtrls, System.ImageList, Vcl.ImgList, PngImageList, Tocsg.Win32,
|
||
Define, Vcl.WinXPanels, superobject;
|
||
|
||
const
|
||
PARAM_GO_SETPASS = '/c explorer ms-settings:signinoptions'; // '/c control userpasswords';
|
||
PARAM_GO_ANTIVIRUS = '/c explorer windowsdefender:';
|
||
PARAM_GO_FIREWALL = '/c control firewall.cpl';
|
||
PARAM_GO_FIREWALL2 = '/c explorer windowsdefender://network/';
|
||
PARAM_GO_WINUPDATE = '/c explorer ms-settings:windowsupdate';
|
||
PARAM_GO_SETSAVER = '/c rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1';
|
||
PARAM_GO_SYSTEMINFO = '/c control /name Microsoft.System';
|
||
PARAM_GO_UNINSTALL = '/c appwiz.cpl';
|
||
|
||
type
|
||
TDlgNoticeBT = class(TForm)
|
||
imgTop: TImage;
|
||
lbTitle: TLabel;
|
||
imgBtnList: TPngImageList;
|
||
tInit: TTimer;
|
||
btnClose: TButton;
|
||
imgTitles: TPngImageCollection;
|
||
cpMain: TCardPanel;
|
||
cdDef: TCard;
|
||
imgOk: TImage;
|
||
imgSet: TImage;
|
||
lbOk: TLabel;
|
||
mmMsg: TMemo;
|
||
lbSet: TLabel;
|
||
cdPI: TCard;
|
||
Label2: TLabel;
|
||
lbGrade: TLabel;
|
||
Label5: TLabel;
|
||
lbPiCnt: TLabel;
|
||
lbMsgEx: TLabel;
|
||
tClose: TTimer;
|
||
pnTop: TPanel;
|
||
lbMode: TLabel;
|
||
procedure imgOkMouseEnter(Sender: TObject);
|
||
procedure imgOkMouseLeave(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure imgOkClick(Sender: TObject);
|
||
procedure imgSetClick(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure FormKeyPress(Sender: TObject; var Key: Char);
|
||
procedure imgTopMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
procedure tInitTimer(Sender: TObject);
|
||
procedure btnCloseClick(Sender: TObject);
|
||
procedure lbPiCntMouseEnter(Sender: TObject);
|
||
procedure lbPiCntMouseLeave(Sender: TObject);
|
||
procedure lbPiCntClick(Sender: TObject);
|
||
procedure tCloseTimer(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
sCmdParam_,
|
||
sNotiCenterMsg_: String;
|
||
Mutex_: TTgMutex;
|
||
procedure SetNotiForm;
|
||
procedure SetImgBtn(imgBtn: TImage; nImgIdx: Integer);
|
||
procedure SetOneButtion;
|
||
procedure SetPiResult4HEC(nRstCnt: Integer);
|
||
public
|
||
{ Public declarations }
|
||
Constructor Create(aOwner: TComponent); override;
|
||
procedure CreateParams(var Params: TCreateParams); override; // 작업표시줄에 표시
|
||
Destructor Destroy; override;
|
||
procedure PopupMessage(sJsonData: String);
|
||
|
||
property NotiCenterMsg: String read sNotiCenterMsg_;
|
||
end;
|
||
|
||
var
|
||
DlgNoticeBT: TDlgNoticeBT;
|
||
|
||
resourcestring
|
||
RS_SecuViol = '보안 정책 위반';
|
||
RS_Vul = '취약점 발생';
|
||
RS_Noti = '공지 사항';
|
||
RS_Info = '정보 알림';
|
||
RS_SetVul = '조치';
|
||
RS_DevExcept = '예외';
|
||
|
||
implementation
|
||
|
||
uses
|
||
Tocsg.Exception, Tocsg.Safe, Tocsg.Shell, GlobalDefine,
|
||
Tocsg.Strings, Vcl.Clipbrd, Condition, Tocsg.Path, Tocsg.Trace,
|
||
Tocsg.WTS, Tocsg.Process, Tocsg.Json, Tocsg.Hash, Tocsg.Convert;
|
||
|
||
resourcestring
|
||
RS_TitleVul = '보안 취약점이 발견되었습니다.';
|
||
RS_TitlePrevent = '보안정책 관련 활동이 탐지되었습니다'; // '보안정책 위반 행위가 탐지되었습니다.';
|
||
RS_TitlePreventSimple = '보안정책 위반 행위 탐지';
|
||
RS_SafeCompleted = '취약점 점검 대상 항목 조치가 완료되었습니다.';
|
||
RS_SafeCompletedSimple = '보안 취약점 조치 완료';
|
||
RS_InitRemoteConn = '보안 취약점이 모두 조치 되어서' + #13#10 + '보안모드를 사용할 수 있습니다.'; // '이제 원격접속을 시작할 수 있습니다.';
|
||
RS_SafeCompletedLX = '보안 취약점 조치가 완료되었습니다.';
|
||
RS_InitRemoteConnLX = '원격 접속을 사용할 수 있습니다.';
|
||
RS_UnsafeOS = '사용하시는 OS는 안전하지 않습니다.';
|
||
RS_EOSVersion = '(End-of-Service 버전)';
|
||
RS_NoAllVulCheck = '특정 취약점검은 동작하지 않을 수 있습니다.';
|
||
RS_NoAllVulCheckLX = '최신 OS 버전으로 업데이트 후 사용하시기 바랍니다.';
|
||
RS_NoUpToDateOS = '윈도우 보안 패치가 최신이 아닙니다.';
|
||
RS_OSPatchAction1 = ' 조치 버튼 클릭 후 "업데이트 확인"을 통해 패치를';
|
||
RS_OSPatchAction2 = ' 진행하세요.';
|
||
RS_OSPatchAction3 = ' 보안 패치에 따라 PC재부팅이 필요합니다.';
|
||
RS_OSPatchActionLX = '조치 버튼 클릭 후 최신 보안 패치를 설치를 권고합니다.';
|
||
RS_VulPW1 = '사용자 계정 암호가 설정되어 있지 않습니다.';
|
||
RS_VulPW2 = ' 조치 버튼 클릭 후 "PC설정에서 내 계정 변경"';
|
||
RS_VulPW3 = ' -> "로그인옵션"';
|
||
RS_VulPW4 = ' -> "비밀번호"에서 암호를 설정하세요.';
|
||
RS_VulPW2LX = '조치 버튼 클릭 후 [사용자 계정 변경]';
|
||
RS_VulPW3LX = '– [다른 계정 관리] – [암호 만들기]에서 암호를 생성 후';
|
||
RS_VulPW4LX = '사용하시기 바랍니다. ';
|
||
RS_LastChangePw = '마지막으로 암호 설정한 날짜 :';
|
||
RS_VulPwDate1 = '사용자 계정 암호가 오래되었습니다.';
|
||
RS_VulPwDate2 = ' 조치 버튼 클릭 후 "다른 계정 관리"';
|
||
RS_VulPwDate3 = ' -> "계정 클릭"';
|
||
RS_VulPwDate4 = ' -> "암호 변경"에서 새암호를 설정하세요.';
|
||
RS_VulAV1 = '백신 프로그램이 설정되어 있지 않습니다.';
|
||
RS_VulAV2 = ' 조치 버튼 클릭 후 "Windows 보안센터"';
|
||
RS_VulAV3 = ' -> "바이러스 및 위협 방지"에서';
|
||
RS_VulAV4 = ' 백신을 활성화 하세요.';
|
||
RS_VulAV2LX = '조치 버튼 클릭 후 [바이러스 및 위협 방지]';
|
||
RS_VulAV3LX = '– [앱 열기] – [환경설정] – [백신 실시간 검사 사용]을';
|
||
RS_VulAV4LX = '활성화하시기 바랍니다.';
|
||
RS_VulFW1 = '방화벽 설정이 되어있지 않습니다.';
|
||
RS_VulFW2 = ' 조치 버튼 클릭 후 "권장 설정 사용"을';
|
||
RS_VulFW3 = ' 눌러 방화벽을 활성화하세요.';
|
||
RS_VulFW2LX = '조치 버튼 클릭 후 [권장 설정 사용]을 눌러 방화벽을';
|
||
RS_VulFW3LX = '활성화하시기 바랍니다.';
|
||
RS_VulScreen1 = '화면 보호기가 설정되어 있지 않습니다.';
|
||
RS_VulScreen2 = ' 조치 버튼 클릭 후 "다시 시작할 때 로그온 화면 표시';
|
||
RS_VulScreen3 = ' 체크박스"를 활성화 하세요.';
|
||
RS_VulScreen2LX = '조치 버튼 클릭 후 [다시 시작할 때 로그온 화면 표시';
|
||
RS_VulScreen3LX = '체크박스]를 활성화하시기 바랍니다. ';
|
||
RS_VulEmpNo1 = '서버에서 검증되지 않은 사번입니다.';
|
||
RS_VulEmpNo2 = '조치 버튼 클릭 후 검증된 사번을 입력하거나';
|
||
RS_VulEmpNo3 = '관리자에게 검증을 요청 해주십시오.';
|
||
RS_InvalidEmpNo = ' 미검증 사번 : ';
|
||
RS_VulAllow1 = '접속 승인이 되지 않았습니다.';
|
||
RS_VulAllow2 = '접속 승인 여부를 확인 후 재시도하세요.';
|
||
RS_NoAccessMAC = '현재 PC의 MAC이 접속허용되지 않았습니다.';
|
||
RS_RequestManager = '관리자에게 문의하세요.';
|
||
RS_ExpireConnDate = '접속 승인 기간이 만료되었습니다.';
|
||
RS_PersonalInfoOver = '개인정보 임계치가 초과 되었습니다.';
|
||
RS_PersonalInfoOver1 = '검출출된 개인정보 결과를 확인 / 조치 후';
|
||
RS_PersonalInfoOver2 = '개인정보 검사를 수행해 주십시오.';
|
||
RS_UpdateCompleted = '업데이트 완료';
|
||
RS_MsgUpdateCompleted = '프로그램이 업데이트 되었습니다.';
|
||
RS_FMT_Version = ' - 버전 : %s';
|
||
RS_WriteReport = '사용 보고서 작성';
|
||
RS_MsgWriteReport1 = '다시 보안 모드에 진입하기 전에';
|
||
RS_MsgWriteReport2 = '사용 보고서를 작성 해주십시오.';
|
||
RS_MsgLxPrevent = '** 원격지 근무 보안 정책이 위반되었습니다 **';
|
||
RS_ClipCutLX = '- 복사, 캡쳐를 금지합니다.';
|
||
RS_ClipCut = '클립보드 (복사, 캡쳐) 사용이 차단 되었습니다.';
|
||
RS_FMT_ClipCutApp = '사용 프로그램 : %s';
|
||
RS_USBCutLX = '** USB 사용을 금지합니다. **';
|
||
RS_USB_RO_LX = '** USB가 쓰기 금지됩니다. **';
|
||
RS_USBCut = '외부 저장소 연결이 해제 되었습니다.';
|
||
RS_USB_RO = '외부 저장소의 쓰기가 금지됩니다.';
|
||
RS_CDROMCut = 'CD/DVD 저장소 연결이 해제 되었습니다.';
|
||
RS_CDROMCutLX = '** CD/DCD 사용을 금지합니다. **';
|
||
RS_RouteCutLX = '라우팅 테이블 변경이 차단 되었습니다.';
|
||
RS_RouteCut = '라우팅 테이블 변경이 차단 되었습니다.';
|
||
RS_FWaterLX = '워터마크가 적용되었습니다.';
|
||
RS_FWater = '워터마크가 적용되었습니다.';
|
||
RS_FWatchLX = '파일 변경이 탐지되었습니다.';
|
||
RS_FWatch = '로컬 파일 변경이 탐지되었습니다.';
|
||
RS_FCutLX = '파일 저장이 차단됩니다.';
|
||
RS_FDelAfter = '만약 사용 중이면, 사용 후 삭제됩니다.';
|
||
RS_FCut = '파일 생성이 차단 되었습니다.';
|
||
RS_TempConnect = '임시 접속이 허용되었습니다. (Unsafe Mode)';
|
||
RS_TempConnectExit = '본 연결은 %d분 뒤 강제 종료됩니다.';
|
||
RS_TerminateApp = '앱이 종료되었습니다.';
|
||
RS_MonitorApp = '앱 실행이 감지되었습니다.';
|
||
RS_ExeWhiteAppLX = '- 필수 앱을 실행해 주세요.';
|
||
RS_ExeWhiteApp1 = '다음 필수 앱이 실행되고 있지 않습니다.';
|
||
RS_ExeWhiteApp2 = '연결이 초기화됩니다.';
|
||
RS_FMaskLX = '민감정보를 마스킹합니다.';
|
||
RS_FMask = '파일이 마스킹 되었습니다.';
|
||
RS_URLCut = 'URL 연결이 차단 되었습니다.';
|
||
RS_URLMon = 'URL 연결이 감지 되었습니다.';
|
||
RS_FMT_URLCut = ' - URL : %s';
|
||
RS_FMT_URLInfo = ' - URL 평판 : %s';
|
||
RS_DetectAppInstSankyo = '비인가 소프트웨어 설치 행위가 탐지되었습니다.';
|
||
RS_DetectAppInstSankyo2 = '비인가 프로그램 설치가 감지되었습니다.';
|
||
RS_DetectAppInst = '프로그램 설치가 감지되었습니다.';
|
||
RS_DetectAppInst1 = '아래 ''조치'' 버튼을 눌러 제어판에서 해당 프로그램을';
|
||
RS_DetectAppInst2 = '삭제 해주시기 바랍니다.';
|
||
RS_DetectWIFI = '무선 네트워크 접속(WIFI)이 감지되었습니다.';
|
||
RS_AfterCut = '잠시 후 차단됩니다.';
|
||
RS_DetectBlue = '블루투스 연결이 감지되었습니다.';
|
||
RS_BlueCut = '블루투스 연결을 차단합니다.';
|
||
RS_DetectMTP = 'MTP 연결이 감지되었습니다.';
|
||
RS_MTPCut = 'MTP 연결을 차단합니다.';
|
||
RS_DetectPrinter = '프린터 사용이 감지되었습니다.';
|
||
RS_NotSupportWT = '워터마크를 지원하지 않는 프로그램입니다.';
|
||
RS_NotSupportPTR = '승인되지 않은 프린터 입니다.';
|
||
RS_NotSupportPTR_IP = '승인되지 않은 프린터 IP 입니다.';
|
||
RS_NotSupportAPP = '승인되지 않은 APP : ';
|
||
RS_NotSupportURL = '승인되지 않은 URL : ';
|
||
RS_FoundCtt = '개인정보 검출됨 : ';
|
||
RS_PrinterCut = '프린터 사용을 차단합니다.';
|
||
RS_MsgCopyClipboard = '메시지가 클립보드에 복사 되었습니다.';
|
||
RS_CTTSCH = '개인정보 검사';
|
||
RS_CTTSCH_START = '개인정보 검사가 시작되었습니다.';
|
||
RS_CTTSCH_COMPLETE = '개인정보 검사를 완료했습니다.';
|
||
RS_CTTSCH_TILE = '검사 시간';
|
||
RS_CTTSCH_RESULT_COUNT = '검출된 파일 수';
|
||
RS_CttSchVulModeMsg1 = '많은 수의 개인정보가 추출 되었습니다.';
|
||
RS_CttSchVulModeMsg2 = '개인정보 검사 결과를 확인하고 조치 후';
|
||
RS_CttSchVulModeMsg3 = '개인정보 검사를 다시 수행해 주십시오.';
|
||
RS_DetectCopyCapture = '- 복사, 캡쳐가 감지 되었습니다.';
|
||
RS_DetectCB = '클립보드 (복사, 캡쳐) 사용이 감지 되었습니다.';
|
||
RS_DetectRemoveableDev = '외부 저장소 연결이 감지 되었습니다.';
|
||
RS_DetectCdrom = 'CD/DVD 연결이 감지 되었습니다.';
|
||
RS_DeleteInstApp = '설치된 프로그램을 삭제합니다.';
|
||
RS_DeleteInstAppMsg1 = '아래 ''조치'' 버튼을 눌러 삭제를 확인하고,';
|
||
RS_DeleteInstAppMsg2 = '삭제가 되지 않았다면 삭제해주십시오.';
|
||
RS_PrintWater1 = '프린트 워터마크 적용';
|
||
RS_PrintWater2 = '프린트 워터마크가 적용 되었습니다.';
|
||
RS_DetectFileUse = '파일 첨부, 사용이 감지 되었습니다.';
|
||
RS_DetectFileBlock = '파일 첨부, 사용이 차단 되었습니다.';
|
||
RS_Program = '프로그램 : ';
|
||
RS_FileName = '파일 이름 : ';
|
||
RS_FilePath = '파일 경로 : ';
|
||
RS_FileTag = '파일 태그 : ';
|
||
RS_OpenDrm1 = 'DRM 문서 열람';
|
||
RS_OpenDrm2 = 'DRM 문서를 확인합니다.';
|
||
RS_OpenDrm3 = 'DRM 문서를 수정할 수 없습니다..';
|
||
RS_BlockDrm1 = 'DRM 문서를 열람할 수 없습니다.';
|
||
RS_BlockDrm2 = '관리자에게 열람 권한을 문의해 주십시오.';
|
||
RS_BlockDrm3 = '다른 환경에서 만들어진 DRM 문서입니다.';
|
||
RS_EncDrm1 = 'DRM 문서 암호화';
|
||
RS_EncDrm2 = 'DRM 문서 암호화가 적용됩니다.';
|
||
RS_DocName = '문서이름 : ';
|
||
RS_DetectFRename = '파일 이름변경이 감지 되었습니다.';
|
||
RS_BlockFRename = '파일 이름변경이 차단 되었습니다.';
|
||
RS_OrgName = '원본 이름 : ';
|
||
RS_ChgName = '변경 이름 : ';
|
||
RS_BlockShareFolder = '공유 폴더 설정이 차단 되었습니다.';
|
||
RS_DetectShareFolder = '공유 폴더 설정이 감지 되었습니다.';
|
||
RS_BlockCappApp = '캡쳐 APP이 차단 되었습니다.';
|
||
RS_DetectCappApp = '캡쳐 APP이 감지 되었습니다.';
|
||
RS_MsgVul1_ABL = '%s 설정이 되어 있지 않습니다.';
|
||
RS_MsgVul2_ABL = '[취약상태]로 되어 있는 버튼을 클릭하여 설정을 변경하세요.';
|
||
RS_ScrSv_ABL = '[화면 보호기]';
|
||
RS_AV_ABL = '[Anti-Virus]';
|
||
RS_UserPw_ABL = '[계정 비밀번호]';
|
||
RS_FW_ABL = '[방화벽]';
|
||
RS_OsVer_ABL = '[OS 버전]';
|
||
RS_OsPatch_ABL = '[OS 패치]';
|
||
RS_TITLE = '제목 : ';
|
||
RS_CC = '참조 : ';
|
||
RS_TO = '수신자 : ';
|
||
RS_OutlookMonMsg = '아웃룩 메일 전송이 감지 되었습니다.';
|
||
RS_OutlookMaskMsg = '아웃룩 전송 메일이 마스킹 되었습니다.';
|
||
RS_OutlookBlockMsg = '아웃룩 메일 전송이 차단 되었습니다.';
|
||
RS_OutlookBlockApp = '아웃룩이 보안 정책으로 차단 되었습니다.';
|
||
RS_OutlookBlockAppMsg1 = '아래 "조치" 버튼을 눌러서';
|
||
RS_OutlookBlockAppMsg2 = '아웃룩 보안 모듈을 적용 후 다시 실행 해주십시오.';
|
||
RS_OutlookSecu = '아웃룩 보안 적용';
|
||
RS_OutlookSecuMsg = '아웃룩 보안이 적용되었습니다.';
|
||
RS_BLOCK_MTP_WRITE = 'MTP 장치에서 파일쓰기가 차단 되었습니다.';
|
||
RS_RELEASE_QUARANTINE = '검역소에 격리된 파일이 해제 되었습니다.';
|
||
RS_RELEASE_FILE_QUARANTINE = '파일 격리 해제';
|
||
RS_ChangeMode = '모드 변경';
|
||
RS_BlockTethering = '네트워크가 차단 되었습니다.';
|
||
RS_MsgModeSleep = '[수면 모드 입니다]';
|
||
RS_MsgModeSecu = '[보안 모드 입니다]';
|
||
RS_MsgModeVul = '[취약 모드 입니다. 취약점을 조치해주세요]';
|
||
RS_RS_MsgModeNoId = '[미인증 모드 입니다. ID 인증이 필요합니다]';
|
||
RS_MsgModeOff = '[오프라인 모드 입니다]';
|
||
RS_MsgModeExpt = '[예외 모드 입니다]';
|
||
RS_ReqApproval = '결재 승인 요청';
|
||
RS_Confirm = '승인';
|
||
RS_MsgConfirm = '확인하시고 승인 바랍니다';
|
||
RS_PrtApproval = '출력 요청';
|
||
RS_MsgPrtApproval = '출력이 요청 되었습니다.';
|
||
RS_UsbExcept = 'USB 매체 예외';
|
||
RS_MsgUsbExcept = 'USB 매체 예외가 요청 되었습니다.';
|
||
RS_UrlExcept = '브라우저 접근 예외';
|
||
RS_MsgUrlExcept = '브라우저 접근 예외가 요청 되었습니다.';
|
||
RS_DecExcept = 'DRM 해제 요청';
|
||
RS_MsgDecExcept = 'DRM 해제가 요청 되었습니다.';
|
||
RS_FileExpExcept = '파일 반출 요청';
|
||
RS_MsgFileExpExcept = '파일 반출이 요청 되었습니다.';
|
||
RS_MtpExcept = 'MTP 매체 예외';
|
||
RS_MtpUrlExcept = 'MTP 매체 예외 요청 되었습니다.';
|
||
RS_BtExcept = 'Bluetooth 매체 예외';
|
||
RS_BtUrlExcept = 'Bluetooth 매체 예외 요청 되었습니다.';
|
||
RS_CdExcept = 'CD/DVD 매체 예외';
|
||
RS_CdUrlExcept = 'CD/DVD 매체 예외 요청 되었습니다.';
|
||
RS_PrtWaterExcept = '프린트 워터마크 예외';
|
||
RS_MsgPrtWaterExcept = '프린트 워터마크가 예외 요청 되었습니다.';
|
||
RS_ApprovalResult = '결재 확인';
|
||
RS_NotFoundPrintInfo = '출력 정보를 찾을 수 없습니다. (%s)';
|
||
RS_PrintPass = '출력 요청이 승인 되었습니다.';
|
||
RS_PrintReqReject = '출력 요청이 반려 되었습니다.';
|
||
RS_MsgError = '오류가 발생했습니다';
|
||
RS_UsbReqPass = 'USB 매체 예외가 승인 되었습니다.';
|
||
RS_UsbReqReject = 'USB 매체 예외 요청이 반려 되었습니다.';
|
||
RS_UrlReqPass = '브라우저 접근 예외가 승인 되었습니다.';
|
||
RS_DrmReqPass = 'DRM 해제 요청이 승인 되었습니다.';
|
||
RS_DrmReqReject = 'DRM 해제 요청이 반려 되었습니다.';
|
||
RS_FileExpReqPass = '파일 반출 요청이 승인 되었습니다.';
|
||
RS_FileExpReqReject = '파일 반출 요청이 반려 되었습니다.';
|
||
RS_UrlReqReject = '브라우저 접근 예외 요청이 반려 되었습니다.';
|
||
RS_MtpReqPass = 'MTP 매체 예외가 승인 되었습니다.';
|
||
RS_MtpReqReject = 'MTP 매체 예외 요청이 반려 되었습니다.';
|
||
RS_BtReqPass = 'Bluetooth 매체 예외가 승인 되었습니다.';
|
||
RS_BtReqReject = 'Bluetooth 매체 예외 요청이 반려 되었습니다.';
|
||
RS_CdReqPass = 'CD/DVD 매체 예외가 승인 되었습니다.';
|
||
RS_PrtWaterReqPass = '프린트 워터마크 예외가 승인 되었습니다.';
|
||
RS_CdReqReject = 'CD/DVD 매체 예외 요청이 반려 되었습니다.';
|
||
RS_PrtWaterReject = '프린트 워터마크 예외 요청이 반려 되었습니다.';
|
||
RS_ApprovalReason = '결재 처리 사유';
|
||
RS_NoApprovalInfo = '결재자 정보를 가져올 수 없습니다.';
|
||
RS_UpdateReboot = '업데이트 기능 적용을 위해 PC를 재부팅해야 합니다.';
|
||
|
||
{$R *.dfm}
|
||
|
||
var
|
||
_nNotiCnt: Integer = 0;
|
||
|
||
Constructor TDlgNoticeBT.Create(aOwner: TComponent);
|
||
var
|
||
hTarkBar: HWND;
|
||
r: TRect;
|
||
nVCnt, nHPos: Integer;
|
||
begin
|
||
Inherited Create(aOwner);
|
||
Caption := APP_TITLE;
|
||
|
||
if CUSTOMER_TYPE = CUSTOMER_TMAP then // 티맵은 위치 고정
|
||
_nNotiCnt := 1
|
||
else
|
||
Inc(_nNotiCnt);
|
||
|
||
sCmdParam_ := '';
|
||
sNotiCenterMsg_ := '';
|
||
Mutex_ := nil;
|
||
|
||
hTarkBar := FindWindow('Shell_TrayWnd', '');
|
||
if hTarkBar <> 0 then
|
||
begin
|
||
SetNotiForm;
|
||
GetWindowRect(hTarkBar, r);
|
||
// Top가 0이면 위, 왼쪽 아님 오른쪽
|
||
if (r.Left <= 0) and (r.Right < Screen.PrimaryMonitor.Width) then
|
||
begin
|
||
// 왼쪽
|
||
Top := Screen.PrimaryMonitor.Height;
|
||
Left := Screen.PrimaryMonitor.Width;
|
||
end else
|
||
if (r.Left <= 0) and (r.Top = 0) and
|
||
(r.Bottom < Screen.PrimaryMonitor.Height) then
|
||
begin
|
||
// 위쪽
|
||
Top := Screen.PrimaryMonitor.Height;
|
||
Left := Screen.PrimaryMonitor.Width;
|
||
end else
|
||
if (r.Left <= 0) and (r.Top > 0) then
|
||
begin
|
||
// 아래쪽
|
||
Top := Screen.PrimaryMonitor.Height - (r.Bottom - r.Top);
|
||
Left := Screen.PrimaryMonitor.Width;// - Width;
|
||
end else begin
|
||
// 오른쪽
|
||
Top := Screen.PrimaryMonitor.Height;
|
||
Left := Screen.PrimaryMonitor.Width - (r.Right - r.Left);// - Width - (r.Right - r.Left);
|
||
end;
|
||
|
||
// if CUSTOMER_TYPE = CUSTOMER_TMAP then
|
||
// begin
|
||
// nVCnt := 1; // 티맵은 위치 고정
|
||
// nHPos := 0;
|
||
// end else begin
|
||
//
|
||
// end;
|
||
|
||
nVCnt := Screen.PrimaryMonitor.Height div Height;
|
||
nHPos := _nNotiCnt mod nVCnt;
|
||
if nHPos = 0 then
|
||
begin
|
||
Left := Left - (_nNotiCnt div nVCnt) * Width;
|
||
nHPos := nVCnt;
|
||
end else
|
||
Left := Left - ((_nNotiCnt div nVCnt) + 1) * Width;
|
||
Top := Top - (nHPos * Height);
|
||
end;
|
||
tInit.Enabled := true;
|
||
|
||
{$IFDEF _HE_}
|
||
nHPos := gMgSvc.ModePolicy.NotiCloseSec;
|
||
if nHPos > 0 then
|
||
begin
|
||
tClose.Interval := nHPos * 1000;;
|
||
tClose.Enabled := true;
|
||
end else
|
||
if IsHD then
|
||
begin
|
||
tClose.Interval := 5000;
|
||
tClose.Enabled := true;
|
||
end;
|
||
{$ENDIF}
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.CreateParams(var Params: TCreateParams);
|
||
begin
|
||
Inherited CreateParams(Params);
|
||
Params.ExStyle := WS_EX_APPWINDOW;
|
||
end;
|
||
|
||
Destructor TDlgNoticeBT.Destroy;
|
||
begin
|
||
if Mutex_ <> nil then
|
||
FreeAndNil(Mutex_);
|
||
Inherited;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.SetNotiForm;
|
||
begin
|
||
cpMain.ActiveCard := cdDef;
|
||
// if aNotiType = nftNormal then
|
||
// begin
|
||
// lbTitle.Caption := RS_TitleVul;
|
||
// imgTop.Picture.Assign(imgTitles.Items[0].PngImage);
|
||
// Width := 454;
|
||
// Height := 461;
|
||
// lbTitle.Top := 193;
|
||
// lbTitle.Left := 31;
|
||
// mmMsg.Top := 44;
|
||
// mmMsg.Left := 31;
|
||
// lbMode.Left := 31;
|
||
// lbOk.Top := 187;
|
||
// lbOk.Left := 31;
|
||
// imgOk.Top := 187;
|
||
// imgOk.Left := 31;
|
||
// lbSet.Top := 187;
|
||
// lbSet.Left := 243;
|
||
// imgSet.Top := 187;
|
||
// imgSet.Left := 243;
|
||
// lbMsgEx.Top := 163;
|
||
//
|
||
// if pnTop.Visible then
|
||
// begin
|
||
// Height := Height + pnTop.Height;
|
||
// lbTitle.Top := lbTitle.Top + pnTop.Height;
|
||
// mmMsg.Top := mmMsg.Top + pnTop.Height;
|
||
//// lbOk.Top := lbOk.Top + pnTop.Height;
|
||
//// imgOk.Top := imgOk.Top + pnTop.Height;
|
||
//// lbSet.Top := lbSet.Top + pnTop.Height;
|
||
//// imgSet.Top := imgSet.Top + pnTop.Height;
|
||
// lbMsgEx.Top := lbMsgEx.Top + pnTop.Height;
|
||
// end;
|
||
// end else
|
||
begin
|
||
if not pnTop.Visible then
|
||
Height := Height - pnTop.Height;
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.PopupMessage(sJsonData: String);
|
||
var
|
||
O: ISuperObject;
|
||
MsgList: TStringList;
|
||
sTemp: String;
|
||
StrList: TStringList;
|
||
|
||
procedure SetOneNomal(bShowTitle: Boolean = false);
|
||
begin
|
||
SetOneButtion;
|
||
lbTitle.Visible := bShowTitle;
|
||
mmMsg.Font.Color := $635653;
|
||
mmMsg.Font.Style := mmMsg.Font.Style + [fsBold];
|
||
// if not bShowTitle and (NotiType <> nftMin) then
|
||
// mmMsg.Top := lbTitle.Top;
|
||
end;
|
||
|
||
procedure SetPrevent(bOneButton: Boolean = true; bReqDevExcept: Boolean = false);
|
||
begin
|
||
if bOneButton then
|
||
begin
|
||
SetOneButtion;
|
||
end else
|
||
if bReqDevExcept then
|
||
begin
|
||
imgSet.Tag := 4;
|
||
SetImgBtn(imgSet, imgSet.Tag);
|
||
sCmdParam_ := 'RegDevExcept';
|
||
end;
|
||
// if NotiType = nftMin then
|
||
lbTitle.Caption := RS_TitlePreventSimple;
|
||
// else
|
||
// lbTitle.Caption := RS_TitlePrevent;
|
||
mmMsg.Font.Color := $635653;
|
||
mmMsg.Font.Style := mmMsg.Font.Style + [fsBold];
|
||
|
||
// MsgList.Add(APP_TITLE);
|
||
// MsgList.Add('보안정책 위반행위가 탐지되었습니다.');
|
||
// MsgList.Add('');
|
||
end;
|
||
|
||
var
|
||
nType: Integer;
|
||
begin
|
||
try
|
||
Guard(StrList, TStringList.Create);
|
||
O := SO(sJsonData);
|
||
nType := O.I['T'];
|
||
Guard(MsgList, TStringList.Create);
|
||
// TTgTrace.T('PopupMessage() .. Type=%d', [O.I['T']]);
|
||
case nType of
|
||
TYPE_MSG_PREVENT_BLUETOOTH :
|
||
begin
|
||
if CUSTOMER_TYPE = CUSTOMER_LX then
|
||
SetOneButtion
|
||
else begin
|
||
{$IFDEF _HE_}
|
||
if IsApproveSupport and gMgSvc.UseApproval then
|
||
SetPrevent((gMgSvc.IsNewApi and not PO.AbleBtExceptReq and not PO.BtApproval) or
|
||
(CUSTOMER_TYPE = CUSTOMER_HDENG) or (CUSTOMER_TYPE = CUSTOMER_GEC), true)
|
||
else
|
||
SetPrevent((gMgSvc.IsNewApi and not PO.AbleBtExceptReq) or
|
||
(CUSTOMER_TYPE = CUSTOMER_HDENG) or (CUSTOMER_TYPE = CUSTOMER_GEC), true)
|
||
{$ELSE}
|
||
SetPrevent(true, true);
|
||
{$ENDIF}
|
||
end;
|
||
MsgList.Add(RS_DetectBlue);
|
||
SplitString2(O.S['D'], '|', StrList, true);
|
||
|
||
{$IFDEF _HE_}
|
||
ReqDevExceptInfo_.ReqDevType := rdtBluetooth;
|
||
// ReqDevExceptInfo_.sDevName := Format('Ts (%s)', [StrList[0], StrList[1]]); // 이거 왜 이렇게 했는지 기억이 안남... 25_0218 08:50:41 kku
|
||
ReqDevExceptInfo_.sDevName := Format('%s, %s', [StrList[0], StrList[1]]);
|
||
try
|
||
ReqDevExceptInfo_.sSerial := StrList[2];
|
||
except
|
||
ReqDevExceptInfo_.sSerial := 'Unknown';
|
||
end;
|
||
{$ENDIF}
|
||
|
||
MsgList.Add(Format(' - Name : %s', [StrList[0]]));
|
||
MsgList.Add(Format(' - Type : %s', [StrList[1]]));
|
||
// if StrList.Count > 2 then
|
||
// MsgList.Add(Format(' - Adress : %s', [StrList[2]]));
|
||
if StrList.Count > 3 then
|
||
MsgList.Add(RS_BlueCut);
|
||
end;
|
||
end;
|
||
|
||
{$IFDEF _HE_}
|
||
if PO.NotifyType = nftACenter then
|
||
begin
|
||
_nNotiCnt := 0; // 알림센터에서 일반 팝업 으로 넘어갈때를 위함, 일단 여기에 넣음..22_0825 09:02:09 kku
|
||
var sTitle: String := RS_SecuViol;
|
||
case O.I['T'] of
|
||
TYPE_MSG_SAFEAPPLIED : sTitle := RS_Info;
|
||
TYPE_MSG_OLD_WINDOWS,
|
||
TYPE_MSG_VUL_OS,
|
||
TYPE_MSG_VUL_PW,
|
||
TYPE_MSG_VUL_AV,
|
||
TYPE_MSG_VUL_FW,
|
||
TYPE_MSG_VUL_SCREEN,
|
||
TYPE_MSG_VUL_ALLOWACCESS,
|
||
TYPE_MSG_VUL_EMPNO : sTitle := RS_Vul;
|
||
|
||
// TYPE_MSG_NOTIFICATION,
|
||
TYPE_MSG_UPDATE,
|
||
TYPE_MSG_AFTERREPORT :
|
||
begin
|
||
sTitle := RS_Info;
|
||
end;
|
||
|
||
TYPE_MSG_NOTIFICATION : sTitle := RS_Noti;
|
||
end;
|
||
sNotiCenterMsg_ := sTitle + ':' + MsgList.Text;
|
||
end else
|
||
{$ENDIF}
|
||
begin
|
||
mmMsg.Text := MsgList.Text;
|
||
// if ((NotiType = nftNormal) and (mmMsg.Lines.Count > 9)) or
|
||
// ((NotiType = nftMin) and (mmMsg.Lines.Count > 5)) then
|
||
if mmMsg.Lines.Count > 5 then
|
||
mmMsg.ScrollBars := TScrollStyle.ssVertical;
|
||
{$IFNDEF _HE_}
|
||
Show;
|
||
{$ENDIF}
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
ETgException.TraceException(Self, E, 'Fail .. PopupMessage()');
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
begin
|
||
try
|
||
if _nNotiCnt > 0 then
|
||
Dec(_nNotiCnt);
|
||
Action := caFree;
|
||
except
|
||
on E: Exception do
|
||
ETgException.TraceException(Self, E, 'Fail .. FormClose()');
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.FormKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #27 then
|
||
begin
|
||
try
|
||
Close;
|
||
except
|
||
on E: Exception do
|
||
ETgException.TraceException(Self, E, 'Fail .. FormKeyPress()');
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.FormMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
ReleaseCapture;
|
||
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.FormShow(Sender: TObject);
|
||
begin
|
||
FormStyle := fsNormal;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.imgOkClick(Sender: TObject);
|
||
begin
|
||
try
|
||
Close;
|
||
except
|
||
on E: Exception do
|
||
ETgException.TraceException(Self, E, 'Fail .. imgOkClick()');
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.imgOkMouseEnter(Sender: TObject);
|
||
var
|
||
img: TImage;
|
||
begin
|
||
if Sender = nil then
|
||
exit;
|
||
|
||
if Sender is TImage then
|
||
img := TImage(Sender)
|
||
else if Sender = lbOk then
|
||
img := imgOk
|
||
else
|
||
img := imgSet;
|
||
|
||
SetImgBtn(img, img.Tag + 1);
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.imgOkMouseLeave(Sender: TObject);
|
||
var
|
||
img: TImage;
|
||
begin
|
||
if Sender = nil then
|
||
exit;
|
||
|
||
if Sender is TImage then
|
||
img := TImage(Sender)
|
||
else if Sender = lbOk then
|
||
img := imgOk
|
||
else
|
||
img := imgSet;
|
||
|
||
SetImgBtn(img, img.Tag);
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.imgSetClick(Sender: TObject);
|
||
var
|
||
sHlpExe: String;
|
||
begin
|
||
{$IFDEF _HE_}
|
||
if sCmdParam_ <> '' then
|
||
begin
|
||
if sCmdParam_ = 'ChangeEmpNo' then
|
||
begin
|
||
if gMain <> nil then
|
||
begin
|
||
gMain.imgChangeEmpNoClick(nil);
|
||
end;
|
||
end else
|
||
if sCmdParam_ = 'RegDevExcept' then
|
||
begin
|
||
if (IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.UsbApproval and (ReqDevExceptInfo_.ReqDevType = rdtUsbDrive)) or
|
||
(IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.CdApproval and (ReqDevExceptInfo_.ReqDevType = rdtCdrom)) or
|
||
(IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.MtpApproval and (ReqDevExceptInfo_.ReqDevType = rdtMtp)) or
|
||
(IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.BtApproval and (ReqDevExceptInfo_.ReqDevType = rdtBluetooth)) or
|
||
(IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.ExFApproval and (ReqDevExceptInfo_.ReqDevType = rdtExpFile)) then
|
||
begin
|
||
var nType: Integer := -1;
|
||
|
||
ZeroMemory(@LogInfo, SizeOf(LogInfo));
|
||
LogInfo.sCode := REQUEST_APPROVAL;
|
||
LogInfo.sDevName := ReqDevExceptInfo_.sDevName;
|
||
LogInfo.sDevSerial := ReqDevExceptInfo_.sSerial;
|
||
|
||
case ReqDevExceptInfo_.ReqDevType of
|
||
rdtUsbDrive :
|
||
begin
|
||
nType := 1;
|
||
LogInfo.sSummary := 'Approval Request : USB';
|
||
end;
|
||
rdtExpFile :
|
||
begin
|
||
nType := 4;
|
||
LogInfo.sDevSerial := '';
|
||
var O: ISuperObject := nil;
|
||
try
|
||
O := SO(ReqDevExceptInfo_.sSerial);
|
||
except
|
||
|
||
end;
|
||
if (O <> nil) and (O.DataType = stArray) then
|
||
begin
|
||
LogInfo.sSummary := Format('Approval Request : File Export (%d)', [O.AsArray.Length]);
|
||
if O.AsArray.Length = 1 then
|
||
LogInfo.sPath := O.AsArray[0].S['filePath'];
|
||
end else
|
||
LogInfo.sSummary := 'Approval Request : File Export';
|
||
end;
|
||
rdtMtp :
|
||
begin
|
||
nType := 5;
|
||
LogInfo.sSummary := 'Approval Request : MTP';
|
||
end;
|
||
rdtBluetooth :
|
||
begin
|
||
nType := 6;
|
||
LogInfo.sSummary := 'Approval Request : Bluetooth';
|
||
end;
|
||
rdtCdrom :
|
||
begin
|
||
nType := 7;
|
||
LogInfo.sSummary := 'Approval Request : CD/DVD';
|
||
end;
|
||
end;
|
||
|
||
var sUrl: String := gMgSvc.SendApproval(nType, @ReqDevExceptInfo_);
|
||
|
||
if sUrl = '' then
|
||
begin
|
||
TTgTrace.T('Fail .. SendApproval(1)');
|
||
MessageBox(Handle, PChar(RS_NoApprovalInfo), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
|
||
end else begin
|
||
gMgSvc.SendEventLogEx(@LogInfo, false);
|
||
|
||
// ExecutePath(gMgSvc.DestIPort + sUrl);
|
||
|
||
sHlpExe := GetRunExePathDir + DIR_CONF + EXE_HLP;
|
||
if FileExists(sHlpExe) then
|
||
begin
|
||
var O: ISuperObject := SO;
|
||
O.I['RcvWnd'] := Handle;
|
||
O.I['Cmd'] := HPCMD_EXECUTE_FILE;
|
||
O.S['Path'] := gMgSvc.DestIPort + sUrl;
|
||
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
||
{$IFDEF DEBUG}
|
||
ExecutePath(sHlpExe);
|
||
{$ELSE}
|
||
ExecuteAppAsUser('explorer.exe', sHlpExe, '', SW_SHOWNORMAL);
|
||
{$ENDIF}
|
||
end else
|
||
ExecutePath(gMgSvc.DestIPort + sUrl);
|
||
end;
|
||
end else
|
||
if Pos('412', FreeLocalizer.LanguageFile) = 0 then
|
||
begin
|
||
TDlgReqDevExcept.Create(nil, ReqDevExceptInfo_).Show;
|
||
end else begin
|
||
var sExe: String := GetRunExePathDir + DIR_CONF + EXE_HLP;
|
||
if FileExists(sExe) then
|
||
begin
|
||
var O: ISuperObject := SO;
|
||
O.I['RcvWnd'] := gMgSvc.RcvHwnd;
|
||
O.I['Cmd'] := HPCMD_REQ_DEVICE_EXCEPT;
|
||
O.S['WinCap'] := APP_TITLE;
|
||
O.O['ReqInfo'] := TTgJson.ValueToJsonObject<TReqDevExceptInfo>(ReqDevExceptInfo_);
|
||
O.I['CT'] := CUSTOMER_TYPE;
|
||
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
||
{$IFDEF DEBUG}
|
||
ExecutePath(sExe);
|
||
{$ELSE}
|
||
ExecuteAppAsUser('explorer.exe', sExe, '', SW_SHOWNORMAL);
|
||
{$ENDIF}
|
||
end;
|
||
end;
|
||
end else
|
||
if (sCmdParam_ = 'RegUrlExcept') and IsApproveSupport and gMgSvc.UseApproval and gMgSvc.ModePolicy.WebUrlApproval then
|
||
begin
|
||
var sUrl: String := gMgSvc.SendApproval(2, @ReqDevExceptInfo_.sSerial[1]);
|
||
|
||
if sUrl = '' then
|
||
begin
|
||
TTgTrace.T('Fail .. SendApproval(2)');
|
||
MessageBox(Handle, PChar(RS_NoApprovalInfo), PChar(APP_TITLE), MB_ICONWARNING or MB_OK);
|
||
end else begin
|
||
LogInfo.sCode := REQUEST_APPROVAL;
|
||
LogInfo.sDestIpUrl := ReqDevExceptInfo_.sSerial;
|
||
LogInfo.sSummary := 'Approval Request : URL';
|
||
gMgSvc.SendEventLogEx(@LogInfo, false);
|
||
|
||
// ExecutePath(gMgSvc.DestIPort + sUrl);
|
||
|
||
sHlpExe := GetRunExePathDir + DIR_CONF + EXE_HLP;
|
||
if FileExists(sHlpExe) then
|
||
begin
|
||
var O: ISuperObject := SO;
|
||
O.I['RcvWnd'] := Handle;
|
||
O.I['Cmd'] := HPCMD_EXECUTE_FILE;
|
||
O.S['Path'] := gMgSvc.DestIPort + sUrl;
|
||
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
||
{$IFDEF DEBUG}
|
||
ExecutePath(sHlpExe);
|
||
{$ELSE}
|
||
ExecuteAppAsUser('explorer.exe', sHlpExe, '', SW_SHOWNORMAL);
|
||
{$ENDIF}
|
||
end else
|
||
ExecutePath(gMgSvc.DestIPort + sUrl);
|
||
end;
|
||
end else
|
||
if sCmdParam_ = 'CttSch' then
|
||
begin
|
||
gMain.lbCttSchRstClick(nil);
|
||
// TDlgViewCustomCttSchResult.Create(nil).Show;
|
||
end else
|
||
if sCmdParam_ = 'OutlookAddin' then
|
||
begin
|
||
sHlpExe := GetRunExePathDir + DIR_CONF + EXE_HP;
|
||
if FileExists(sHlpExe) then
|
||
begin
|
||
var O: ISuperObject := SO;
|
||
O.I['RcvWnd'] := gMain.Handle;
|
||
O.B['RunAs'] := true;
|
||
O.I['Cmd'] := HPCMD_INSTALL_OUTLOOK_ADDIN;
|
||
O.S['MdDir'] := GetRunExePathDir + DIR_CONF;
|
||
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
||
|
||
{$IFDEF DEBUG}
|
||
ExecutePath(sHlpExe);
|
||
{$ELSE}
|
||
ExecuteAppAsUser('explorer.exe', sHlpExe, '', SW_SHOWNORMAL);
|
||
{$ENDIF}
|
||
end;
|
||
end else
|
||
if sCmdParam_.StartsWith('http') then
|
||
begin
|
||
sHlpExe := GetRunExePathDir + DIR_CONF + EXE_HLP;
|
||
if FileExists(sHlpExe) then
|
||
begin
|
||
var O: ISuperObject := SO;
|
||
O.I['RcvWnd'] := Handle;
|
||
O.I['Cmd'] := HPCMD_EXECUTE_FILE;
|
||
O.S['Path'] := sCmdParam_;
|
||
SaveJsonObjToFile(O, GetRunExePathDir + DIR_CONF + DAT_PARAM);
|
||
{$IFDEF DEBUG}
|
||
ExecutePath(sHlpExe);
|
||
{$ELSE}
|
||
ExecuteAppAsUser('explorer.exe', sHlpExe, '', SW_SHOWNORMAL);
|
||
{$ENDIF}
|
||
end else
|
||
ExecutePath(sCmdParam_);
|
||
end else
|
||
if sCmdParam_.StartsWith('/c') then
|
||
ExecutePath_hide('cmd.exe', sCmdParam_)
|
||
end;
|
||
{$ENDIF}
|
||
Close;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.imgTopMouseDown(Sender: TObject; Button: TMouseButton;
|
||
Shift: TShiftState; X, Y: Integer);
|
||
begin
|
||
ReleaseCapture;
|
||
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.lbPiCntClick(Sender: TObject);
|
||
begin
|
||
{$IFDEF _HE_}
|
||
gMain.lbCttSchRstClick(nil);
|
||
{$ENDIF}
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.lbPiCntMouseEnter(Sender: TObject);
|
||
begin
|
||
lbPiCnt.Font.Style := lbPiCnt.Font.Style + [fsUnderline];
|
||
lbPiCnt.Font.Color := clBlue;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.lbPiCntMouseLeave(Sender: TObject);
|
||
begin
|
||
lbPiCnt.Font.Style := lbPiCnt.Font.Style - [fsUnderline];
|
||
lbPiCnt.Font.Color := clBlack;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.SetImgBtn(imgBtn: TImage; nImgIdx: Integer);
|
||
begin
|
||
try
|
||
if imgBtnList.Count <= nImgIdx then
|
||
exit;
|
||
|
||
imgBtnList.GetIcon(nImgIdx, imgBtn.Picture.Icon);
|
||
imgBtn.Repaint;
|
||
|
||
case nImgIdx of
|
||
2, 3 :
|
||
begin
|
||
lbSet.Font.Color := clGreen;
|
||
if lbSet.Caption <> RS_Confirm then // 음.. 깔끔하진 않지만 일단 이렇게 처리 25_0218 11:29:22 kku
|
||
lbSet.Caption := RS_SetVul;
|
||
end;
|
||
4, 5 :
|
||
begin
|
||
lbSet.Font.Color := clPurple;
|
||
lbSet.Caption := RS_DevExcept;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
ETgException.TraceException(Self, E, 'Fail .. SetImgBtn()');
|
||
end;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.SetOneButtion;
|
||
begin
|
||
imgSet.Visible := false;
|
||
lbSet.Visible := imgSet.Visible;
|
||
|
||
imgOk.Left := (Width div 2) - (imgOk.Width div 2);
|
||
lbOk.Left := imgOk.Left;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.SetPiResult4HEC(nRstCnt: Integer);
|
||
begin
|
||
// lbTitle.Visible := false;
|
||
if lbTitle.Top = 193 then
|
||
begin
|
||
// Label1.Left := Label1.Left + 25;
|
||
Label2.Left := Label2.Left + 25;
|
||
lbGrade.Left := lbGrade.Left + 25;
|
||
lbPiCnt.Left := lbPiCnt.Left + 25;
|
||
Label5.Left := Label5.Left + 25;
|
||
end;
|
||
lbPiCnt.Caption := Format('(%d)', [nRstCnt]);
|
||
// if nRstCnt < gMgSvc.PrefModel.PersonalInfoFileMax then
|
||
|
||
{$IFDEF _HE_}
|
||
if (gMgSvc.ProcCampn <> nil) and (gMgSvc.ProcCampn.Info.nNotiWarIfCnt > nRstCnt) then
|
||
begin
|
||
lbGrade.Caption := '''양호''';
|
||
lbGrade.Font.Color := clBlue;
|
||
end;
|
||
{$ENDIF}
|
||
cpMain.ActiveCard := cdPI;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.tCloseTimer(Sender: TObject);
|
||
begin
|
||
tClose.Enabled := false;
|
||
btnClose.Click;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.tInitTimer(Sender: TObject);
|
||
begin
|
||
tInit.Enabled := false;
|
||
SetImgBtn(imgOk, imgOk.Tag);
|
||
SetImgBtn(imgSet, imgSet.Tag);
|
||
Application.ProcessMessages;
|
||
end;
|
||
|
||
procedure TDlgNoticeBT.btnCloseClick(Sender: TObject);
|
||
begin
|
||
Close;
|
||
end;
|
||
|
||
end.
|