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


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

主题:关于SystemIdle事件的问题

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
关于SystemIdle事件的问题  发帖心情 Post By:2015/6/11 16:32:00 [显示全部帖子]

我现在做的系统想实现 如果5分钟内没有操作就要重新登陆。登陆窗口做好了,测试都没有问题。

 

现在的问题是,我做的程序有三种状态:1.现在使用的程序是焦点程序

                                                   2.程序在任务栏中:

                                                   3.程序在工具栏中,但不是焦点程序。

见图:

1.

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

2.


 


图片点击可在新窗口打开查看此主题相关图片如下:2 (1).png
图片点击可在新窗口打开查看

3.


 


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

 

 

我想第2.3种状态就不弹出登陆窗口,第二种状态我会判断。请问第三种状态要如何用代码判断呢?


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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/11 17:25:00 [显示全部帖子]

多谢!还有一个问题,如何可以知道 当程序重新获得焦点?

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/18 16:51:00 [显示全部帖子]

大红袍

 

我想实现:当程序缩在任务栏时,计时开始。这个你已经教会我了,我试过没有问题。这时是在计时的,但可能用户在用其它程序,所以这时间是不能弹出登陆窗口的。

 

 

但是如果超过了5分钟后,如果当客户再选中我的程序时,为了安全是要重新登陆的。现在的问题是:有哪个事件或者代码,能判断我的程序变成了当前程序呢?请指教。多谢!


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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/18 17:08:00 [显示全部帖子]

这个代码写在哪个事件里?

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/6/19 14:56:00 [显示全部帖子]

大红袍

 

你可能没有懂我的意思,在程序不是当前程序时,系统肯定是没有操作的,我可以开始计时,但当程序变成当前程序时,因为你把程序变成了当前程序,就是说这个事件就不起作用了啊。窗口弹不出来啊。


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
ap9709130
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | 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分钟,当再选择这个程序时,要重新登陆。如果能知道程序重新获得焦点呢?因为已经在计时,后面的都很容易,就是重新获得焦点时怎么判断搞不懂。请指点。多谢!


 回到顶部