C# - 如何知道启动后Windows何时"已确定"?

Eri*_*ham 10 c# windows boot startup

我正在编写一个可以在Windows Startup上运行的应用程序.

当应用程序在我的PC真正解决之前陷入困境时,我无法忍受,这是一个非关键的应用程序.我希望我的应用程序礼貌地等待所有其他启动项目完成并解决,以便用户的PC在开始执行任何工作之前变得响应.

我该如何检测这种情况?我想我可以遍历注册表并查找所有正在运行的启动进程,或者使用长时间计时器.我只是希望我可能会使用另一种不那么狡猾的技巧.

编辑:该应用程序具有UI,无法作为服务运行.它有一个托盘模式.它做了一些图像渲染.

Kin*_*nus 5

“稍长”的计时器是最好的路线。我不会用杆子碰注册表。

不过,您需要考虑的一件事是,如果用户想要自己启动您的程序,会发生什么?显然你不想造成延误。

我假设您的应用程序有 UI?如果没有,您可以考虑在 Vista/7 上将服务的启动类型设置为“自动(延迟)”

另请参阅此相关问题:How to create delaystartup application in c#?

最后一点,如果您的程序不是关键的,并且您担心它可能会减慢速度,请考虑降低应用程序的优先级。