请教高手:如何获取系统所有用户的信息,比如名称、是否停用、是否设密码等

解决方案 »

  1.   

    http://www.programbbs.com/doc/1651.htm
    可以去看看
    应该会有所帮助
      

  2.   

    找到了如下代码,可是不知道怎么获得用户是否被禁用和是否已设密码。请教
        DWORD er,tr,resume;
        DWORD dwLevel,dwFilter;
        DWORD lerror;    PUSER_INFO_2 pBuf,pBuffer;
        NET_API_STATUS nStatus;
        AnsiString strDescrption;
        er = 0;
        tr = 0;
        resume = 1;
        dwLevel = 2;
        dwFilter = 0;    int strLen = 0;
        char strClientName[256] = {0};    listUser->Items->Clear();
        do
        {
            nStatus = NetUserEnum(NULL,dwLevel,dwFilter,(PBYTE *)&pBuf,0xFFFFFFFF,&er,&tr,&resume);
            if((nStatus==ERROR_SUCCESS)   ||   (nStatus==ERROR_MORE_DATA))
            {
                pBuffer = pBuf;
                for(DWORD i=0; i<er; i++)
                {
                    TListItem *list = listUser->Items->Add () ;
                    // 用户名
                    strLen = WideCharToMultiByte(CP_ACP, 0, pBuffer->usri2_name, -1,
                                                NULL,   0,   NULL,   NULL);
                    if(strLen > 0)
                    {
                        memset(strClientName,0,256);
                        WideCharToMultiByte(CP_ACP,   0,   pBuffer->usri2_name,   -1,
                                            strClientName,   strLen,   NULL,   NULL);
                        list->Caption = AnsiString(strClientName);                }                // 全名
                    strLen = WideCharToMultiByte(CP_ACP, 0, pBuffer->usri2_full_name, -1,
                                                NULL,   0,   NULL,   NULL);
                    if(strLen > 0)
                    {
                        memset(strClientName,0,256);
                        WideCharToMultiByte(CP_ACP,   0,   pBuffer->usri2_full_name,   -1,
                                            strClientName,   strLen,   NULL,   NULL);
                        list->SubItems->Add(AnsiString(strClientName));
                    }                // 共享描述
                    strLen = WideCharToMultiByte(CP_ACP, 0, pBuffer->usri2_comment, -1,
                                                NULL,   0,   NULL,   NULL);
                    if(strLen > 0)
                    {
                        memset(strClientName,0,256);
                        WideCharToMultiByte(CP_ACP,   0,   pBuffer->usri2_comment,   -1,
                                            strClientName,   strLen,   NULL,   NULL);
                        list->SubItems->Add(AnsiString(strClientName));
                    }                pBuffer ++;            }
            }
            if(pBuf != NULL)
            {
                NetApiBufferFree(pBuf);
            }
        }
        while(nStatus==ERROR_MORE_DATA);