以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 一个帐号同时在不同电脑上登录,退出系统的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48221) |
-- 作者:小猪鑫鑫 -- 发布时间:2014/3/25 13:58:00 -- 一个帐号同时在不同电脑上登录,退出系统的问题 狐爸:现在在做一个人在不同电脑上登录,最先登录的电脑自动退出系统时遇到一点点问题,请指教
我在项目事件中有下面的代码,就是退出时确认一下是否真的退出 BeforeCloseProject Dim Result As DialogResult Result = Messagebox.Show("请问是否确定要退出琅日信息系统?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.No Then \'如果用户选择否 e.Cancel = True \'取消关闭项目 Else e.skipsave =True End If
然后我在计划管理中有下面的代码,就是判断一个人是否在不同电脑上同时登录 Dim IPAdress As System.Net.IPAddress Dim HostName As String HostName = System.Net.Dns.GetHostName \'获得本机的机器名 IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.GetValue(0) \'获得本机的IP
Dim i As new SQLCommand Dim ts As Integer i.C i.CommandText ="select count(工号) as 台数 from {SY用户登录表} where 工号 =\'" & _username & "\' and 状态 =\'在线\'" ts =i.ExecuteScalar output.show(_username) output.show(ts) If ts >=2 Dim cmb As new SQLCommand cmb.C cmb.CommandText ="update {SY用户登录表} set 离线时间 =\'" & Vars("sqldt") & "\' ,状态 =\'离线\' where 工号 =\'" & _username & "\' and IP地址 =\'" & IPAdress.ToString & "\' and 状态 =\'在线\'" cmb.ExecuteNonQuery syscmd.project.Exit(False) End If
现在的问题时,当系统监测到有人同时在不同电脑上登录时,它会执行计划管理中的代码,退出系统,但退出时它还是会执行这个BeforeCloseProject里面的代码,弹出“是与否”的对话框,需要人为处理才能退出系统,我想请问能不能直接退出,不要人为确认点击“是”,但这个BeforeCloseProject里面的代码还是需要保留的 |
-- 作者:Bin -- 发布时间:2014/3/25 14:02:00 -- 添加一个全局变量 计时器中为全局变量赋值 BeforeCloseProject if 全局变量=True then Dim Result As DialogResult Result = Messagebox.Show("请问是否确定要退出琅日信息系统?","提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.No Then \'如果用户选择否 e.Cancel = True \'取消关闭项目 Else e.skipsave =True End If end if |
-- 作者:小猪鑫鑫 -- 发布时间:2014/3/25 14:04:00 -- 呵呵,谢谢Bin老师,很好的想法,谢谢 |
-- 作者:lsy -- 发布时间:2014/3/25 14:41:00 -- 楼主做的复杂了点。
登录后在登录表中写入ComputerId 计时器定时读取ComputerId,如果不是本机ComputerId,就退出。 |
-- 作者:kunmails -- 发布时间:2014/3/25 17:02:00 -- 我在系统中设置了同一个账号不允许在不同电脑上登陆,新登陆时可以选择是否踢下上一个登陆,运用了2个表1个计时器,在登陆的时候往状态表中写一条登陆信息,包括IP,账号名,登陆时间,如果选择踢下上一个登陆那么就往命令表中写一条数据, 登陆后打开计时器,计时器每隔 10秒更新下登陆信息表,如果登陆信息表的中的时间超过10秒说明用户已经退出,计时器还读取命令表中的数据,判断是否需要退出系统,当用户登陆时判断是否继续如果继续就往命令表中写一条命令,然后另外的客户端10秒更新的时候发现这个命令就提示退出!登陆效果和QQ的判断差不多,不知道其他狐友有没有更好的想法! [此贴子已经被作者于2014-3-25 17:08:07编辑过]
|
-- 作者:小猪鑫鑫 -- 发布时间:2014/3/25 19:45:00 -- 谢谢4楼Isy老师,我觉得您的意见更简单一些,谢谢指点! |
-- 作者:nmamtf -- 发布时间:2019/5/2 20:03:00 -- 学习了。 |