2016-04-19 25 views
0

我想创建一个简单的检查器控制台应用程序,该应用程序应该在开发人员的机器上启动时运行并检查一些项目。这是为了确保所有开发人员都按照定期更新的预定义策略工作。如何确保C#应用程序在启动完成后启动

一切正常,除了这个控制台应用程序在Windows真正启动之前运行(用户尚未登录),我们的应用程序在某些地方遇到拒绝访问异常。

this answer中,建议我们将控制台更改为Windows服务,或者将其设置为Windows计划任务,但在我们的情况中,这些都不是我们所期望的。

有什么办法可以检查Windows是否完全启动,并且用户已登录(例如在一个while循环中),然后在.NET中继续执行代码?

+0

那你现在怎么开始呢?你听说过启动文件夹吗? – CodeCaster

+0

“这是为了确保所有开发人员都按照预定义的策略工作” - 您必须有一些严重的信任问题。 – Mahol25

+0

您描述的场景是不可能的,一个控制台模式应用程序*需要一个用户在它可以启动之前登录。也许你对服务的依赖性需要更长的时间才能完成,但这只是一个猜测,只要你不发布任何诊断信息即可。 –

回答

1
  1. 如果您可以使用用户凭证(您知道用户密码或可以要求用户配置服务)配置Windows服务,您可以使用用户凭证安装Windows服务。选择Automatic Delayed Start(解释here)。即使用户尚未登录,该服务也会启动,但凭借其凭据。
  2. 您可以使用Startup folder
  3. 您可以使用注册表 运行\注册表编辑器

开放

[HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Run中]

对于每一个程序,你要使用描述性名称自动创建新字符串值,并将该字符串的值设置为可执行程序

相关问题