以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 记录退出时间 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190270) |
-- 作者:edisontsui -- 发布时间:2024/1/27 14:48:00 -- 记录退出时间 Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = \'" & User.name & "\'") If drf IsNot Nothing Then drf("退出时间") = Date.now drf.save End If 上面代码放在 beforecloseproject 里面,用于记录用户退出系统的时间。但是,好像有时候记录不到退出时间,请问是什么原因呢?比如,同样在我的电脑登录,用开发者登录,可以记录退出时间;如果用其他用户登录,就不会记录退出时间。谢谢。
|
-- 作者:有点蓝 -- 发布时间:2024/1/27 14:57:00 -- 使用的内置用户,还是自定义用户管理? |
-- 作者:edisontsui -- 发布时间:2024/1/27 16:01:00 -- 应该是内置用户管理吧,我没有专门设计过用户登录界面。 |
-- 作者:有点蓝 -- 发布时间:2024/1/27 16:10:00 -- 代码在什么事件的? 调试 msgbox(User.name) Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = \'" & User.name & "\'") msgbox(drf IsNot Nothing) If drf IsNot Nothing Then drf("退出时间") = Date.now drf.save End If |
-- 作者:edisontsui -- 发布时间:2024/1/29 14:40:00 -- 暂时测试结果是没问题,我再观察一段时间。谢谢。 |
-- 作者:edisontsui -- 发布时间:2024/2/22 10:13:00 -- 代码是放在 beforecloseproject 这个事件里面。现在还是有部分用户的退出时间无法记录下来。好像是跟用户组别有关:在执行4楼的代码时,某些组别的用户不会显示 msgbox(User.name) 和 msgbox(drf IsNot Nothing)。但是我也没有限制哪个用户组别是否执行代码。请问还有什么原因呢? |
-- 作者:有点蓝 -- 发布时间:2024/2/22 10:30:00 -- msgbox代码不可能会受什么组别影响。要么代码根本就没有执行,也就是程序是强制退出的,比如 1、断电被关机 2、没有退出程序,直接关机 3、到任务管理器强制退出
|
-- 作者:edisontsui -- 发布时间:2024/2/22 11:26:00 -- 是正常关闭系统的,就是点击系统右上角的 x 来退出系统的。现在发现,就是“营销”和“仓库”这个两个组的用户执行 beforecloseproject 就会有问题,其他组别都没有问题。 我们再看下面的 beforeOpenProject 代码,这些代码,所有组别执行都没有问题: \'记录用户登录时的 IP 地址 Dim IPAdress As System.Net.IPAddress Dim HostName As String HostName = System.Net.Dns.GetHostName \'获得本机的机器名 Dim l As Integer = System.Net.Dns.GetHostByName(HostName).AddressList.Length Dim s As String = "" For i As Integer = 0 To l - 1 IPAdress = System.Net.Dns.GetHostByName(HostName).AddressList.getValue(i) \'获得本机的IP s &= IPAdress.Tostring & "," Next s = s.trim(",") If drf IsNot Nothing Then drf("系统发布日期") = Publishdate drf("登录时间") = Date.now drf("计算机名称") = SysInfo.ComputerName drf("IP地址") = s drf("组别") = User.group drf.save Else Dim dra1 As DataRow = DataTables("系统版本").AddNew() dra1("用户名") = User.name dra1("系统发布日期") = Publishdate dra1("登录时间") = Date.now dra1("计算机名称") = SysInfo.ComputerName dra1("IP地址") = s dra1("组别") = User.group dra1.save End If \'记录用户登录信息结束 |
-- 作者:有点蓝 -- 发布时间:2024/2/22 11:39:00 -- drf是什么东西? |
-- 作者:edisontsui -- 发布时间:2024/2/22 12:35:00 -- 不好意思,抄漏一行给你,下面这行是在8楼的代码最前面的: Dim drf As DataRow = DataTables("系统版本").SQLFind("用户名 = \'" & User.name & "\'")
|