如何通过Windows服务login?

基本上我想要一个Windows服务,在特定的时间,login在Windows(XP / Vista / 7/2008)机? 如果这是可能的,请告诉我方式?

看看CreateProcessWithLogonW,CreateProcessAsUser,LogonUser。 如果你看看MSDN上的“manpages”,那应该让你开始。

CreateProcessWithLogonW()

诚如其他人所说,这是非常不安全的。

你为什么要这样做? 我假设你想做一个图形化的登录,而不是像没有GUI的特定用户那样运行代码。

假设你想用典型的用户凭证登录并显示Windows桌面,我想你将会运气不好。 至少在比Windows XP更新的平台上,操作系统中的服务和桌面组件是严格分离的。 Windows XP允许与桌面交互,但存在安全风险。

服务MMC管理单元中有一个用于详细说明服务用户帐户的选项。 如果以本地系统帐户运行,则可以选择允许服务与桌面进行交互 。 我相信登录桌面与用户桌面是分开的,这意味着您可能无法与服务进行交互。 例如,像CTRL-ALT-DEL序列这样的东西不能从代码执行。

据我所知,服务不能与用户的桌面交互。 我看了一会儿,从来没有找到一个好的答案。

有多种方法来配置Windows,以便重新启动时自动以特定用户身份登录 – 不知道这是否会进一步导致您的原因。