函数原型:
DWORD WTSGetActiveConsoleSessionId (VOID)
先看一下原文介绍:

The WTSGetActiveConsoleSessionId function retrieves the Terminal
Services session currently attached to the physical console. The physical
console is the monitor, keyboard, and mouse. Note that it is not necessary that
Terminal Services be running for this function to succeed.

该函数可以用来获取当前活动的会话ID,有时候我们通过枚举explorer

的相关信息,来获取相关进程的信息,但windows是个多用户操作系统,当多个用户登录时会使通过枚举explorer而得到的用户信息不准确。所以应当先用WTSGetActiveConsoleSessionId获得当前会话ID,再通过枚举进程,通过比较sessionID进而得到的消息比较可靠。
例如:

 DWORD dwSessionId = WTSGetActiveConsoleSessionId();

	PWTS_PROCESS_INFO ppi = NULL;
DWORD dwProcessCount = 0; if (WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, 0, 1, &ppi, &dwProcessCount))
{
for (int i = 0; i <dwProcessCount; i ++)
{ //任务管理器里可能出现多个explorer
if (_wcsicmp(ppi[i].pProcessName, L"explorer.exe") == 0)
{
if (ppi[i].SessionId == dwSessionId)
{
break;
}
}
} WTSFreeMemory(ppi);
} .......... .......... ..........

最新文章

  1. [LeetCode] Longest Substring with At Least K Repeating Characters 至少有K个重复字符的最长子字符串
  2. Java中IO流,输入输出流概述与总结
  3. 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话
  4. mysql linux 备份脚本
  5. cadence16.6 中orcad导出网表时ERROR (ORCAP-5004)(win7 旗舰版32位)
  6. HDU 2502 月之数(简单递推)
  7. 1116 HTML CSS
  8. HDU 4035 Maze(树形概率DP)
  9. ip聚合(百度之星资格赛1003)
  10. Hibernate-----关系映射 重点!!!
  11. SpringCloud的Hystrix(一) 一个消费者内的两个服务监控
  12. 31 ArcGIS中后缀一览表(持续更新中……)
  13. [dev][ipsec][dpdk] strongswan/dpdk源码分析之ipsec算法配置过程
  14. DP问题
  15. 自由拖拽DIV实现
  16. Fibonacci Heaps
  17. 胜利大逃亡 HDU1429 (bfs)
  18. R基本图形示例及代码(持续收集)
  19. sun.misc.BASE64Encoder图片编码,并在页面显示
  20. opencv中的bitwise_not,bitwise_xor,bitwise_or,bitwise_and的使用方法与效果。

热门文章

  1. 初识PHP变量函数语法
  2. 页面加载时loading效果
  3. 转:动态库路径配置- /etc/ld.so.conf文件
  4. jquery 下拉框左右选择
  5. C语言——杂实例
  6. 部署多个tomcat
  7. 解决分布式事务基本思想Base和CPA理论、最终一致性|刚性事务、柔性事务
  8. 【Shell】ps -ef 和ps aux
  9. UNP学习第九章 基本名字与地址转换
  10. TP model where条件丢失