2009-11-06 91 views
1

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

+1

说明:您是否试图使服务与Windows桌面进行交互以登录到计算机,或者您是否尝试允许服务使用与特定用户相同的权限执行功能? – Jherico 2009-11-06 02:04:09

回答

0

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

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

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

0

就我所知,服务无法与用户的桌面进行交互。我回头看了一会儿,从来没有找到一个好的答案。

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

1

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

CreateProcessWithLogonW()

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