参照bbs,写了这个方法,检查是否有同名用户已经登录:
procedure TUniMainModule.CheckSameUser(aUserLoginCode: string);
var
ASessionList: TList;
I: Integer;
M: TUniMainModule;
USession: TUniGUISession;
begin
UniServerModule.SessionManager.Sessions.Lock;
try
ASessionList := UniServerModule.SessionManager.Sessions.SessionList;
for I := 0 to ASessionList.Count - 1 do
begin
USession := TUniGUISession(ASessionList[I]);
M := USession.UniMainModule as TUniMainModule;
if M.UserLoginCode = aUserLoginCode then//这里UserLoginCode是在MainModule中定义的一公共变量,用来保存用户登录代码,标示用户身份.
begin
M.ExitFlag:=True; //ExitFlag也是在MainModule中定义的公共变量,表示是否退出.
USession.TerminateAfterSecs(10);
Break;
end;
end;
finally
UniServerModule.SessionManager.Sessions.Unlock;
end;
end;
uniGUI 通过SessionList操作另外的登录用户
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)