如何获得计算机所在的域

如题所述

#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void _tmain(void)
{
TCHAR buffer[256] = TEXT("");
TCHAR szDescription[8][32] = { TEXT("NetBIOS"),
TEXT("DNS hostname"),
TEXT("DNS domain"),
TEXT("DNS fully-qualified"),
TEXT("Physical NetBIOS"),
TEXT("Physical DNS hostname"),
TEXT("Physical DNS domain"),
TEXT("Physical DNS fully-qualified") };
int cnf = 0;
DWORD dwSize = sizeof(buffer);

for (cnf = 0; cnf < ComputerNameMax; cnf++)
{
if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
{
_tprintf(TEXT("GetComputerNameEx failed (%d)\n"), GetLastError());
return;
}
else
{
_tprintf(TEXT("%s: %s\n"), szDescription[cnf], buffer);

}

if ((2 == cnf) && (0 == _tcscmp(buffer, _T(""))))
{
MessageBox(NULL, _T("No Domain"), _T("MAQ_Test"), MB_OK);
}

dwSize = _countof(buffer);
ZeroMemory(buffer, dwSize);
}

while (1)
{
}
}

其中的关键是使用GetComputerNameEx这个函数进行操作,这个函数可以获取的内容比较多,计算机的名称,计算机域的名称,计算机的全名称,总之了,使用该函数去找与计算机有关的名称还是比较好的,运行后的结果如下所示:

温馨提示:答案为网友推荐,仅供参考