检测用户何时完全登录计算机

时间:2011-05-18 10:10:11

标签: c# windows

问题: 我必须启动Internet Explorer以访问特定时间用户在Citrix上进行本地登录(因此实际上它是Citrix用户启动2次)这是由最高老板强制执行的。

我知道我可以使用群组策略来执行此操作,但我想知道我是否可以执行以下操作来改善用户体验。

1)在启动时启动程序(我制作的最小应用程序) 2)让该程序等待,直到用户完全连接,然后启动IE。

现在我的问题是什么是检测用户何时完全登录的好方法(我的定义是,计算机/会话处于响应用户输入的状态,并且他可以启动应用程序他/她想用。)

如果有人有聪明的方法来检测这个,请告诉我如何。试图在SO或互联网上搜索它,它没有任何帮助(IE SO现在试图告诉我如何检测谁登录)。

刚刚使用睡眠风格的解决方案进行了测试,并且不好,因为它没有考虑到不同的登录时间。所以这是一个糟糕的解决方案(没有接受回复的原因)

3 个答案:

答案 0 :(得分:1)

  

我对此的定义是,计算机/会话处于响应用户输入的状态,并且他可以启动他/她想要使用的应用程序

我想你会发现这还不够具体。

EG。我有启动应用程序,其中一些需要几十秒才能处于可用状态,在此之前我可以启动其他(基本上)立即可用的应用程序。

任务计划程序(至少在Win7中,可能是Vista)允许在登录时触发任务,但有一段延迟,即登录后一分钟开始。

答案 1 :(得分:1)

我的2¢:

我认为你应该keep it simple并在用户的自动启动中添加start http://[website]。然后专注于改善一切的启动时间,而不是试图解决一个特定的问题。

编写应用程序来检测系统的响应性无疑会很难,而且很可能会遇到难以预测和解释的客户端之间的差异导致的问题。您可以轻松地花费数十个小时来开发和调试它。另一方面,使用直接和OS支持的解决方案将花时间来研究启动时间的真正问题。

start command具有优先级设置,可能值得一试。

答案 2 :(得分:0)

使用像.Net这样的东西会过度设计IMO。

我会编写一个非常简单的VBScript文件,该文件在登录时执行,使用您首选的方法将其启动。

该脚本基本上sleep指定的时间允许登录安定下来/完成,然后run“iexplore.exe http://www.yourdomain.com”。

没有弹出cmd窗口来惹恼任何人或让人们关闭。

相当,不引人注目,简单,有效。