Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “作为系统运行并注销用户”;“用户”;大头针_C#_Logoff - Fatal编程技术网

C# “作为系统运行并注销用户”;“用户”;大头针

C# “作为系统运行并注销用户”;“用户”;大头针,c#,logoff,C#,Logoff,我有一个作为计划任务运行的程序。该程序在XP as系统上运行。 其思想是,当用户处于活动状态时,程序将在后台运行 我需要的程序注销用户时,具体情况发生 我尝试使用: [DllImport("user32.dll")] public static extern int ExitWindowsEx(int uFlags, int dwReason); 但这似乎并没有让用户注销 我想它可能正在注销系统,因为它正在作为系统运行 如何登录用户 谢谢, Summerbull.如果您显示了ExitWindo

我有一个作为计划任务运行的程序。该程序在XP as系统上运行。 其思想是,当用户处于活动状态时,程序将在后台运行

我需要的程序注销用户时,具体情况发生

我尝试使用:

[DllImport("user32.dll")]
public static extern int ExitWindowsEx(int uFlags, int dwReason);
但这似乎并没有让用户注销

我想它可能正在注销系统,因为它正在作为系统运行

如何登录用户

谢谢,
Summerbull.

如果您显示了ExitWindowsEx的标志,这会有所帮助,但是您可能需要模拟用户,尽管我认为这不太可能。如果我记得注销当前用户已经足够了,但是您可能必须强制注销,因为如果用户没有保存某些更改,则可能会取消注销

但要模拟用户,您可以查看以下内容:

我将从这里开始,包括注销和强制挂起值:

参数类似于
EWX_FORCEIFHUNG | EWX_注销

更新:


我认为Mike是正确的,模拟在这里没有帮助。

我认为您需要作为该用户运行一些代码。创建一个在用户登录时运行的应用程序,然后监视事件。让您的服务设置事件,然后代码将调用ExitWindowsEx方法。您仍然需要使用James提到的forceifhung和logoff参数。

我认为模拟无法做到这一点,因为您将获得另一个用户窗口站/桌面/会话的实例。我编写了一个屏幕保护程序,将由窗口服务启动,因为系统会注销用户,但这类问题非常严重,很难调试。