当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
VC获取Windows所有用户的用户名
发布时间:2010/8/24 10:35:28 来源:城市学习网 编辑:ziteng
  #include <LMACCESS.H>
  #include <LMERR.H>
  #include <LMAPIBUF.H>
  #include <iostream>
  #include <vector>
  using namespace std;
  vector<CString> 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 );
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved