如何使用c#通过API查询给定会话ID的用户名?

时间:2013-07-10 15:28:18

标签: c# username sessionid

我在会话0中的“LocalSystemLevel”上运行了一项服务来跟踪用户会话事件,例如打开,关闭,锁定,解锁等.... 当服务捕获SessionChange事件时,返回的SessionChangeDescription结构为我提供了触发事件的会话的Id,但我无法找到如何检索相应的用户名。有人可以帮忙吗? 谢谢 - JL

1 个答案:

答案 0 :(得分:0)

您可以轻松解析qwinsta.exe

的输出
var proc = new Process
            {
                StartInfo = new ProcessStartInfo
                {
                    FileName = "qwinsta.exe",
                    Arguments = null,
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    CreateNoWindow = true
                }
            };

            proc.Start();
            while (!proc.StandardOutput.EndOfStream)
            {
                string line = proc.StandardOutput.ReadLine();
                Console.WriteLine(line);
            }
        }