我的一个客户使用任务管理器来触发(启动)一个进程来做某事。此进程包含一个 UI,并且需要始终是单个实例(已处理)。
任务管理器中的一切运行顺利,如果您需要将任务管理器设置为:“无论用户是否登录都运行”(请在此处查看问题原因的答案:http://social.technet.microsoft.com/Forums/en-US/c03d6691-b058-4f8d-961c-e8eba25bbaed/task-scheduler-problem-run-whether-user-is-logged-on-or-not
好的..没问题。我们只是让任务仅在用户登录时运行。仍然可以正常工作(即使计算机已锁定)。
但是,今天晚上windows更新了,系统自动重启了。用户登录,因此任务管理器无法运行任务。 :-(
由于程序有一个 UI(需要),我无法切换到“无论用户是否登录都运行”。 什么是最佳实践:
- 以需要运行应用程序的用户身份再次登录
- 确保启动的应用程序在用户登录时实际上是可见的? (解锁电脑)
我知道如何在 C# 中使用不同的用户凭据运行进程,但这不是解决此问题的方法。
当计算机启动时自动登录用户(并锁定计算机)会很棒。 这有可能吗?或者我的问题有其他解决方案吗?
问候,
马蒂斯
最佳答案
创建并安装 Windows Service去做实际的工作。此服务不需要登录用户,并且根据定义一次仅运行一个实例,因此这可以解决您的所有问题。
然后让 UI communicate with the service through IPC并让 UI 应用程序 start upon logon .
当然你也可以选择let the user autologon , 在启动文件夹中放置程序的快捷方式并调用 LockWorkStation()
在您的应用程序启动后运行,但我不会采用也不推荐这种方法,因为它存在安全问题。
关于c# - 启动后自动登录windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19975784/