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

C# 检测用户何时完全登录到计算机,c#,windows,C#,Windows,问题: 我必须启动internet explorer访问spesfic网站,用户每次登录citrix上的任意一个localy(因此实际上,citrix用户会启动两次),这是最高领导的要求 我知道我可以使用组策略来实现这一点,但我想知道我是否可以做以下工作来改善用户体验 1) 在startup(我制作的最小应用程序)中启动程序。 2) 让此程序等待用户完全连接,然后启动IE。 现在我的问题是什么是检测用户何时完全登录的好方法(我的定义是,计算机/会话处于响应用户输入的状态,用户可以启动他/她想要使

问题: 我必须启动internet explorer访问spesfic网站,用户每次登录citrix上的任意一个localy(因此实际上,citrix用户会启动两次),这是最高领导的要求

我知道我可以使用组策略来实现这一点,但我想知道我是否可以做以下工作来改善用户体验

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

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

如果有人有一个聪明的方法来检测这一点,请告诉我如何。无论是在SO还是在internet上搜索,都没有得到任何有用的信息(即SO现在试图告诉我如何检测谁登录)

刚刚使用睡眠风格的解决方案进行了测试,但效果不佳,因为它没有考虑不同的登录时间。因此,这是一个糟糕的解决方案(没有被接受的答复的原因)

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

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

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

任务计划程序(至少在Win7中,可能在Vista中)允许在登录时触发任务,但会有延迟,比如说在登录后一分钟启动。

My 2​:

我认为您应该添加一个
启动http://[website]
到用户的autostart。然后专注于改善每件事情的启动时间,而不是试图解决某个特定问题

毫无疑问,编写一个应用程序来检测系统的响应性是很困难的,而且很可能会遇到由于客户机之间的差异而导致的问题,这些差异很难预测和解释。您可以轻松地花费数十个小时来开发和调试此功能。另一方面,使用直截了当且支持操作系统的解决方案将为您赢得时间来研究真正的启动时间问题


具有优先级设置,这可能值得检查。

使用.Net之类的工具将优于工程IMO

我会编写一个非常简单的VBScript文件,在登录时执行,使用您喜欢的启动方法

该脚本基本上会在一段指定的时间内允许登录稳定/完成,然后是“iexplore.exe”

没有弹出窗口来骚扰任何人或让人们关闭


非常、低调、简单、有效。

我认为您应该保持简单,并在用户的自动启动中添加一个
start http://[website]
。然后专注于改善每件事的启动时间,而不是试图解决某个特定的问题。@Anders你应该发表你的评论作为回答。使用“技巧”避免否决投票。@Toby:完成@EKS:我不相信它有足够的实质内容来作为答案,我的答案是出于善意的。我在建议后面加了几句我的理由。你的回答比你的评论要好,我不会投反对票的。我同意你的建议,但有时你不能解决所有的问题,而是要集中精力确保你不会创建新的一次。我对应用程序在用户可以启动程序后几秒钟内没有启动没有问题。简而言之,您会使用计时器吗?@EKS:延迟启动是任务计划程序的一部分。刚刚检查,citrix服务器基于2003,因此任务计划程序没有此选项。但使用这种基于计时器的方法是一种错误的选择