以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]无任何动作10分钟后锁定系统  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=8175)

--  作者:易服
--  发布时间:2010/9/14 10:03:00
--  [求助]无任何动作10分钟后锁定系统

在《总览》表无任何动作10分钟后秒执行

For Each t As RibbonMenu.Tab In RibbonTabs
    t.Visible = False
Next
For Each t As Table In Tables
    t.Visible = False
Next
Forms("主界面").Open()
Forms("操作选项").Close()

 

这样的代码怎么写?先谢了


--  作者:狐狸爸爸
--  发布时间:2010/9/14 10:08:00
--  

自己加一个全局日期型public变量,在AfterEdit、CurrentChanged、DataColumnChanged等事件设置代码:

 

变量名 = Date.Now

 

是项目的SystemIdle设置代码:

 

If (Date.Now - 变量名).TotalSeconds > 10 Then

   \'你的代码

End IF

[此贴子已经被作者于2010-9-14 10:07:51编辑过]

--  作者:易服
--  发布时间:2010/9/14 11:57:00
--  

项目的SystemIdle设置代码:  

If (Date.Now - myDate).TotalSeconds > 600 Then
    For Each t As RibbonMenu.Tab In RibbonTabs \'隐藏菜单
        t.Visible = False
    Next
    For Each t As Table In Tables
        t.Visible = False
    Next
    Forms("主界面").Open()
    Forms("操作选项").Close()
End IF

有一个不足就是10分钟(600秒)锁定后,在Forms("主界面").Open()重新输入密码打开后又立即锁定,不能再打开了,必须关闭系统重新启动。

     "主界面"窗口 KeyDown事件:
If e.KeyCode = Keys.Enter Then
    If e.Sender.Text = "123" Then
        For Each t As RibbonMenu.Tab In RibbonTabs
            t.Visible = True
        Next
        For Each t As Table In Tables
            t.Visible = True
        Next
        e.Form.Close
        MainTable = Tables("总览")
        forms("操作选项").open()
        forms("数据加载").open()
    Else
        MessageBox.Show("密码错误")
    End If
    e.Sender.Value = ""
End If

       怎样才能在锁定后重新输入密码仍然能打开


--  作者:程兴刚
--  发布时间:2010/9/14 12:05:00
--  

If (Date.Now - 变量名).TotalSeconds > 10 Then

   \'你的代码,这里打开一个模式窗口,相当于自定义登录界面,输入正确的密码点击确定按钮进入,同时通过确定按钮解除锁定(恢复相应的功能、菜单)

End IF


--  作者:程兴刚
--  发布时间:2010/9/14 12:09:00
--  

也就是按照楼上打开模式窗口,把您的这一段代码放入确定按钮中,最外层嵌套判断密码语句:

 

 

if  ...........

    For Each t As RibbonMenu.Tab In RibbonTabs \'隐藏菜单
        t.Visible = False
    Next
    For Each t As Table In Tables
        t.Visible = False
    Next
    Forms("主界面").Open()
    Forms("操作选项").Close()
End IF

有一个不足就是10分钟(600秒)锁定后,在Forms("主界面").Open()重新输入密码打开后又立即锁定,不能再打开了,必须关闭系统重新启动。

     "主界面"窗口 KeyDown事件:
If e.KeyCode = Keys.Enter Then
    If e.Sender.Text = "123" Then
        For Each t As RibbonMenu.Tab In RibbonTabs
            t.Visible = True
        Next
        For Each t As Table In Tables
            t.Visible = True
        Next
        e.Form.Close
        MainTable = Tables("总览")
        forms("操作选项").open()
        forms("数据加载").open()
    Else
        MessageBox.Show("密码错误")
    End If
    e.Sender.Value = ""
end if


--  作者:易服
--  发布时间:2010/9/14 14:12:00
--  

 糊涂了!

 "主界面"窗口是一个独立窗口 


图片点击可在新窗口打开查看此主题相关图片如下:独立窗口.png
图片点击可在新窗口打开查看
 

[此贴子已经被作者于2010-9-14 19:13:03编辑过]

--  作者:卟离卟弃
--  发布时间:2010/9/14 14:35:00
--  
狐爸,DataColumnChanged 这是什么事件?  在那儿可以找到。。。
--  作者:卟离卟弃
--  发布时间:2010/9/14 14:36:00
--  
大哥,怎么不用模式窗口呢?
--  作者:狐狸爸爸
--  发布时间:2010/9/14 14:37:00
--  

是DataColchanged

 

 


--  作者:狐狸爸爸
--  发布时间:2010/9/14 14:40:00
--  
以下是引用易服在2010-9-14 11:57:00的发言:

项目的SystemIdle设置代码:  

有一个不足就是10分钟(600秒)锁定后,在Forms("主界面").Open()重新输入密码打开后又立即锁定,不能再打开了,必须关闭系统重新启动。

       怎样才能在锁定后重新输入密码仍然能打开

 

你应该在输入密码后,判断密码是否正确的地方,在判断正确之后,加入一行代码:

 

变量名 = Date.Now

 

这样就重新开始计时。