有时候,总想验证一些奇怪的想法,干脆就写下来,以备后查。
想法:获取本机用户列表
// 获取本地账号列表
BOOL GetLocalUserList(CAtlArray<CString> &users)
{
users.RemoveAll();
BOOL bOk = FALSE;
LPUSER_INFO_0 pBuf = NULL;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
do
{
nStatus = NetUserEnum(NULL, 0, FILTER_NORMAL_ACCOUNT, (LPBYTE*)&pBuf, MAX_PREFERRED_LENGTH,
&dwEntriesRead, &dwTotalEntries, &dwResumeHandle);
if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
{
LPUSER_INFO_0 pTmpBuf = pBuf;
if (pTmpBuf != NULL)
{
for (DWORD i = 0; i < dwEntriesRead; i++)
{
if (NULL == pTmpBuf)
{
break;
}
users.Add(pTmpBuf->usri0_name);
pTmpBuf++;
}
}
bOk = TRUE;
}
if (pBuf != NULL)
{
NetApiBu