c# - 启动后自动登录windows

标签 c# windows credentials taskmanager winlogon

我的一个客户使用任务管理器来触发(启动)一个进程来做某事。此进程包含一个 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(需要),我无法切换到“无论用户是否登录都运行”。 什么是最佳实践:

  1. 以需要运行应用程序的用户身份再次登录
  2. 确保启动的应用程序在用户登录时实际上是可见的? (解锁电脑)

我知道如何在 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/

相关文章:

c# - 获取所有标有 [JsonIgnore] 属性的属性

c# - Azure Cosmos 数据库集合未获取分区键

windows - 如何在批处理文件中使用嵌套的 FOR 循环

windows - Perl - 无法在 Windows 上安装 Net::SSH2

c - 如何从任务管理器中的 "Applications"选项卡隐藏窗口?

mysql - 如何使用 powershell 保护 mysql 连接

Git不要求凭据

node.js - 管理 Node.JS 的 Web 服务凭据的最佳实践?

c# - C# 会内联这些函数吗?

c# - 如何从数据 View 中删除/删除行/行(不使用数据 View 。删除)