main.pas
来自「FIR引擎最新源码+注册」· PAS 代码 · 共 596 行 · 第 1/2 页
PAS
596 行
begin
if g_MySelf.boLogined then begin
Application.MessageBox('你已经登陆在线!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
sAccount := Trim(EditAccout.Text);
sPassword := Trim(EditPassword.Text);
if sAccount = '' then begin
Application.MessageBox('请输入账号!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
if sPassword = '' then begin
Application.MessageBox('请输入账号!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
ButtonLogin.Enabled := False;
g_sAccount := sAccount;
g_sPassword := sPassword;
//Caption := '正在登陆...';
ClientSocket.Active := False;
ClientSocket.Host := g_sServerAddr;
ClientSocket.Port := g_nServerPort;
ClientSocket.Active := True;
StatusBar.Panels[1].Text := '正在登陆...';
end;
procedure TfrmFMain.ButtonAddClick(Sender: TObject);
var
UserSession: TUserSession;
sAccount: string;
sPassword: string;
sSerialNumber: string;
sUserIPaddr: string;
btBind: Byte;
nUserQQ: Integer;
btMode: Byte;
btPermission: Byte;
btMainVersion: Byte; //引擎版本
nUserIPaddr: Integer;
nUserCount: Integer; //用户数
nLicCount: Integer; //授权剩余次数
dStartDate: TDateTime; //开始时间
dEndDate: TDateTime; //结束时间
nLicDays: Integer;
begin
if not g_MySelf.boLogined then begin
Application.MessageBox('请先登陆服务器!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
sAccount := Trim(EditUserAccount.Text);
sPassword := Trim(EditUserPassword.Text);
sSerialNumber := Trim(EditSerialNumber.Text);
btBind := RadioGroupBind.ItemIndex + 1;
nUserQQ := Str_ToInt(Trim(EditUserQQ.Text), -1);
btMode := RadioGroupUserMode.ItemIndex + 1;
btPermission := SpinEditPermission.Value;
btMainVersion := RadioGroupMainVersion.ItemIndex + 1; //引擎版本
sUserIPaddr := Trim(EditIPaddr.Text);
nUserCount := 99999; //用户数
nLicCount := SpinEditMaxIpCount.Value; //授权剩余次数
dStartDate := DateTimeEditStartDate.Date + Time; //开始时间
dEndDate := DateTimeEditEndDate.Date + Time; //结束时间
nLicDays := SpinEditMaxDay.Value;
if (sAccount = '') or (sPassword = '') then begin
Application.MessageBox('账号或者密码输入有误!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
case btBind of
1: begin
if sSerialNumber = '' then begin
Application.MessageBox('请输入机器码!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
2: begin
if not IsIpaddr(sUserIPaddr) then begin
Application.MessageBox('请输入正确的IP地址!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end else begin
nUserIPaddr := MakeIPToInt(sUserIPaddr);
if nUserIPaddr = -1 then begin
Application.MessageBox('请输入正确的IP地址!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
end;
end;
case btMode of
1: begin
if nLicDays < 0 then begin
Application.MessageBox('请输入正确的授权天数!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
2: begin
if nLicCount < 0 then begin
Application.MessageBox('请输入正确的IP限制数量!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
end;
3: begin
nLicCount := 99999;
end;
end;
FillChar(UserSession, SizeOf(TUserSession), 0);
UserSession.sAccount := sAccount;
UserSession.sPassword := sPassword;
UserSession.sSerialNumber := sSerialNumber;
UserSession.btBind := btBind;
UserSession.nUserQQ := nUserQQ;
UserSession.btMode := btMode;
UserSession.btPermission := btPermission;
UserSession.btMainVersion := btMainVersion;
UserSession.nUserIPaddr := nUserIPaddr;
UserSession.nUserCount := nUserCount;
UserSession.nLicCount := nLicCount;
UserSession.dStartDate := dStartDate;
UserSession.dEndDate := dEndDate;
if Sender = ButtonAdd then begin
if Application.MessageBox('是否确认增加此用户 ?', '确认信息', MB_YESNO + MB_ICONQUESTION) = mrYes then begin
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在添加新用户...';
SendAddUser(UserSession);
end;
end else
if Sender = ButtonChg then begin
if Application.MessageBox('是否确认修改此用户数据 ?', '确认信息', MB_YESNO + MB_ICONQUESTION) = mrYes then begin
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在修改用户数据...';
SendChgUser(UserSession);
end;
end;
end;
procedure TfrmFMain.ButtonDelClick(Sender: TObject);
var
sData: string;
begin
if not g_MySelf.boLogined then begin
Application.MessageBox('请先登陆服务器!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
if not InputQuery('删除用户', '输入用户账号:', sData) then Exit;
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在删除用户数据...';
SendDelUser(sData);
end;
procedure TfrmFMain.ButtonSearchClick(Sender: TObject);
var
sData: string;
begin
if not g_MySelf.boLogined then begin
Application.MessageBox('请先登陆服务器!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
Exit;
end;
if not InputQuery('搜索用户', '输入用户账号:', sData) then Exit;
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在搜索用户数据...';
SendSearchUser(sData);
end;
procedure TfrmFMain.SendSocket(Socket: TCustomWinSocket; sSendMsg: string);
begin
if Socket.Connected then begin
sSendMsg := '#' + IntToStr(btCode) + sSendMsg + '!';
Socket.SendText(sSendMsg);
Inc(btCode);
if btCode >= 10 then btCode := 1;
end;
end;
procedure TfrmFMain.SendLoginUser(sAccount, sPassword: string);
function GetSerialNumber: string;
function GetDiskSerialNumber: string;
var
Storage: TStorage;
begin
Result := '';
Storage := TStorage.Create;
Storage.GetInfo;
if Storage.DeviceCount > 0 then begin
Result := Storage.Devices[0].SerialNumber;
end;
Storage.Free;
end;
function GetCPUSerialNumber: string;
var
CPU: TCPU;
begin
CPU := TCPU.Create;
CPU.GetInfo();
Result := CPU.SerialNumber;
CPU.Free;
end;
begin
Result := RivestStr(GetDiskSerialNumber + GetCPUSerialNumber);
end;
var
DefMsg: TDefaultMessage;
begin
DefMsg := MakeDefaultMsg(GM_LOGIN, 0, 0, 0, 0);
SendSocket(ClientSocket.Socket, EncodeMessage(DefMsg) + EncryptString(sAccount + '/' + sPassword + '/' + GetSerialNumber));
//EditAccout.Text:=EncryptString(RivestStr(sAccount) + '/' + RivestStr(sPassword) + '/' + GetSerialNumber);
end;
procedure TfrmFMain.SendAddUser(UserSession: TUserSession);
var
DefMsg: TDefaultMessage;
begin
DefMsg := MakeDefaultMsg(SP_GM_ADDUSER, 0, 0, 0, 0);
SendSocket(ClientSocket.Socket, EncodeMessage(DefMsg) + EncryptBuffer(@UserSession, SizeOf(TUserSession)));
end;
procedure TfrmFMain.SendChgUser(UserSession: TUserSession);
var
DefMsg: TDefaultMessage;
begin
DefMsg := MakeDefaultMsg(SP_GM_CHGUSER, 0, 0, 0, 0);
SendSocket(ClientSocket.Socket, EncodeMessage(DefMsg) + EncryptBuffer(@UserSession, SizeOf(TUserSession)));
end;
procedure TfrmFMain.SendDelUser(sData: string);
var
DefMsg: TDefaultMessage;
begin
DefMsg := MakeDefaultMsg(SP_GM_DELUSER, 0, 0, 0, 0);
SendSocket(ClientSocket.Socket, EncodeMessage(DefMsg) + EncryptString(sData));
end;
procedure TfrmFMain.SendSearchUser(sData: string);
var
DefMsg: TDefaultMessage;
begin
DefMsg := MakeDefaultMsg(SP_GM_SEARCHUSER, 0, 0, 0, 0);
SendSocket(ClientSocket.Socket, EncodeMessage(DefMsg) + EncryptString(sData));
end;
procedure TfrmFMain.ButtonCloseSocketClick(Sender: TObject);
begin
ClientSocket.Active := False;
end;
procedure TfrmFMain.FormCreate(Sender: TObject);
begin
LoadConfig();
g_sCaption := Caption;
EditAccout.Text := g_sAccount;
EditPassword.Text := g_sPassword;
DateTimeEditStartDate.Date := Date;
DateTimeEditEndDate.Date := Date + 30;
end;
procedure TfrmFMain.RadioGroupUserModeClick(Sender: TObject);
begin
case RadioGroupUserMode.ItemIndex of
0: begin
SpinEditMaxIpCount.Enabled := False;
SpinEditMaxDay.Enabled := True;
end;
1: begin
SpinEditMaxIpCount.Enabled := True;
SpinEditMaxDay.Enabled := False;
end;
2: begin
SpinEditMaxIpCount.Enabled := False;
SpinEditMaxDay.Enabled := False;
end;
end;
end;
procedure TfrmFMain.RadioGroupBindClick(Sender: TObject);
begin
case RadioGroupBind.ItemIndex of
0: begin
EditIPaddr.Text := '127.0.0.1';
EditIPaddr.Enabled := False;
EditSerialNumber.Enabled := True;
end;
1: begin
EditSerialNumber.Text := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
EditIPaddr.Enabled := True;
EditSerialNumber.Enabled := False;
end;
end;
end;
procedure TfrmFMain.SpinEditMaxDayChange(Sender: TObject);
begin
DateTimeEditStartDate.Date := Date;
DateTimeEditEndDate.Date := DateTimeEditStartDate.Date + SpinEditMaxDay.Value;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?