#include <WtsApi32.h>
#pragma comment(lib,"WtsApi32.lib")


		SID_NAME_USE sUse;
		WTS_PROCESS_INFO *pProInfo,*pTemp;
		DWORD dwRes;
		DWORD dwSize = MAX_PATH;
		WCHAR wzUserName[MAX_PATH];
		WCHAR wzDomainName[MAX_PATH];
		

		if(WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE,0,1,&pProInfo,&dwRes))
		{
			pTemp = pProInfo;
			for (DWORD i = 0; i < dwRes;i ++)
			{
				//if (pTemp->ProcessId == dwProcess)  //可以获取特定进程
				{
					if(LookupAccountSid(NULL,pTemp->pUserSid,wzUserName,&dwSize,wzDomainName,&dwSize,&sUse))
					{
						wprintf(_T("%d %d %s %s %s\r\n"),i,pTemp->ProcessId,pTemp->pProcessName,wzUserName,wzDomainName);
					}
				}
				pTemp ++;
			}
			WTSFreeMemory(pProInfo);
		}