Unit4.pas 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. unit Unit4;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, AppCentreCom_TLB, StdCtrls, ExtCtrls;
  6. type
  7. TForm4 = class(TForm)
  8. pnl1: TPanel;
  9. edt1: TEdit;
  10. edt2: TEdit;
  11. lbl1: TLabel;
  12. lbl2: TLabel;
  13. lbl3: TLabel;
  14. btn1: TButton;
  15. pnl2: TPanel;
  16. pnl3: TPanel;
  17. procedure FormCreate(Sender: TObject);
  18. procedure btn1Click(Sender: TObject);
  19. private
  20. function Login(AUserName, APassword: string): Boolean;
  21. function AuthLogin(ALoginName: string): Boolean;
  22. public
  23. { Public declarations }
  24. end;
  25. TAuthLogin = class(TThread)
  26. private
  27. FURL,
  28. FAppSecrit: string;
  29. FForm: TForm4;
  30. public
  31. procedure Execute; override;
  32. end;
  33. var
  34. Form4: TForm4;
  35. implementation
  36. uses
  37. Registry, AppCentreINI, superobject;
  38. {$R *.dfm}
  39. //procedure TForm4.btn1Click(Sender: TObject);
  40. //var
  41. // AppCentreCom: ILXTAppCentreCom;
  42. // ptr: PChar;
  43. //begin
  44. // AppCentreCom := CoLXTAppCentreCom.Create;
  45. // ptr := AppCentreCom.GetInstallationDirectory(PChar('aa'));
  46. // if ptr <> nil then
  47. // ShowMessage(string(ptr));
  48. //end;
  49. //procedure TForm4.btn2Click(Sender: TObject);
  50. //const
  51. // APPCENTRE_REGISTRY: string = 'SOFTWARE\Winsoft\AppCentre\Directory';
  52. //var
  53. // ARegistry: TRegistry;
  54. //begin
  55. // ARegistry := TRegistry.Create;
  56. // try
  57. // ARegistry.RootKey := HKEY_LOCAL_MACHINE;
  58. // if ARegistry.OpenKey(APPCENTRE_REGISTRY, True) then
  59. // begin
  60. // if ARegistry.ValueExists('aa') then
  61. //
  62. // ShowMessage(ARegistry.ReadString('test'));
  63. // end;
  64. // finally
  65. // ARegistry.CloseKey;
  66. // ARegistry.Free;
  67. // end;
  68. //end;
  69. function TForm4.AuthLogin(ALoginName: string): Boolean;
  70. begin
  71. if SameText(ALoginName, 'csttf') then
  72. begin
  73. pnl2.Caption := ALoginName + ',您已成功登陆!';
  74. pnl2.BringToFront;
  75. end
  76. else
  77. begin
  78. ShowMessage(ALoginName + '账号不存在,可能账号绑定错误,请联系管理员!');
  79. end;
  80. end;
  81. procedure TForm4.btn1Click(Sender: TObject);
  82. begin
  83. if Login(edt1.Text, edt2.Text) then
  84. begin
  85. pnl2.Caption := edt1.Text + ',您已成功登陆!';
  86. pnl2.BringToFront;
  87. end
  88. else
  89. begin
  90. ShowMessage('用户名和密码不对!');
  91. end;
  92. end;
  93. procedure TForm4.FormCreate(Sender: TObject);
  94. var
  95. AppCentreCom: ILXTAppCentreCom;
  96. AThread: TAuthLogin;
  97. ALoginName: string;
  98. jo: ISuperObject;
  99. begin
  100. IniOptions.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'appcentre.ini');
  101. AppCentreCom := CoLXTAppCentreCom.Create;
  102. if ParamCount >= 1 then
  103. begin
  104. ALoginName := string(AppCentreCom.Authenticate(PChar(ParamStr(1)), PChar(IniOptions.AppCentreAppSecret)));
  105. if ALoginName <> ''then
  106. begin
  107. ShowMessage(ALoginName);
  108. jo := SO(ALoginName);
  109. ALoginName := jo.S['id'];
  110. AuthLogin(ALoginName);
  111. end;
  112. end
  113. else
  114. begin
  115. AppCentreCom.RegisterInstallationDirectory(PChar(IniOptions.AppCentreAppKey), PChar(ParamStr(0)));
  116. end;
  117. end;
  118. function TForm4.Login(AUserName, APassword: string): Boolean;
  119. begin
  120. Result := SameText(edt1.Text, 'csttf') and SameText(edt2.Text, '12345678');
  121. end;
  122. { TAuthLogin }
  123. procedure TAuthLogin.Execute;
  124. var
  125. AppCentreCom: ILXTAppCentreCom;
  126. AppToken: string;
  127. ALoginName: string;
  128. jo: ISuperObject;
  129. begin
  130. AppCentreCom := CoLXTAppCentreCom.Create;
  131. ALoginName := string(AppCentreCom.Authenticate(PChar(FURL), PChar(FAppSecrit)));
  132. if ALoginName <> ''then
  133. begin
  134. jo := SO(ALoginName);
  135. ALoginName := jo.S['id'];
  136. FForm.AuthLogin(ALoginName);
  137. end;
  138. end;
  139. end.