我有一个系统服务运行在我的Windows机器上,可以模拟当前登录的用户并以他们的名义启动应用程序(包括UI应用程序)。如何在Windows登录完成后运行某些操作?
当用户已经登录到他们的交互式会话,他们的桌面被创建等等时,它工作正常。
该服务的启动是自动的,所以每次重新启动后都会自动启动。如果在服务启动后立即尝试运行某个程序(需要UI访问),那么该程序可能会失败 - 可能是因为自动登录进程仍在进行中,桌面尚未创建,等等。
问题是:如果服务开始“提前”,它如何等待交互式会话被完全初始化(除了等待一些任意时间,这不是最优的)?
或者,服务能否“迟到”启动?是否有注册表项或文件夹或其他内容可用于将服务启动延迟至Shell准备就绪并且可以安全启动UI应用程序?
谢谢。我发现解决方案2工作得很好(我打电话给schtasks.exe以编程方式创建/删除ONLOGON任务),这个ping技巧很简洁(另一种选择是使用timeout/t)。 – Netspirit 2012-04-03 08:02:32