Windows API一日一练(71)GetComputerName函数

Post date: 2012/3/27 上午 07:43:30

分类: Direct3D2007-11-12 21:32 2897人阅读 评论(0) 收藏 举报

当你在一个大公司里面,当一个网络管理员时,发现成千上万个电脑需要你去管理时,怎么去区分这些电脑呢?那肯定是通过计算机的名称。而这个网络管理员又需要你开发一套软件,它可以把所有电脑的名称自动地上报给他。面对这样的需求,就可以使用下面的函数GetComputerName来获取计算机的名称,并通过网络传送给管理员。

函数GetComputerName声明如下:

WINBASEAPI

BOOL

WINAPI

GetComputerNameA (

__out_ecount_part(*nSize, *nSize + 1) LPSTR lpBuffer,

__inout LPDWORD nSize

);

WINBASEAPI

BOOL

WINAPI

GetComputerNameW (

__out_ecount_part(*nSize, *nSize + 1) LPWSTR lpBuffer,

__inout LPDWORD nSize

);

#ifdef UNICODE

#define GetComputerName GetComputerNameW

#else

#define GetComputerName GetComputerNameA

#endif // !UNICODE

lpBuffer是获取电脑名称的缓冲区。

nSize是输入缓冲区的大小和输出电脑名称的大小。

调用函数的例子如下:

#001 //

#002 //获取当前计算机的名称。

#003 //蔡军生 2007/11/12 QQ:9073204 深圳

#004 void GetPCName(void)

#005 {

#006 //

#007 const int nBufSize = MAX_COMPUTERNAME_LENGTH + 1;

#008 TCHAR chBuf[nBufSize];

#009 ZeroMemory(chBuf,nBufSize);

#010

#011 //获取当前计算机的名称

#012 DWORD dwRet = nBufSize;

#013 if (GetComputerName(chBuf,&dwRet))

#014 {

#015 //

#016 OutputDebugString(chBuf);

#017 }

#018 else

#019 {

#020 OutputDebugString(_T("获取计算名称出错!"));

#021 }

#022

#023 OutputDebugString(_T("/r/n"));

#024

#025 }

#026

#027