VmsOprMain.cpp 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include <tchar.h>
  5. #include <cxFormats.hpp>
  6. //---------------------------------------------------------------------------
  7. #include "AppGlobalF.h"
  8. #include "ITSDbF.h"
  9. //---------------------------------------------------------------------------
  10. USEFORM("PLUGIN\VMSM600M\VMSM600MF.cpp", VMSM600M);
  11. USEFORM("PLUGIN\VMSM500M\VMSM520MF.cpp", VMSM520M);
  12. USEFORM("PLUGIN\COMMON\VMSEDT0MF.cpp", VMSEDT0M);
  13. USEFORM("MAIN\FrmInitializeF.cpp", FrmInitialize);
  14. USEFORM("PLUGIN\VMS0000M\VMS00MAPF.cpp", VMS00MAP);
  15. USEFORM("PLUGIN\VMS0300M\VMS0300MF.cpp", VMS0300M);
  16. USEFORM("PLUGIN\VMSM900M\VMSM900MF.cpp", VMSM900M);
  17. USEFORM("PLUGIN\VMSM400M\VMSM400MF.cpp", VMSM400M);
  18. USEFORM("PLUGIN\VMSM200M\VMSM200MF.cpp", VMSM200M);
  19. USEFORM("PLUGIN\00.FRAME\FRAME_VmsMsgListF.cpp", FRAMEVmsMsgList); /* TFrame: File Type */
  20. USEFORM("PLUGIN\VMSM500M\VMSM530MF.cpp", VMSM530M);
  21. USEFORM("PLUGIN\VMSM800M\VMSM800MF.cpp", VMSM800M);
  22. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateListF.cpp", FRAMEVmsStateList); /* TFrame: File Type */
  23. USEFORM("PLUGIN\VMSM420M\VMSM420MF.cpp", VMSM420M);
  24. USEFORM("PLUGIN\VMS0000M\FrmVmsCamF.cpp", FrmVmsCam);
  25. USEFORM("PLUGIN\VMS0600M\VMS0600MF.cpp", VMS0600M);
  26. USEFORM("PLUGIN\COMMON\VMSFORM0F.cpp", VMSFORM0);
  27. USEFORM("PLUGIN\VMS0000M\FrmIcsCamF.cpp", FrmIcsCam);
  28. USEFORM("PLUGIN\VMS0500M\FrmSamsungPlayer1F.cpp", FrmSamsungPlayer1);
  29. USEFORM("PLUGIN\VMSM700M\VMSM700MF.cpp", VMSM700M);
  30. USEFORM("PLUGIN\00.FRAME\FRAME_VmsSchListF.cpp", FRAMEVmsSchList); /* TFrame: File Type */
  31. USEFORM("PLUGIN\00.FRAME\FRAME_FacilityStatusListF.cpp", FRAMEFacilityStatusList); /* TFrame: File Type */
  32. USEFORM("PLUGIN\COMMON\VMSSEL0MF.cpp", VMSSEL0M);
  33. USEFORM("PLUGIN\VMS0500M\VMS0500MF.cpp", VMS0500M);
  34. USEFORM("PLUGIN\VMSM600M\VMSM610MF.cpp", VMSM610M);
  35. USEFORM("PLUGIN\00.FRAME\FRAME_VmsListF.cpp", FRAMEVmsList); /* TFrame: File Type */
  36. USEFORM("PLUGIN\VMS0200M\VMS0201MF.cpp", VMS0201M);
  37. USEFORM("PLUGIN\99.LOGIN\FRMPswdChngeF.cpp", FRMPswdChnge);
  38. USEFORM("PLUGIN\COMMON\VMSVIEWMF.cpp", VMSVIEWM);
  39. USEFORM("PLUGIN\VMSM410M\VMSM410MF.cpp", VMSM410M);
  40. USEFORM("PLUGIN\00.FRAME\FRAME_FlashMapF.cpp", FRAMEFlashMap); /* TFrame: File Type */
  41. USEFORM("PLUGIN\00.FRAME\FRAME_VmsIfscListF.cpp", FRAMEVmsIfscList); /* TFrame: File Type */
  42. USEFORM("PLUGIN\COMMON\VMSWBACKF.cpp", VMSWBACK);
  43. USEFORM("PLUGIN\VMS0400M\VMS0400MF.cpp", VMS0400M);
  44. USEFORM("PLUGIN\VMS0200M\VMS0200MF.cpp", VMS0200M);
  45. USEFORM("PLUGIN\VMSM500M\VMSM510MF.cpp", VMSM510M);
  46. USEFORM("PLUGIN\VMSM500M\VMSM500MF.cpp", VMSM500M);
  47. USEFORM("PLUGIN\VMS0400M\VMS0410MF.cpp", VMS0410M);
  48. USEFORM("PLUGIN\VMSM210M\VMSM210MF.cpp", VMSM210M);
  49. USEFORM("PLUGIN\VMS0000M\VMS0000MF.cpp", VMS0000M);
  50. USEFORM("PLUGIN\VMS0000M\FrmVmsMsgF.cpp", FrmVmsMsg);
  51. USEFORM("PLUGIN\99.LOGIN\FRMLoginF.cpp", FRMLogin);
  52. USEFORM("PLUGIN\COMMON\VMSMODL0F.cpp", VMSMODL0);
  53. USEFORM("MAIN\FrmVmsOprMainF.cpp", FrmVmsOprMain);
  54. USEFORM("PLUGIN\COMMON\VMSBACKMF.cpp", VMSBACKM);
  55. USEFORM("PLUGIN\00.FRAME\FRAME_VmsStateF.cpp", FRAMEVmsState); /* TFrame: File Type */
  56. USEFORM("PLUGIN\VMSM100M\VMSM100MF.cpp", VMSM100M);
  57. USEFORM("PLUGIN\COMMON\VMSWCAM0F.cpp", VMSWCAM0);
  58. USEFORM("PLUGIN\VMS0100M\VMS0100MF.cpp", VMS0100M);
  59. USEFORM("PLUGIN\00.FRAME\FRAME_GoogleMapF.cpp", FRAMEGoogleMap); /* TFrame: File Type */
  60. //---------------------------------------------------------------------------
  61. WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
  62. {
  63. int nLoginRes;
  64. DateSeparator = '-';
  65. TimeSeparator = ':';
  66. ShortDateFormat = "yyyy-MM-dd";
  67. ShortTimeFormat = "HH:NN:SS";
  68. LongTimeFormat = "HH:NN:SS";
  69. cxFormatController()->BeginUpdate();
  70. cxFormatController()->UseDelphiDateTimeFormats = true;
  71. cxFormatController()->EndUpdate();
  72. cxFormatController()->GetFormats();
  73. cxFormatController()->NotifyListeners();
  74. String sLoginId = "ADMIN";
  75. bool bLogin = true;
  76. int nArgs = ParamCount();
  77. if (nArgs >= 1)
  78. {
  79. sLoginId = ParamStr(1);
  80. //ShowMessage(sLoginId);
  81. bLogin = false;
  82. }
  83. int nRes;
  84. g_nPid = (int)GetCurrentProcessId();
  85. g_sAppDir = ExtractFilePath(Application->ExeName);
  86. g_sAppName = ChangeFileExt(ExtractFileName(Application->ExeName), "");
  87. g_sCfgDir = g_sAppDir + "Cfg\\";
  88. g_sLogDir = g_sAppDir + "Log\\";
  89. g_sTempDir = g_sAppDir + "Temp\\";
  90. g_sFormsDir = g_sCfgDir + "Forms\\";
  91. ForceDirectories(g_sCfgDir.c_str());
  92. ForceDirectories(g_sLogDir.c_str());
  93. ForceDirectories(g_sTempDir.c_str());
  94. ForceDirectories(g_sFormsDir.c_str());
  95. String sTempDir = g_sLogDir + "Db\\";
  96. ForceDirectories(sTempDir.c_str());
  97. String sAppDir = ExtractFilePath(Application->ExeName);
  98. ChDir(sAppDir);
  99. HANDLE hMutex;
  100. try
  101. {
  102. String sLockFile = ChangeFileExt(ExtractFileName(Application->ExeName), ".lock");
  103. //String sProgMutexNm = "HANTE_YI" + sLockFile;
  104. String sProgMutexNm = "HANTE_PASIG_";
  105. if ((hMutex=OpenMutex(MUTEX_ALL_ACCESS, false, sProgMutexNm.c_str()))==NULL)
  106. hMutex = CreateMutex(NULL, true, sProgMutexNm.c_str());
  107. else
  108. {
  109. ShowMessage(MSG001);
  110. return 0;
  111. }
  112. }
  113. catch (Exception &exception)
  114. {
  115. Application->ShowException(&exception);
  116. return 0;
  117. }
  118. /*
  119. * 시스템 운영환경을 ini 파일에서 읽어 온다.
  120. */
  121. LoadDefaultConfigInfo("ITS_OP");
  122. //CommLog = new TCommLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  123. ITSLog = new TITSLog(g_sLogDir, g_sAppName, g_AppCfg.sLogDay);
  124. ITSLog->FLogCfg = g_LogCfg;
  125. LOGINFO("Program start....");
  126. if (!ITSDb_Initialize())
  127. {
  128. Application->MessageBox(MSG002, MSG003, MB_OK|MB_ICONERROR);
  129. goto prog_exit;
  130. }
  131. ITSDb_SetInfo(g_AppCfg.itsdb.sProvider, g_AppCfg.itsdb.sServerName, g_AppCfg.itsdb.sUserName, g_AppCfg.itsdb.sPassword);
  132. g_AppCfg.bLoginPrompt = bLogin;
  133. if (g_AppCfg.bLoginPrompt)
  134. {
  135. /*
  136. * 로그인 처리(라이브러리 로딩 실패시에만 프로그램을 종료하자-일단...)
  137. */
  138. g_AppCfg.sSkinName = "Blue";
  139. nLoginRes = UserLogin();
  140. if (nLoginRes <= 0)
  141. {
  142. goto prog_exit;
  143. }
  144. }
  145. else
  146. {
  147. if (!ITSDb_Open())
  148. {
  149. Application->MessageBox(MSG004, MSG003, MB_OK|MB_ICONERROR);
  150. goto prog_exit;
  151. }
  152. g_pLOGIN = ITSDb_GetLoginInfo();
  153. g_pLOGIN->bLogin = true;
  154. g_pLOGIN->sUserId = sLoginId;
  155. g_pLOGIN->sUserName = "default";
  156. g_pLOGIN->sUserRightId = "1";
  157. g_pLOGIN->sUserRightName = "";
  158. g_pLOGIN->sConnSystem = "OPR";
  159. g_pLOGIN->sLoginSeq = "0";
  160. g_pLOGIN->sLoginIp = "127.0.0.1";
  161. g_pLOGIN->sLoginTime = Now().FormatString("yyyymmddhhnnss");
  162. }
  163. try
  164. {
  165. ReportMemoryLeaksOnShutdown = true;
  166. Application->Initialize();
  167. Application->MainFormOnTaskBar = true;
  168. Application->Title = g_AppCfg.sTitle;
  169. Application->Title = "PASIG City VMS Operation Program";
  170. Application->CreateForm(__classid(TFrmVmsOprMain), &FrmVmsOprMain);
  171. Application->Run();
  172. }
  173. catch (Exception &exception)
  174. {
  175. Application->ShowException(&exception);
  176. }
  177. catch (...)
  178. {
  179. try
  180. {
  181. throw Exception("");
  182. }
  183. catch (Exception &exception)
  184. {
  185. Application->ShowException(&exception);
  186. }
  187. }
  188. prog_exit:
  189. try
  190. {
  191. ITSDb_Finalize();
  192. ReleaseMutex(hMutex);
  193. CloseHandle(hMutex);
  194. hMutex = NULL;
  195. LOGINFO("Program end....");
  196. }
  197. catch(...)
  198. {
  199. }
  200. return 0;
  201. }
  202. //---------------------------------------------------------------------------