如何得到本机登陆的用户名还有域登陆的域名

解决方案 »

  1.   

    #include <activeds.h>
    #include <stdio.h>
     
    int main()
    {
       HRESULT hr;
     
       hr = CoInitialize(NULL);
     
        IADsADSystemInfo *pSys;
        hr = CoCreateInstance(CLSID_ADSystemInfo,
                              NULL,
                              CLSCTX_INPROC_SERVER,
                              IID_IADsADSystemInfo,
                              (void**)&pSys);
     
       BSTR bstr;
       hr = pSys->get_UserName(&bstr);
       if (SUCCEEDED(hr)) {
          printf("User: %S\n", bstr);
          SysFreeString(bstr);
       }
     
       hr = pSys->get_ComputerName(&bstr);
       if (SUCCEEDED(hr)) {
          printf("Computer: %S\n", bstr);
          SysFreeString(bstr);
       }
     
       hr = pSys->get_DomainDNSName(&bstr);
       if (SUCCEEDED(hr)) {
          printf("Domain: %S\n", bstr);
          SysFreeString(bstr);
       }
     
       hr = pSys->get_PDCRoleOwner(&bstr);
       if (SUCCEEDED(hr)) {
          printf("PDC Role owner: %S\n", bstr);
          SysFreeString(bstr);
       }
     
       if(pSys) {
          pSys->Release();
       }
     
       CoUninitialize();
       return 0;
    }