main.pas
来自「FIR引擎最新源码+注册」· PAS 代码 · 共 603 行 · 第 1/2 页
PAS
603 行
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;
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);
dStartDate := DateTimeEditStartDate.Date + Time; //开始时间
dEndDate := DateTimeEditEndDate.Date + Time; //结束时间
nLicCount := SpinEditMaxCount.Value; //授权剩余次数
nLicDays := SpinEditMaxDay.Value;
nUserCount := SpinEditUserCount.Value; //用户数
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 := g_sAccount;
UserSession.sPassword := g_sPassword;
UserSession.sSerialNumber := sSerialNumber;
UserSession.btBind := btBind;
UserSession.nUserQQ := nUserQQ;
UserSession.btMode := btMode;
UserSession.btPermission := 0;
UserSession.btMainVersion := 0;
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('删除用户', '输入用户IP地址:', sData) then Exit;
if IsIpaddr(sData) then begin
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在删除用户数据...';
SendDelUser(sData);
end else Application.MessageBox('请输入正确的IP地址!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
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('搜索用户', '输入用户IP地址:', sData) then Exit;
if IsIpaddr(sData) then begin
GroupBoxUser.Enabled := False;
StatusBar.Panels[2].Text := '正在搜索用户数据...';
SendSearchUser(sData);
end else Application.MessageBox('请输入正确的IP地址!!!', '提示信息', MB_OK + MB_ICONINFORMATION);
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(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(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(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(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;
DateTimeEditStartDate.Date := Date;
DateTimeEditEndDate.Date := Date + 30;
EditAccout.Text := g_sAccount;
EditPassword.Text := g_sPassword;
ClientSocket.OnConnect := ClientSocketConnect;
ClientSocket.OnDisconnect := ClientSocketDisconnect;
ClientSocket.OnRead := ClientSocketRead;
ClientSocket.OnError := ClientSocketError;
DecodeTimer.OnTimer := DecodeTimerTimer;
EditSerialNumber.Enabled := False;
DateTimeEditStartDate.Enabled := False;
DateTimeEditEndDate.Enabled := False;
GroupBoxUser.Enabled := False;
ButtonCloseSocket.Enabled := False;
ButtonLogin.Enabled := True;
RadioGroupUserMode.ItemIndex := 0;
RadioGroupBind.ItemIndex := 1;
DecodeTimer.Enabled := True;
RadioGroupBind.Enabled := False;
end;
procedure TfrmFMain.RadioGroupUserModeClick(Sender: TObject);
begin
case RadioGroupUserMode.ItemIndex of
0: begin
SpinEditMaxCount.Enabled := False;
SpinEditMaxDay.Enabled := True;
end;
1: begin
SpinEditMaxCount.Enabled := True;
SpinEditMaxDay.Enabled := False;
end;
2: begin
SpinEditMaxCount.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 + -
显示快捷键?