16,472
社区成员
发帖
与我相关
我的任务
分享
#include <windows.h>
#include <shlwapi.h>
bool GetCurrentProcessUserName(LPTSTR pszUserName, DWORD dwSize)
{
bool fRet = false;
HANDLE hToken = NULL;
if (OpenProcessToken(GetCurrentProcess(), TOKEN_READ, &hToken)) {
TCHAR szProfile[MAX_PATH] = { 0 };
if (ExpandEnvironmentStringsForUser(hToken, TEXT("%UserProfile%"), szProfile, MAX_PATH)) {
fRet = (bool)(INT_PTR)lstrcpyn(pszUserName, PathFindFileName(szProfile), dwSize);
}
CloseHandle(hToken);
}
return fRet;
}
办法是比较笨,但按理说应该是可以获取到。TCHAR szUserName[256] = { 0 };
if (GetCurrentProcessUserName(szUserName, 256)) {
Message(NULL, szUser, TEXT("tip"), MB_OK);
}
DWORD dwSessionId = WTSGetActiveConsoleSessionId(); //得到当前用户的会话ID
DWORD dwExSessionId = -1;
if (ProcessIdToSessionId(pe32.th32ProcessID,&dwExSessionId))
{
if (dwExSessionId == dwSessionId)
{
……
}
}