以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何实现锁屏功能?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38246)

--  作者:xu3180497
--  发布时间:2013/7/24 0:44:00
--  [求助]如何实现锁屏功能?
打开一个项目,设置一个时间,比如5分钟,如何在5分钟内没有任何操作的话,就自动锁屏,只显示锁屏界面,不显示foxtable项目界面。如何进入需要重新输入密码后方可登录,求例子!!!
--  作者:blackzhu
--  发布时间:2013/7/24 7:45:00
--  

SystemIdle

在系统空闲的时候执行。
此事件执行较为频繁,所以请不要出现"负荷"较重的代码。

示例一

例如为了在状态栏显示用户名、表名、总行数、当前行位置,可以在SystemIdle中加入下面的代码:

With CurrentTable
    Dim
Str1 As String = "用户: " & User.Name
    Str1 = Str1 &
" 表名: " & .Name & " 总行数: "
    Str1 = Str1 & .Rows.Count &
" 当前行: " & (.Position + 1)
    StatusBar.Message1 = Str1

End
With

示例二

如果用户30秒内没有进行任何操作,就自动关闭系统,可以在SystemIdle中加入下面的代码:

If LastInputTickCount > 30000 Then
    Syscmd.Project.Exit()

End
If

提示:LastInputTickCount是一个系统变量,返回距离用户上次操作之后的时间,单位为毫秒。


--  作者:xu3180497
--  发布时间:2013/7/24 13:49:00
--  
可是锁屏的功能应该怎么在这个事件里面去实现呢?烦请详细说明下,谢谢!
--  作者:blackzhu
--  发布时间:2013/7/24 14:21:00
--  
不是说的很清楚了吗?

If LastInputTickCount > 30000 Then   \'如果在30秒没有操作
    
CurrentTable.Grid.Findform.Visible = False  \'隐藏主界面
    forms("登录").open  \'开启登录窗口
End If

--  作者:wuxianzuoji41
--  发布时间:2013/7/27 15:21:00
--  
以下是引用blackzhu在2013-7-24 14:21:00的发言:
不是说的很清楚了吗?

If LastInputTickCount > 30000 Then   \'如果在30秒没有操作
    
CurrentTable.Grid.Findform.Visible = False  \'隐藏主界面
    forms("登录").open  \'开启登录窗口
End If

 forms("登录").open

提示没有登陆窗口,FT默认的带开发者的登陆窗口该怎么写这句代码?


--  作者:Bin
--  发布时间:2013/7/27 15:24:00
--  
Syscmd.Project.SwitchUser()

但是这是可以关掉的,所以还是自己设计一个比较好.

--  作者:wuxianzuoji41
--  发布时间:2013/7/27 16:37:00
--  

If LastInputTickCount > 30000 Then   \'如果在30秒没有操作
    CurrentTable.Grid.Findform.Visible = False  \'隐藏主界面
    Syscmd.Project.SwitchUser() \'开启登录窗口
End If

 

可以自动到切换登陆界面,但是提示创建句柄错误

 

 

出现死循环,登陆窗口关闭不掉

[此贴子已经被作者于2013-7-27 16:42:15编辑过]

--  作者:Bin
--  发布时间:2013/7/27 16:50:00
--  
这个可以点击关闭,不实用.建议还是自己设计一个

另外最好判断一下该窗口是否除以打开状态再执行,否则会一直打开

if forms("窗口1").opend=false then
    forms("窗口1").show
end if

--  作者:wuxianzuoji41
--  发布时间:2013/7/27 18:49:00
--  
以下是引用Bin在2013-7-27 16:50:00的发言:
这个可以点击关闭,不实用.建议还是自己设计一个

另外最好判断一下该窗口是否除以打开状态再执行,否则会一直打开

if forms("窗口1").opend=false then
    forms("窗口1").show
end if
If LastInputTickCount > 30000 Then   \'如果在30秒没有操作
    
CurrentTable.Grid.Findform.Visible = False  \'隐藏主界面
   
if forms("登陆").opend=false then
    forms("登陆").show
end if
End If
 
是这么写吗