以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]SystemIdle 系统空闲时隐藏主窗体的设置  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102232)

--  作者:2900819580
--  发布时间:2017/6/15 16:50:00
--  [求助]SystemIdle 系统空闲时隐藏主窗体的设置
 

SystemIdle 

 

If LastInputTickCount > 600000 Then

   \' Syscmd.Project.Exit()

BaseMainform.Visible = False

End If

 

老师,我这个写在SystemIdle ,想法是当用户十分钟内对系统无任何操作,则隐藏主界面。

 

但查了一下资料,SystemIdle 是对整个Window,如何可以实现只对Fotable发布的程序呢?


--  作者:有点色
--  发布时间:2017/6/15 16:56:00
--  

 

static ts As Date = Date.Now
static flag As Boolean = True
If flag Then
    If Windows.Forms.Form.ActiveForm IsNot Nothing Then
        ts = Date.now
    Else
        Dim sp As TimeSpan = Date.now - ts
        If sp.TotalSeconds > 10 Then \'10秒
            flag = False
            MessageBox.show("长时间未操作系统,未免资源浪费,已强制性关闭系统!可选择重新登录!")
            Syscmd.Project.Exit()
        End If
    End If
End If

--  作者:2900819580
--  发布时间:2017/6/16 8:48:00
--  
老师,这个代码还是写在SystemIdle 上吗?
--  作者:有点色
--  发布时间:2017/6/16 8:56:00
--  

 是的


--  作者:2900819580
--  发布时间:2017/6/16 9:10:00
--  

老师,经测试,没有效果


--  作者:有点色
--  发布时间:2017/6/16 9:13:00
--  
以下是引用2900819580在2017/6/16 9:10:00的发言:

老师,经测试,没有效果

 

你如何测试的?你不在你的foxtable系统里操作超过10秒后,自动会弹出提示。


--  作者:2900819580
--  发布时间:2017/6/16 11:11:00
--  
以下是引用有点色在2017/6/16 9:13:00的发言:

 

你如何测试的?你不在你的foxtable系统里操作超过10秒后,自动会弹出提示。

 

只会自动弹出一次,我想要的是每当Foxtable空闲时都检查一下。

 

代码好像只执行一次。

 

static ts As Date = Date.Now
static flag As Boolean = True
If flag Then
    If Windows.Forms.Form.ActiveForm IsNot Nothing Then
        ts = Date.now
    Else

MessageBox.Show(ts)
        Dim sp As TimeSpan = Date.now - ts
        If sp.TotalSeconds > 10 Then \'10秒
            flag = False
           

if BaseMainform.Visible = true then BaseMainform.Visible = False

        End If
    End If
End If

[此贴子已经被作者于2017/6/16 11:15:14编辑过]

--  作者:有点色
--  发布时间:2017/6/16 11:23:00
--  
static ts As Date = Date.Now
If Windows.Forms.Form.ActiveForm IsNot Nothing Then
    ts = Date.now
Else
    Dim sp As TimeSpan = Date.now - ts
    If sp.TotalSeconds > 10 Then \'10秒
        If BaseMainform.Visible = True Then BaseMainform.Visible = False
    End If
End If