【问题标题】:How to find user name from the session ID?如何从会话 ID 中查找用户名?
【发布时间】:2017-01-13 06:29:47
【问题描述】:

我有一个用户 win32 应用程序。这将枚举所有流程详细信息以及 ProcessId。我需要打印用户名和会话 ID。 SessionID 使用 ProcessIdToSessionId() 方法枚举。我想打印相应 SessionID 的用户名。这个应用程序是专门为 WindowsXP 设计的,所以 API 应该支持 WindowsXP。如果有人知道解决方案,请分享。

DWORD dwSessionId,dwPid,dwErr;
char* Uname;
ProcessIdToSessionId(dwPid,&dwSessionId);

【问题讨论】:

  • 我已尝试使用该代码,但在 Windows XP 中失败。还有其他方法可以找到吗?
  • @MarshalSebastian 到底是怎么失败的?请更具体。
  • @Ari0nhh:不是重复的。运行进程的用户不一定与登录到正在运行进程的会话的用户相同。(在简单的情况下它们会相同,但并非总是如此。)
  • @RemyLebeau 因为这个应用程序是专门为 windows xp 设计的。我们的某些 xp 32 位笔记本电脑无法执行上述功能。我不知道为什么会这样。

标签: c++ session visual-c++ process windows-xp


【解决方案1】:

WTSQuerySessionInformation()WTSInfoClass 参数设置为WTSUserName

一个以 null 结尾的字符串,其中包含与会话关联的用户的名称。

【讨论】:

  • WTSQuerySessionInformation 也使用此方法在我们的某些 windows xp 32 位笔记本电脑中不支持。这就是我询问替代解决方案的原因。
  • @MarshalSebastian 那么你应该事先说明这一点,并解释它如何不适合你。
猜你喜欢
  • 1970-01-01
  • 2020-07-31
  • 2021-10-18
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
相关资源
最近更新 更多