我有一个作为计划任务运行的程序。该程序在XP上作为SYSTEM运行。 这个想法是程序将在后台运行,而USER是活动的。
我需要程序在特定条件发生时注销USER。
我尝试使用:
[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);
但似乎没有关闭USER。
我想也许它正在关闭日志系统,因为它以SYSTEM身份运行。
我如何使用logogg USER?
谢谢, SummerBulb。
答案 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和注销参数。