FrmMainF.cpp.~45~ 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #include "EncryptionF.h"
  4. #pragma hdrstop
  5. #include "FrmMainF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. #pragma link "cxContainer"
  9. #pragma link "cxControls"
  10. #pragma link "cxEdit"
  11. #pragma link "cxGraphics"
  12. #pragma link "cxLookAndFeelPainters"
  13. #pragma link "cxLookAndFeels"
  14. #pragma link "cxMaskEdit"
  15. #pragma link "cxSpinEdit"
  16. #pragma link "cxTextEdit"
  17. #pragma link "dxSkinBlack"
  18. #pragma link "dxSkinMcSkin"
  19. #pragma link "dxSkinsCore"
  20. #pragma link "cxButtons"
  21. #pragma link "cxDropDownEdit"
  22. #pragma resource "*.dfm"
  23. TFrmMain *FrmMain;
  24. //---------------------------------------------------------------------------
  25. __fastcall TFrmMain::TFrmMain(TComponent* Owner)
  26. : TForm(Owner)
  27. {
  28. }
  29. //---------------------------------------------------------------------------
  30. void __fastcall TFrmMain::cboLicenseTypePropertiesChange(TObject *Sender)
  31. {
  32. bool isVisible = false;
  33. if (cboLicenseType->ItemIndex == 0) {
  34. isVisible = true;
  35. }
  36. seDemoDuration->Enabled = isVisible;
  37. }
  38. //---------------------------------------------------------------------------
  39. void __fastcall TFrmMain::btnHostNameClick(TObject *Sender)
  40. {
  41. char szNom[512];
  42. DWORD size = 512;
  43. GetComputerName(szNom, &size);
  44. txtHostName->Text = String(szNom);
  45. }
  46. //---------------------------------------------------------------------------
  47. void __fastcall TFrmMain::btnLicenseGenerateXmlClick(TObject *Sender)
  48. {
  49. moLicenseXml->Lines->Clear();
  50. GUID guid;
  51. CoCreateGuid(&guid);
  52. //UUID uuid;
  53. //UuidCreateSequential(&uuid);
  54. String product = "AIP Gateway";
  55. String serialId = GUIDToString(guid);
  56. serialId = StringReplace(serialId, "{", "", TReplaceFlags() << rfReplaceAll);
  57. serialId = StringReplace(serialId, "}", "", TReplaceFlags() << rfReplaceAll);
  58. String issueDay = Now().FormatString("YYYY-MM-DD");
  59. String licensee = txtHostName->Text.Trim();
  60. String edition = cboProductType->ItemIndex == 0 ? "standard" : "enterprise";
  61. String type = cboLicenseType->ItemIndex == 0 ? "demo" : "product";
  62. String accounts = String((int)seLicenseCnt->Value);
  63. String identifiedHost = txtHostName->Text.Trim();
  64. AnsiString encKey = product.UpperCase() + "hanteinfo12#$!" + serialId.LowerCase() + issueDay + edition.UpperCase() + type.LowerCase() + AnsiString((int)seLicenseCnt->Value + 10000) + identifiedHost.LowerCase();
  65. String signature = ITSSHA256_Encrpyt(encKey);;
  66. String demoDuration = String((int)seDemoDuration->Value);
  67. moLicenseXml->Lines->Add("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  68. moLicenseXml->Lines->Add("<aip_license>");
  69. moLicenseXml->Lines->Add(" <license version=\"1.0\">");
  70. moLicenseXml->Lines->Add(" <product version=\"2\">" + product + "</product>");
  71. moLicenseXml->Lines->Add(" <serialId>" + serialId + "</serialId>");
  72. moLicenseXml->Lines->Add(" <issueDay>" + issueDay + "</issueDay>");
  73. //moLicenseXml->Lines->Add(" <licensee>" + licensee + "</licensee>");
  74. moLicenseXml->Lines->Add(" <edition>" + edition + "</edition>");
  75. moLicenseXml->Lines->Add(" <type>" + type + "</type>");
  76. moLicenseXml->Lines->Add(" <accounts>" + accounts + "</accounts>");
  77. moLicenseXml->Lines->Add(" <identifiedHost>" + identifiedHost + "</identifiedHost>");
  78. moLicenseXml->Lines->Add(" <signature>" + signature + "</signature>");
  79. if (type == "demo") {
  80. moLicenseXml->Lines->Add(" <demoDuration>" + demoDuration + "</demoDuration>");
  81. }
  82. moLicenseXml->Lines->Add(" </license>");
  83. moLicenseXml->Lines->Add("</aip_license>");
  84. moLicenseXml->Lines->Add("");
  85. }
  86. //---------------------------------------------------------------------------