Windowns API 第24篇 WTSEnumerateSessions 枚举session信息

Posted prairieNew

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windowns API 第24篇 WTSEnumerateSessions 枚举session信息相关的知识,希望对你有一定的参考价值。

函数原型:
BOOL WTSEnumerateSessions(  HANDLE hServer,
                                                      DWORD Reserved, 
                                                      DWORD Version,
                                                      PWTS_SESSION_INFO* ppSessionInfo, 
                                                      DWORD* pCount
                                                    );
作用:对当前系统的session信息进行枚举。
参数说明:
hServer:指定要对终端断服务枚举的句柄,本机可以的话可以为WTS_CURRENT_SERVER_HANDLE, 或者NULL
Reserved:系统保留位,必须为0
Version:指定枚举请求的版本,必须为1
ppSessionInfo:一个WTS_SESSION_INFO结构
可以看一下该结构的定义:
typedef struct _WTS_SESSION_INFO
{   
     DWORD SessionId;  
     LPTSTR pWinStationName;
     WTS_CONNECTSTATE_CLASS State;
 } WTS_SESSION_INFO, * PWTS_SESSION_INFO;

该结构中包含绘画ID, Windows空间站名,session的状态,此状态为枚举值。再次看下一结构
typedef enum _WTS_CONNECTSTATE_CLASS
{
    WTSActive,              // User logged on to WinStation
    WTSConnected,           // WinStation connected to client
    WTSConnectQuery,        // In the process of connecting to client
    WTSShadow,              // Shadowing another WinStation
    WTSDisconnected,        // WinStation logged on without client
    WTSIdle,                // Waiting for client to connect
    WTSListen,              // WinStation is listening for connection
    WTSReset,               // WinStation is being reset
    WTSDown,                // WinStation is down due to error
    WTSInit,                // WinStation in initialization
} WTS_CONNECTSTATE_CLASS;


pCount:返回Session的数量,为输出参数

举例说明:

 

   void main()

   {

        PWTS_SESSION_INFO psi;
	DWORD dwCount;

	BOOL bRet = WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, &psi, &dwCount);

	if (!bRet)
		return 0;
	wstring strName;
	for (unsigned int i = 0; i < dwCount; i ++)
	{
		printf("%s 	", psi[i].pWinStationName);
		printf("%d 	", psi[i].SessionId);
		printf("%d 
", psi[i].State);
	}
	WTSFreeMemory(psi);

    }

 

以上是关于Windowns API 第24篇 WTSEnumerateSessions 枚举session信息的主要内容,如果未能解决你的问题,请参考以下文章

高焕堂:Android的API设计(应用篇)_创建App的对象

Python用WMI模块获取windowns系统信息

Windowns系统下搭建python环境

从苏宁电器到卡巴斯基(第二部)第24篇:半年的职场空窗期 VIII

从苏宁电器到卡巴斯基(第二部)第24篇:半年的职场空窗期 VIII

windowns环境下mysql 安装教程