以SYSTEM身份运行并注销用户“USER”Pin

时间:2010-08-10 15:14:16

标签: c# logoff

我有一个作为计划任务运行的程序。该程序在XP上作为SYSTEM运行。 这个想法是程序将在后台运行,而USER是活动的。

我需要程序在特定条件发生时注销USER。

我尝试使用:

[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);

但似乎没有关闭USER。

我想也许它正在关闭日志系统,因为它以SYSTEM身份运行。

我如何使用logogg USER?

谢谢, SummerBulb。

2 个答案:

答案 0 :(得分:0)

如果您显示ExitWindowsEx的标志会有所帮助,但您可能需要冒充用户,但我认为这不太可能。如果我记得注销当前用户就足够了,但你可能不得不强制注销,否则,如果用户没有保存一些更改,则可以取消注销。

但要冒充用户,您可以查看以下内容: http://www.codeproject.com/KB/system/UserImpersonation.aspx

我将从这里开始,并包括注销和forceifhung值: http://msdn.microsoft.com/en-us/library/aa376868(VS.85).aspx

它与EWX_FORCEIFHUNG | EWX_LOGOFF类似,作为参数。

<强>更新

我希望迈克是正确的,冒充在这里无济于事。

答案 1 :(得分:0)

我认为您需要以该用户身份运行一些代码。创建一个在用户登录时运行然后监视事件的应用程序。让您的服务设置事件,然后代码将调用ExitWindowsEx方法。你仍然需要像詹姆斯提到的那样使用forceifhung和注销参数。