如何准确获取当前登录的用户名??

hzy694358 2013-09-09 03:43:20
1
如何准确获取当前登录的用户名??
不要用获取explore.exe进程来得到,因为可能有多个账户登录
就会有多个不同用户的explore.exe

2
如何枚举当前登录用户的进程?
CreateToolhelp32Snapshot
Process32First
枚举进程,但是枚举的是所有的进程
如果我有多个用户登录,其他用户的进程也都会枚举出来
我想枚举当前登录用户的进程,怎么处理?
...全文
745 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-05-16
  • 打赏
  • 举报
回复
引用 7 楼 hzy694358 的回复:
无满意答案 无满意答案
试试这个:

#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);
}
hzy694358 2014-05-13
  • 打赏
  • 举报
回复
无满意答案 无满意答案
「已注销」 2014-02-21
  • 打赏
  • 举报
回复
引用 4 楼 wtx_sonery 的回复:
好像有个GetUserName函数。。。
如果这么简单就能解决人家不会来这问的
hzy694358 2013-12-23
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
远程会被影响到.
那这样同一个账户 远程登录和本地登录 sessionid 就不一致了 但是我想远程登录和本地登录都能同时处理 这个要怎么判断呢? 仅仅根据sessionid就不行了吧
  • 打赏
  • 举报
回复
好像有个GetUserName函数。。。
oyljerry 2013-09-15
  • 打赏
  • 举报
回复
远程会被影响到.
hzy694358 2013-09-15
  • 打赏
  • 举报
回复
远程登陆 出现的问题: 为何 我用WTSGetActiveConsoleSessionId 获取到的sessionid 和 当前运行的进程不一样的 (当前进程显示的用户名和我登陆的账户用户名是一致的) 难道WTSGetActiveConsoleSessionId 得到的sessionid 和当前登陆的账户的sessionid 还不是同一个?? 非远程的话 登陆获取的sessionid 正常
hzy694358 2013-09-10
  • 打赏
  • 举报
回复

DWORD dwSessionId = WTSGetActiveConsoleSessionId(); //得到当前用户的会话ID 

DWORD dwExSessionId = -1;
if (ProcessIdToSessionId(pe32.th32ProcessID,&dwExSessionId))
{
	if (dwExSessionId == dwSessionId)
	{
           ……
        }
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧