设为首页 加入收藏

TOP

VC获取Windows所有用户的用户名
2014-10-27 21:30:08 来源: 作者: 【 】 浏览:64
Tags:获取 Windows 所有 用户 户名

  #include


  #include


  #include


  #include


  #include


  using namespace std;


  vector m_account;


  GetOSUserName()


  {


  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;


  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" ) )


  {


  m_account.push_back( (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++之this指针与另一种“多态” 下一篇2013年计算机二级C++语言概述考点..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: