如何注销所有用户?

时间:2014-03-02 13:06:23

标签: c#

我是c#的新手,我想做一个能够注销所有登录到PC的用户的代码。 我试着这样做:

System.Diagnostics.Process("shutdown", "/l");

但是这并没有注销所有用户,只注销了我从中运行的用户。 那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:0)

使用WTSDisconnectSession()Windows API。请参阅此处的文章。

using System;
using System.Runtime.InteropServices;
using System.ComponentModel;

class Program
{
  [DllImport("wtsapi32.dll", SetLastError = true)]
  static extern bool WTSDisconnectSession(IntPtr hServer, int sessionId, bool bWait);

  const int WTS_CURRENT_SESSION = -1;
  static readonly IntPtr WTS_CURRENT_SERVER_HANDLE = IntPtr.Zero;

  static void Main(string[] args)
  {
    if (!WTSDisconnectSession(WTS_CURRENT_SERVER_HANDLE,
         WTS_CURRENT_SESSION, false))
      throw new Win32Exception();
  }
}