BSOne.SFC/eCrmHE/EXE_eCrmHomeEdition/eCrmHomeEdition.dpr

354 lines
17 KiB
Plaintext

program eCrmHomeEdition;
{$R 'IncRes.res' 'IncRes.rc'}
uses
{$IFDEF EurekaLog}
EMemLeaks,
{$ENDIF EurekaLog}
Vcl.Forms,
System.SysUtils,
System.IniFiles,
Tocsg.Safe in '..\..\Tocsg.Lib\VCL\Tocsg.Safe.pas',
Tocsg.Win32 in '..\..\Tocsg.Lib\VCL\Tocsg.Win32.pas',
Tocsg.Trace in '..\..\Tocsg.Lib\VCL\Tocsg.Trace.pas',
Tocsg.Path in '..\..\Tocsg.Lib\VCL\Tocsg.Path.pas',
Tocsg.WinInfo in '..\..\Tocsg.Lib\VCL\Tocsg.WinInfo.pas',
Tocsg.CommonData in '..\..\Tocsg.Lib\VCL\Tocsg.CommonData.pas',
Tocsg.Obj in '..\..\Tocsg.Lib\VCL\Tocsg.Obj.pas',
Tocsg.Files in '..\..\Tocsg.Lib\VCL\Tocsg.Files.pas',
Tocsg.DateTime in '..\..\Tocsg.Lib\VCL\Tocsg.DateTime.pas',
Tocsg.Encrypt in '..\..\Tocsg.Lib\VCL\Tocsg.Encrypt.pas',
Tocsg.Thread in '..\..\Tocsg.Lib\VCL\Tocsg.Thread.pas',
Tocsg.Strings in '..\..\Tocsg.Lib\VCL\Tocsg.Strings.pas',
Tocsg.Hex in '..\..\Tocsg.Lib\VCL\Tocsg.Hex.pas',
Tocsg.Json in '..\..\Tocsg.Lib\VCL\Tocsg.Json.pas',
Tocsg.ClientBase in '..\..\Tocsg.Lib\VCL\CS\Tocsg.ClientBase.pas',
Tocsg.Packet in '..\..\Tocsg.Lib\VCL\CS\Tocsg.Packet.pas',
Tocsg.Process in '..\..\Tocsg.Lib\VCL\Tocsg.Process.pas',
Tocsg.WTS in '..\..\Tocsg.Lib\VCL\Tocsg.WTS.pas',
Tocsg.Kernel32 in '..\..\Tocsg.Lib\VCL\Tocsg.Kernel32.pas',
Tocsg.Shell in '..\..\Tocsg.Lib\VCL\Tocsg.Shell.pas',
Tocsg.Service in '..\..\Tocsg.Lib\VCL\Tocsg.Service.pas',
Tocsg.Registry in '..\..\Tocsg.Lib\VCL\Tocsg.Registry.pas',
Tocsg.FileInfo in '..\..\Tocsg.Lib\VCL\Tocsg.FileInfo.pas',
Tocsg.WndUtil in '..\..\Tocsg.Lib\VCL\Tocsg.WndUtil.pas',
Tocsg.Exception in '..\..\Tocsg.Lib\VCL\Tocsg.Exception.pas',
Tocsg.Network in '..\..\Tocsg.Lib\VCL\Tocsg.Network.pas',
Tocsg.Driver in '..\..\Tocsg.Lib\VCL\Tocsg.Driver.pas',
Tocsg.Convert in '..\..\Tocsg.Lib\VCL\Tocsg.Convert.pas',
Tocsg.Disk in '..\..\Tocsg.Lib\VCL\Tocsg.Disk.pas',
Tocsg.WMI in '..\..\Tocsg.Lib\VCL\Tocsg.WMI.pas',
Tocsg.Printer in '..\..\Tocsg.Lib\VCL\Tocsg.Printer.pas',
Tocsg.PacketDefine in '..\..\Tocsg.Lib\VCL\CS\Tocsg.PacketDefine.pas',
Tocsg.Process.IPC in '..\..\Tocsg.Lib\VCL\Tocsg.Process.IPC.pas',
Tocsg.Param in '..\..\Tocsg.Lib\VCL\Tocsg.Param.pas',
Tocsg.StoredPacket in '..\..\Tocsg.Lib\VCL\CS\Tocsg.StoredPacket.pas',
Tocsg.Serializer in '..\..\Tocsg.Lib\VCL\Tocsg.Serializer.pas',
Tocsg.USB in '..\..\Tocsg.Lib\VCL\Tocsg.USB.pas',
Tocsg.MSAA in '..\..\Tocsg.Lib\VCL\Tocsg.MSAA.pas',
Tocsg.MTP in '..\..\Tocsg.Lib\VCL\Tocsg.MTP.pas',
Tocsg.Bluetooth in '..\..\Tocsg.Lib\VCL\Tocsg.Bluetooth.pas',
Tocsg.Clipboard in '..\..\Tocsg.Lib\VCL\Tocsg.Clipboard.pas',
Tocsg.Graphic in '..\..\Tocsg.Lib\VCL\Tocsg.Graphic.pas',
Tocsg.Delete in '..\..\Tocsg.Lib\VCL\Tocsg.Delete.pas',
Tocsg.VTUtil in '..\..\Tocsg.Lib\VCL\Tocsg.VTUtil.pas',
Tocsg.Controls in '..\..\Tocsg.Lib\VCL\Tocsg.Controls.pas',
Tocsg.PCRE in '..\..\Tocsg.Lib\VCL\Tocsg.PCRE.pas',
Tocsg.AppInfo in '..\..\Tocsg.Lib\VCL\Tocsg.AppInfo.pas',
Tocsg.Prefetch in '..\..\Tocsg.Lib\VCL\Tocsg.Prefetch.pas',
Tocsg.NTDLL.Decompress in '..\..\Tocsg.Lib\VCL\Tocsg.NTDLL.Decompress.pas',
Tocsg.Keyboard in '..\..\Tocsg.Lib\VCL\Tocsg.Keyboard.pas',
Tocsg.Url in '..\..\Tocsg.Lib\VCL\Tocsg.Url.pas',
Tocsg.OLE.Stg in '..\..\Tocsg.Lib\VCL\Tocsg.OLE.Stg.pas',
Tocsg.Export in '..\..\Tocsg.Lib\VCL\Tocsg.Export.pas',
Tocsg.User32 in '..\..\Tocsg.Lib\VCL\Tocsg.User32.pas',
Tocsg.Notification in '..\..\Tocsg.Lib\VCL\Tocsg.Notification.pas',
Tocsg.Cert in '..\..\Tocsg.Lib\VCL\Tocsg.Cert.pas',
Tocsg.Valid in '..\..\Tocsg.Lib\VCL\Tocsg.Valid.pas',
EM.PdfiumCore in '..\..\Tocsg.Lib\VCL\Other\EM.PdfiumCore.pas',
EM.PdfiumLib in '..\..\Tocsg.Lib\VCL\Other\EM.PdfiumLib.pas',
EM.DelphiZXIngQRCode in '..\..\Tocsg.Lib\VCL\Other\EM.DelphiZXIngQRCode.pas',
Tocsg.DRM.Encrypt in '..\..\Tocsg.Module\TocsgDRM\LIB_Common\Tocsg.DRM.Encrypt.pas',
superobject in '..\..\Tocsg.Lib\VCL\SuperObject\superobject.pas',
aes_type in '..\..\Tocsg.Lib\VCL\EncLib\AES\aes_type.pas',
aes_cbc in '..\..\Tocsg.Lib\VCL\EncLib\AES\aes_cbc.pas',
BTypes in '..\..\Tocsg.Lib\VCL\EncLib\AES\BTypes.pas',
AES_Base in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Base.pas',
AES_Encr in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Encr.pas',
AES_Decr in '..\..\Tocsg.Lib\VCL\EncLib\AES\AES_Decr.pas',
EM.Tocsg.hash in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.hash.pas',
EM.Tocsg.Sha1 in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.Sha1.pas',
aes_ecb in '..\..\Tocsg.Lib\VCL\EncLib\AES\aes_ecb.pas',
Tocsg.Binary in '..\..\Tocsg.Lib\VCL\Tocsg.Binary.pas',
Tocsg.Hash in '..\..\Tocsg.Lib\VCL\Tocsg.Hash.pas',
EM.MD5 in '..\..\Tocsg.Lib\VCL\EncLib\EM.MD5.pas',
EM.CRC32 in '..\..\Tocsg.Lib\VCL\EncLib\EM.CRC32.pas',
EM.Tocsg.sha256 in '..\..\Tocsg.Lib\VCL\EncLib\EM.Tocsg.sha256.pas',
EM.GSStorage in '..\..\Tocsg.Lib\VCL\Other\EM.GSStorage.pas',
EM.nduWlanAPI in '..\..\Tocsg.Lib\VCL\Other\EM.nduWlanAPI.pas',
EM.nduCType in '..\..\Tocsg.Lib\VCL\Other\EM.nduCType.pas',
EM.nduL2cmn in '..\..\Tocsg.Lib\VCL\Other\EM.nduL2cmn.pas',
EM.nduWlanTypes in '..\..\Tocsg.Lib\VCL\Other\EM.nduWlanTypes.pas',
EM.nduWinDot11 in '..\..\Tocsg.Lib\VCL\Other\EM.nduWinDot11.pas',
EM.nduWinNT in '..\..\Tocsg.Lib\VCL\Other\EM.nduWinNT.pas',
EM.nduEapTypes in '..\..\Tocsg.Lib\VCL\Other\EM.nduEapTypes.pas',
EM.nduNtDDNdis in '..\..\Tocsg.Lib\VCL\Other\EM.nduNtDDNdis.pas',
EM.WbemScripting_TLB in '..\..\Tocsg.Lib\VCL\Other\EM.WbemScripting_TLB.pas',
EM.WinOSVersion in '..\..\Tocsg.Lib\VCL\Other\EM.WinOSVersion.pas',
EM.winioctl in '..\..\Tocsg.Lib\VCL\Other\EM.winioctl.pas',
EM.jwabluetoothapis in '..\..\Tocsg.Lib\VCL\Other\EM.jwabluetoothapis.pas',
EM.JwaWinType in '..\..\Tocsg.Lib\VCL\Other\EM.JwaWinType.pas',
EM.JwaWinNT in '..\..\Tocsg.Lib\VCL\Other\EM.JwaWinNT.pas',
EM.JwaBthSdpDef in '..\..\Tocsg.Lib\VCL\Other\EM.JwaBthSdpDef.pas',
EM.WtsApi32 in '..\..\Tocsg.Lib\VCL\EncLib\EM.WtsApi32.pas',
KDL.Localizer in '..\..\Tocsg.Lib\VCL\Other\KDL.Localizer.pas',
KDL.Detours in '..\..\Tocsg.Lib\VCL\Other\KDL.Detours.pas',
KDL.StringUtils in '..\..\Tocsg.Lib\VCL\Other\KDL.StringUtils.pas',
Winapi.Windows,
CrmSocketBase in '..\LIB_Common\CrmSocketBase.pas',
Define in 'Define.pas',
CrmLogger in 'CrmLogger.pas',
VulnerabilityService in 'Service\VulnerabilityService.pas',
HandleSecurity in 'Handle\HandleSecurity.pas',
HandleConfig in 'Handle\HandleConfig.pas',
SecureApp in 'Handle\SecureApp.pas',
ThdEvent in 'Thread\ThdEvent.pas',
NicService in 'Service\NicService.pas',
DNotice in 'Messages\DNotice.pas' {DlgNotice},
License in 'License.pas',
DDummyMain in 'DDummyMain.pas' {DlgDummyMain},
WindowAnimator in '..\..\Tocsg.Lib\VCL\Other\WindowAnimator.pas',
DQnA in 'Messages\DQnA.pas' {DlgQnA},
DLiteInfo in 'Messages\DLiteInfo.pas' {DlgLiteInfo},
Tocsg.KvFilter.adinfo in '..\..\Tocsg.Module\KvFilter\Tocsg.KvFilter.adinfo.pas',
Tocsg.KvFilter.Kwautdef in '..\..\Tocsg.Module\KvFilter\Tocsg.KvFilter.Kwautdef.pas',
Tocsg.KvFilter in '..\..\Tocsg.Module\KvFilter\Tocsg.KvFilter.pas',
Tocsg.KvFilter.types in '..\..\Tocsg.Module\KvFilter\Tocsg.KvFilter.types.pas',
GlobalDefine in '..\LIB_Common\GlobalDefine.pas',
Condition in '..\LIB_Common\Condition.pas',
Tocsg.WscApi in '..\..\Tocsg.Module\WscProduct\Tocsg.WscApi.pas',
ThdFirewall in 'Thread\ThdFirewall.pas',
NetFwTypeLib_TLB in '..\..\Tocsg.Module\MgWinFW\NetFwTypeLib_TLB.pas',
Tocsg.Firewall in '..\..\Tocsg.Module\MgWinFW\Tocsg.Firewall.pas',
DeCrmHeMain in 'DeCrmHeMain.pas' {DlgeCrmHeMain},
DHelp in 'Messages\DHelp.pas' {DlgHelp},
ProcessUninstall in '..\EXE_eCrmHeInstaller\ProcessUninstall.pas',
DDispLogo in '..\..\Tocsg.Module\DispLogo\DDispLogo.pas' {DlgDispLogo},
DInputEmpNo in 'Messages\DInputEmpNo.pas' {DlgInputEmpNo},
DAfterReport in 'Messages\DAfterReport.pas' {DlgAfterReport},
DLicense in 'Messages\DLicense.pas' {DlgLicense},
DefineHelper in '..\EXE_eCrmHeHelper\DefineHelper.pas',
ThdInstMon in '..\..\Tocsg.Module\InstMon\ThdInstMon.pas',
ThdWebUrl in 'Thread\ThdWebUrl.pas',
ManagerNic in '..\..\Tocsg.Module\NetMon\ManagerNic.pas',
KeyMonDLL in '..\..\Tocsg.Module\KeyMon\EXE_KeyMon\KeyMonDLL.pas',
DLockScreen in '..\..\Tocsg.Module\ScreenLock\DLockScreen.pas' {DlgLockScreen},
ManagerPattern in '..\..\Tocsg.Module\PatternManager\ManagerPattern.pas',
ThdMtpMon in '..\..\Tocsg.Module\MtpMon\ThdMtpMon.pas',
FPolicyView in 'FPolicyView.pas' {FrmPolicyView: TFrame},
CttSchDefine in '..\..\Tocsg.Module\ContentSearch\LIB_Common\CttSchDefine.pas',
ThdSchFileScan in '..\..\Tocsg.Module\ContentSearch\EXE_ContentSearch\ThdSchFileScan.pas',
DReqDevExcept in 'Messages\DReqDevExcept.pas' {DlgReqDevExcept},
DReqSchInfoTest in 'Messages\DReqSchInfoTest.pas' {DlgReqSchInfoTest},
DCustomCttSch in 'ContentSearch\DCustomCttSch.pas' {DlgCustomCttSch},
DProgCustomCttSch in 'ContentSearch\DProgCustomCttSch.pas' {DlgProgCustomCttSch},
DViewCttSchResult in 'ContentSearch\DViewCttSchResult.pas' {DlgViewCttSchResult},
ThdUsbMon in '..\..\Tocsg.Module\UsbMon\ThdUsbMon.pas',
DCurPolicyView in 'DCurPolicyView.pas' {DlgCurPolicyView},
CrmUtil in '..\LIB_Common\CrmUtil.pas',
Tocsg.AIP in '..\..\Tocsg.Lib\VCL\Tocsg.AIP.pas',
DDrmDecrypt in 'Messages\DDrmDecrypt.pas' {DlgDrmDecrypt},
ThdSendFiles in 'Thread\ThdSendFiles.pas',
DProgCttSchTask in 'ContentSearch\DProgCttSchTask.pas' {DlgProgCttSchTask},
DFailFileList in 'ContentSearch\DFailFileList.pas' {DlgFailFileList},
ThdWinUpdateScan in 'Thread\ThdWinUpdateScan.pas',
ThdRouteMon in 'Thread\ThdRouteMon.pas',
DEncryptAip in 'DRM\DEncryptAip.pas' {DlgEncryptAip},
DefineKeyMon in '..\..\Tocsg.Module\KeyMon\DefineKeyMon.pas',
DSelPerInfo in 'ContentSearch\DSelPerInfo.pas' {DlgSelPerInfo},
DSimpleInfo in 'Messages\DSimpleInfo.pas' {DlgSimpleInfo},
FileService in 'Service\FileService.pas',
ParserLinkFile in '..\..\Tocsg.Module\MonSecu\ParserLinkFile.pas',
AppCtrlDefine in '..\..\Tocsg.Module\AppCtrl\LIB_Common\AppCtrlDefine.pas',
AppCtrlServer in 'AppCtrlServer.pas',
ThdMsgAutoClose in 'Thread\ThdMsgAutoClose.pas',
BsKwdSchKvCttSchClient in 'Service\BsKwdSchKvCttSchClient.pas',
OutlookMonClient in 'Service\OutlookMonClient.pas',
GlobalOutAddInDefine in '..\DLL_BS1OutlookAddIn\GlobalOutAddInDefine.pas',
DDeleteCode in 'Messages\DDeleteCode.pas' {DlgDeleteCode},
DWaitProcPrt in '..\..\Tocsg.Module\PrinterMon\DWaitProcPrt.pas' {DlgWaitExtrProcPrt},
ThdExecuteEndNoti in '..\..\Tocsg.Module\PrinterMon\ThdExecuteEndNoti.pas',
DDebugPW in 'Messages\DDebugPW.pas' {DlgDebugPW},
DUninstallPW in 'Messages\DUninstallPW.pas' {DlgUninstallPW},
ManagerCampaign in 'Manager\ManagerCampaign.pas',
ManagerHook in 'Manager\ManagerHook.pas',
ManagerModel in 'Manager\ManagerModel.pas',
ManagerOffExp in 'Manager\ManagerOffExp.pas',
ManagerPerInfo in 'Manager\ManagerPerInfo.pas',
ManagerService in 'Manager\ManagerService.pas',
ProcessParam in 'Process\ProcessParam.pas',
ProcessServerAPI in 'Process\ProcessServerAPI.pas',
ManagerRule in 'Manager\ManagerRule.pas',
ManagerFixedDisk in 'Manager\ManagerFixedDisk.pas',
ThdReaction in 'Thread\ThdReaction.pas',
DOfflineExpAuth in 'Messages\DOfflineExpAuth.pas' {DlgOfflineAuth},
DNoticeImg in 'Messages\DNoticeImg.pas' {DlgNoticeImg},
DSchPiNoti in 'Messages\DSchPiNoti.pas' {DlgSchPiNoti},
ProcessSoftcampDRM in '..\..\Tocsg.Module\SoftCampTest\ProcessSoftcampDRM.pas',
DCustomCttSchOpt in 'ContentSearch\DCustomCttSchOpt.pas' {DlgCustomCttSchOpt},
DRuleList in 'ContentSearch\DRuleList.pas' {DlgRuleList},
DViewCustomCttSchResult in 'ContentSearch\DViewCustomCttSchResult.pas' {DlgViewCustomCttSchResult},
ManagerImgMskData in '..\..\Tocsg.Module\ImageMasking\ManagerImgMskData.pas',
STLabGuardModule in '..\..\Tocsg.Module\Snaptag4BS1\STLabGuardModule.pas',
DDecryptAip in 'DRM\DDecryptAip.pas' {DlgDecryptAip},
ThdWebOpenCheck in 'Thread\ThdWebOpenCheck.pas',
ManagerPrint in 'Manager\ManagerPrint.pas',
DPrintApproveReqA in 'Messages\DPrintApproveReqA.pas' {DlgPrintApproveReqA},
DReqPrintList in 'Messages\DReqPrintList.pas' {DlgReqPrintList},
DPrintApproveReq in 'Messages\DPrintApproveReq.pas' {DlgPrintApproveReq},
DPrintApproveRst in 'Messages\DPrintApproveRst.pas' {DlgPrintApproveRst},
Tocsg.Kess in '..\..\Tocsg.Module\KessDRM\Tocsg.Kess.pas',
DPerfectDel in 'DRM\DPerfectDel.pas' {DlgPerfectDel},
DEncryptDrm in 'DRM\DEncryptDrm.pas' {DlgEncryptDrm},
Tocsg.Fasoo in '..\..\Tocsg.Module\FasooDRM\Tocsg.Fasoo.pas',
Tocsg.Fasoo.Global in '..\..\Tocsg.Module\FasooDRM\EXE_bs1fsg\Tocsg.Fasoo.Global.pas',
BuildInfo in 'BuildInfo.pas',
DOtpAuth in 'Messages\DOtpAuth.pas' {DlgOtpAuth},
ThdRcvPolicy in 'Thread\ThdRcvPolicy.pas',
DEjectDLL in 'DEjectDLL.pas' {DlgEjectDLL},
ProcessDecompress in '..\..\Tocsg.Module\ContentSearch\EXE_KvCttSch\ProcessDecompress.pas',
Process7zip in '..\..\Tocsg.Module\ContentSearch\EXE_KvCttSch\Process7zip.pas',
ProcessAlzip in '..\..\Tocsg.Module\ContentSearch\EXE_KvCttSch\ProcessAlzip.pas',
ManagerPolicy in 'Manager\ManagerPolicy.pas',
DUsbInfo in 'Info\DUsbInfo.pas' {DlgUsbInfo},
ThdPrintWork in 'Thread\ThdPrintWork.pas',
ProcessPrint in 'Process\ProcessPrint.pas',
DPrintProg in 'Messages\DPrintProg.pas' {DlgPrintProg},
xPrintLogService in 'Service\xPrintLogService.pas',
DBs1Log in 'DBs1Log.pas' {DlgBs1Log},
ThdInitProc in 'Thread\ThdInitProc.pas',
ProcessPrintWater in 'Process\ProcessPrintWater.pas',
RecoverService in 'Service\RecoverService.pas',
ThdScreenRecord in 'Thread\ThdScreenRecord.pas',
DBrowserOpt in 'Messages\DBrowserOpt.pas' {DlgBrowserOpt},
DDecryptDrm in 'DRM\DDecryptDrm.pas' {DlgDecryptDrm},
ProcessRecentDoc in 'Process\ProcessRecentDoc.pas',
DAip2KessDrm in 'DRM\DAip2KessDrm.pas' {DlgAip2KessDrm},
DKess2AipDrm in 'DRM\DKess2AipDrm.pas' {DlgKess2AipDrm},
Bs1FltCtrl in 'Service\Bs1FltCtrl.pas',
madCodeHook in '..\..\Tocsg.Lib\VCL\MadCodeHook\madCodeHook.pas',
bs1PolicyUnit in '..\..\Tocsg.Module\Bs1Flt\bs1dc_Delphi\bs1PolicyUnit.pas',
DeviceGuard.Logic in '..\..\Tocsg.Module\Bs1Flt\bs1dc_Delphi\DeviceGuard.Logic.pas';
{$R *.res}
var
mtx: TTgMutex;
trace: TTgTrace;
param: TProcessParam;
begin
ReportMemoryLeaksOnShutdown := DebugHook <> 0;
Guard(param, TProcessParam.Create);
if not param.ProcessParam then
exit;
if not IsAdminAccount then
exit;
mtx := nil;
trace := nil;
{$IFNDEF DEBUG}
if param.RunMode = 0 then
begin
mtx := TTgMutex.Create(MUTEX_AGENT);
if mtx.MutexState <> msCreateOk then
exit;
end;
{$ENDIF}
if param.RunMode = 0 then
begin
trace := TTgTrace.Create(GetRunExePathDir + 'Log\',
ExtractFileName(CutFileExt(GetRunExePath)) + '.log', true);
trace.T('Beign..');
end;
try
if rsKdlMark = '*KDL*Mark*' then
begin
// rsKdlMark 이거 사용해야 리소스에 포함되서 kdlscan.exe로 추출할 수 있다 22_0810 16:16:46 kku
{$IFDEF _MLANG_}
FreeLocalizer.ErrorProcessing := epException;
FreeLocalizer.LanguageDir := GetRunExePathDir + DIR_LANG;
FreeLocalizer.AutoTranslate := true;
var ini := TIniFile.Create(GetRunExePathDir + INI_HE);
try
// GetSystemDefaultLangID : 시스템 기본 언어
// GetUserDefaultLangID : 사용자가 설정한 언어
var dwLangId := ini.ReadInteger('Lang', 'SetLang', GetUserDefaultLangID);
// 번체로 맞춰야할 LCID 체크 25_0429 14:20:25 kku
case dwLangId of
$C04, // 홍콩 (번체)
$1404 : // 마카오 (번체)
begin
dwLangId := $404; // 대만 (번체)
end;
end;
// 현재 설정된 언어에 맞춰서 설정
if FileExists(FreeLocalizer.LanguageDir + Format(FILE_LANG_FMT, [dwLangId])) then
begin
FreeLocalizer.LanguageFile := Format(FILE_LANG_FMT, [dwLangId])
end else
if FileExists(FreeLocalizer.LanguageDir + Format(FILE_LANG_FMT, [$0409])) then
FreeLocalizer.LanguageFile := Format(FILE_LANG_FMT, [$0409]);
finally
ini.Free;
end;
{$ELSE}
FreeLocalizer.AutoTranslate := false;
FreeLocalizer.TranslateResourceStrings := false;
{$ENDIF}
// FreeLocalizer.LanguageFile := 'ss';
end;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.ShowMainForm := false;
Application.CreateForm(TDlgDummyMain, DlgDummyMain);
if param.RunMode = 0 then
begin
// if FileExists('c:\$eCrmHE-OldView') then
// begin
// Application.CreateForm(TDlgeCrmHeMainOld, DlgeCrmHeMainOld);
// if MutexExists(MUTEX_INSTALLER) then
// DlgeCrmHeMainOld.Show;
// end else
begin
Application.CreateForm(TDlgeCrmHeMain, DlgeCrmHeMain);
if MutexExists(MUTEX_INSTALLER) then
DlgeCrmHeMain.Show;
end;
end;
Application.Run;
finally
if trace <> nil then
begin
trace.T('End..');
FreeAndNil(trace);
end;
if mtx <> nil then
FreeAndNil(mtx);
end;
end.