FrmMainF.cpp 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "EncryptionF.h"
  4. #include <inifiles.hpp>
  5. #pragma hdrstop
  6. #include "FrmMainF.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma link "cxContainer"
  10. #pragma link "cxControls"
  11. #pragma link "cxEdit"
  12. #pragma link "cxGraphics"
  13. #pragma link "cxLookAndFeelPainters"
  14. #pragma link "cxLookAndFeels"
  15. #pragma link "cxMaskEdit"
  16. #pragma link "cxSpinEdit"
  17. #pragma link "cxTextEdit"
  18. #pragma link "dxSkinBlack"
  19. #pragma link "dxSkinMcSkin"
  20. #pragma link "dxSkinsCore"
  21. #pragma link "cxButtons"
  22. #pragma link "cxDropDownEdit"
  23. #pragma resource "*.dfm"
  24. TFrmMain *FrmMain;
  25. //---------------------------------------------------------------------------
  26. __fastcall TFrmMain::TFrmMain(TComponent* Owner)
  27. : TForm(Owner)
  28. {
  29. String FAppDir = ExtractFilePath(Application->ExeName);
  30. ConfigFileName = FAppDir + "\\License\\AipApiLicense.ini";
  31. CboLoginType->ItemIndex = -1;
  32. LoadConfig();
  33. }
  34. //---------------------------------------------------------------------------
  35. void __fastcall TFrmMain::LoadConfig()
  36. {
  37. TIniFile *pIniFile = NULL;
  38. pIniFile = new TIniFile(ConfigFileName);
  39. try
  40. {
  41. ApplicationName = pIniFile->ReadString("License", "ApplicationName", "");
  42. ApplicationVersion = pIniFile->ReadString("License", "ApplicationVersion", "");
  43. Domain = pIniFile->ReadString("License", "Domain", "");
  44. MipDataPath = pIniFile->ReadString("License", "MipDataPath", "");
  45. TenantId = pIniFile->ReadString("License", "TenantId", "");
  46. ClientId = pIniFile->ReadString("License", "ClientId", "");
  47. EMail = pIniFile->ReadString("License", "EMail", "");
  48. LoginType = pIniFile->ReadString("License", "LoginType", "1").ToIntDef(1);
  49. SecretValue = pIniFile->ReadString("License", "SecretValue", "");
  50. Thumbprint = pIniFile->ReadString("License", "Thumbprint", "");
  51. }
  52. __finally
  53. {
  54. if (pIniFile) delete pIniFile;
  55. pIniFile = NULL;
  56. }
  57. SecretValue = WinCrypt_Decrypt(SecretValue);
  58. Thumbprint = WinCrypt_Decrypt(Thumbprint);
  59. TenantId = WinCrypt_Decrypt(TenantId);
  60. ClientId = WinCrypt_Decrypt(ClientId);
  61. EMail = WinCrypt_Decrypt(EMail);
  62. EdAppName->Text = ApplicationName;
  63. EdAppVersion->Text = ApplicationVersion;
  64. EdDomain->Text = Domain;
  65. EdMipDataPath->Text = MipDataPath;
  66. EdTenantId->Text = TenantId;
  67. EdClientId->Text = ClientId;
  68. EdEmail->Text = EMail;
  69. CboLoginType->ItemIndex = LoginType-1;
  70. EdSecretValue->Text = SecretValue;
  71. EdThumbPrint->Text = Thumbprint;
  72. }
  73. //---------------------------------------------------------------------------
  74. void __fastcall TFrmMain::SaveConfig()
  75. {
  76. TIniFile *pIniFile = NULL;
  77. pIniFile = new TIniFile(ConfigFileName);
  78. try
  79. {
  80. pIniFile->WriteString("License", "ApplicationName", ApplicationName);
  81. pIniFile->WriteString("License", "ApplicationVersion", ApplicationVersion);
  82. pIniFile->WriteString("License", "Domain", Domain);
  83. pIniFile->WriteString("License", "MipDataPath", MipDataPath);
  84. pIniFile->WriteString("License", "TenantId", TenantId);
  85. pIniFile->WriteString("License", "ClientId", ClientId);
  86. pIniFile->WriteString("License", "EMail", EMail);
  87. pIniFile->WriteString("License", "LoginType", String(LoginType+1));
  88. pIniFile->WriteString("License", "SecretValue", SecretValue);
  89. pIniFile->WriteString("License", "Thumbprint", Thumbprint);
  90. }
  91. __finally
  92. {
  93. if (pIniFile) delete pIniFile;
  94. pIniFile = NULL;
  95. }
  96. Application->NormalizeTopMosts();
  97. Application->MessageBox(L"AIP API 라이센스 정보를 저장하였습니다.\r\nAIP API Service 프로그램이 실행 중이면 프로그램을 재기동 하여야 설정 정보가 반영됩니다.",
  98. L"AIP API License File Save",
  99. MB_OK|MB_ICONINFORMATION);
  100. Application->RestoreTopMosts();
  101. }
  102. //---------------------------------------------------------------------------
  103. void __fastcall TFrmMain::DataError(String AErrMsg)
  104. {
  105. Application->NormalizeTopMosts();
  106. Application->MessageBox(AErrMsg.c_str(), L"라이센스 데이터 입력 오류", MB_OK|MB_ICONERROR);
  107. Application->RestoreTopMosts();
  108. }
  109. //---------------------------------------------------------------------------
  110. void __fastcall TFrmMain::BtnSaveClick(TObject *Sender)
  111. {
  112. ApplicationName = EdAppName->Text.Trim();
  113. ApplicationVersion = EdAppVersion->Text.Trim();
  114. Domain = EdDomain->Text.Trim();
  115. MipDataPath = EdMipDataPath->Text.Trim();
  116. TenantId = EdTenantId->Text.Trim();
  117. ClientId = EdClientId->Text.Trim();
  118. EMail = EdEmail->Text.Trim();
  119. LoginType = CboLoginType->ItemIndex;
  120. SecretValue = EdSecretValue->Text.Trim();
  121. Thumbprint = EdThumbPrint->Text.Trim();
  122. if (ApplicationName == "") {
  123. DataError("어플리케이션 이름을 입력하세요.");
  124. EdAppName->SetFocus();
  125. }
  126. if (ApplicationVersion == "") {
  127. DataError("어플리케이션 버전 정보를 입력하세요.");
  128. EdAppVersion->SetFocus();
  129. }
  130. if (Domain == "") {
  131. DataError("도메인을 입력하세요.");
  132. EdDomain->SetFocus();
  133. }
  134. if (MipDataPath == "") {
  135. DataError("MIP DATA 경로를 입력하세요.");
  136. EdMipDataPath->SetFocus();
  137. }
  138. if (TenantId == "") {
  139. DataError("TENANT ID를 입력하세요.");
  140. EdTenantId->SetFocus();
  141. }
  142. if (ClientId == "") {
  143. DataError("CLIENT ID를 입력하세요.");
  144. EdClientId->SetFocus();
  145. }
  146. if (EMail == "") {
  147. DataError("E-Mail 주소를 입력하세요.");
  148. EdEmail->SetFocus();
  149. }
  150. if (LoginType < 0) {
  151. DataError("Login Type을 선택하세요.");
  152. CboLoginType->SetFocus();
  153. }
  154. if (LoginType == 0) {
  155. if (SecretValue == "") {
  156. DataError("SecretValue 를 입력하세요.");
  157. EdSecretValue->SetFocus();
  158. }
  159. }
  160. else if (LoginType == 1) {
  161. if (Thumbprint == "") {
  162. DataError("Certificate's thumbprint 를 입력하세요.");
  163. EdThumbPrint->SetFocus();
  164. }
  165. }
  166. if (SecretValue != "") {
  167. SecretValue = WinCrypt_Encrpyt(SecretValue);
  168. }
  169. if (Thumbprint != "") {
  170. Thumbprint = WinCrypt_Encrpyt(Thumbprint);
  171. }
  172. TenantId = WinCrypt_Encrpyt(TenantId);
  173. ClientId = WinCrypt_Encrpyt(ClientId);
  174. EMail = WinCrypt_Encrpyt(EMail);
  175. SaveConfig();
  176. }
  177. //---------------------------------------------------------------------------
  178. void __fastcall TFrmMain::CboLoginTypePropertiesChange(TObject *Sender)
  179. {
  180. if (CboLoginType->ItemIndex == 0) {
  181. LblHint->Caption = "Secret Value 값을 설정하세요.";
  182. }
  183. else if (CboLoginType->ItemIndex == 1) {
  184. LblHint->Caption = "Certificate's thumbprint 값을 설정하세요.";
  185. }
  186. else {
  187. LblHint->Caption = "Login Type 을 선택하세요.";
  188. }
  189. }
  190. //---------------------------------------------------------------------------
  191. void __fastcall TFrmMain::ChkViewClick(TObject *Sender)
  192. {
  193. EdSecretValue->Properties->PasswordChar = ChkView->Checked ? wchar_t("*") : wchar_t("#0");
  194. }
  195. //---------------------------------------------------------------------------