以SYSTEM权限运行的进程获取登录用户名的方法

参考原文:如何获取Windows系统登陆用户名 http://www.vckbase.com/document/viewdoc/?id=1241

以SYSTEM权限运行的进程,若用GetUserName()方法获取到的用户名则为SYSTEM,若想获取当前登录系统的用户名,可用以下代码(支持XP及以上):

BOOL CSecurityTool::GetLogUserXP(CString& strName)
{
    BOOL bRet = FALSE;
    strName = _T("");

    //for xp or above
    TCHAR *szLogName = NULL;
    DWORD dwSize = 0;
    if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,
                                   WTS_CURRENT_SESSION,
                                   WTSUserName,
                                   &szLogName,
                                   &dwSize))
    {           
        strName = szLogName;
        WTSFreeMemory(szLogName);
        bRet = TRUE;
    }

    return bRet;
}

posted @ 2010-03-07 11:31  cxun  阅读(1228)  评论(0编辑  收藏  举报