Foxtable(狐表)用户栏目专家坐堂 → 关于SystemIdle事件的问题


  共有2539人关注过本帖树形打印复制链接

主题:关于SystemIdle事件的问题

帅哥哟,离线,有人找我吗?
ap9709130
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/19 15:54:00 [只看该作者]

你可能真的没懂我的意思,我一会写详细点吧。

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/19 16:02:00 [只看该作者]

我现在的代码是这样:

If (baseMainform.visible) = True Then
    If LastInputTickCount > 300000 Then
        If Windows.Forms.Form.ActiveForm IsNot Nothing Then
            If Forms("登陆窗口").Opened = False Then
                Forms("登陆窗口").show
            End If
        End If
    End If
End If

 

所以当程序缩小到任务栏时,就算过了5份钟也不会弹出登陆窗口。

如果变成这样:

If (baseMainform.visible) = True Then
    If LastInputTickCount > 300000 Then       
            If Forms("登陆窗口").Opened = False Then
                Forms("登陆窗口").show
            End If
            End If
End If

 

就算程序缩小到任务栏是,超过5分钟,登陆窗口还是会弹出。这种显然是不友好的,因为可能别人在做别的事。

 

 

我现在想实现的是,当程序缩小时,计时一样开始。如果超过5分钟,当再选择这个程序时,要重新登陆。如果能知道程序重新获得焦点呢?因为已经在计时,后面的都很容易,就是重新获得焦点时怎么判断搞不懂。请指点。多谢!


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/19 16:52:00 [只看该作者]

static ptime As Date = Date.Now
static leave As Boolean = False

If Windows.Forms.Form.ActiveForm Is Nothing AndAlso leave = False Then
    ptime = Date.Now
    leave = True
ElseIf Windows.Forms.Form.ActiveForm IsNot Nothing Then
    If leave = True Then
        leave = False
        Dim sp As TimeSpan = Date.Now - cdate(ptime)
        If sp.TotalSeconds > 10  Then
            If Forms("登陆窗口").Opened = False Then
                Forms("登陆窗口").show
            End If
        End If
    End If
    If LastInputTickCount > 10000 Then
        If Forms("登陆窗口").Opened = False Then
            Forms("登陆窗口").show
        End If
    End If
   
End If


 回到顶部
总数 13 上一页 1 2