您的位置:首页 > 编程语言 > C语言/C++

C++ 获得系统的所有用户

2015-11-27 14:55 351 查看
void GetOSUserName(CStringArray &userarray)

{

 LPUSER_INFO_1 pBuf = NULL;

 LPUSER_INFO_1 pTmpBuf ;

 DWORD dwLevel = 1;

 DWORD dwPrefMaxLen = -1;

 DWORD dwEntriesRead = 0;

 DWORD dwTotalEntries = 0;

 DWORD dwResumeHandle = 0;

 NET_API_STATUS nStatus;

 LPTSTR pszServerName = NULL;

 //CStringArray userarray;

 nStatus = NetUserEnum( (LPCWSTR) pszServerName , dwLevel , FILTER_NORMAL_ACCOUNT ,(LPBYTE*)&pBuf, dwPrefMaxLen , &dwEntriesRead , &dwTotalEntries , &dwResumeHandle );

 if( ( nStatus == NERR_Success ) || ( nStatus == ERROR_MORE_DATA ) )

 {

  if( ( pTmpBuf=pBuf )!=NULL )

  {

   for( DWORD i = 0; i < dwEntriesRead ; ++i )

   {

    CString csFlag;

    csFlag.Format( _T( "%s,%ld" ) , pTmpBuf->usri1_name , pBuf->usri1_priv );

    if( pTmpBuf->usri1_priv == USER_PRIV_ADMIN || pTmpBuf->usri1_priv == USER_PRIV_USER &&( CString ( pTmpBuf->usri1_name ) != "ASPNET" ) )

    {

     userarray.Add( (CString) pTmpBuf->usri1_name );

    }

    pTmpBuf++;

   }

  }

 }

 else

 {

  MessageBox( NULL , _T("A system error has occurred") , _T("ERROR") , MB_OK );

 }

 if( pBuf != NULL )

 {

  NetApiBufferFree( pBuf );

  pBuf = NULL;

 }

 while ( nStatus == ERROR_MORE_DATA );

 if (pBuf != NULL)

  NetApiBufferFree( pBuf );

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ mfc