获取电脑的名称,下面是函数的原:
   BOOL GetComputerName(LPWSTR lpBuffer,LPDWORD nSize)
   lpBuffer是传入的缓冲区指针
   nSize标识传入的缓冲区宽度

需要说明的是有两种方法来确认缓冲区的长度:
1、在WinBase.h中定义了一个电脑名称最大长度的常数MAX_COMPUTERNAME_LENGTH(值为15),使用这个变量来创建缓冲区是安全的,因为电脑名称不会超过这个长度;
2、另一种方法是调用GetComputerName给lpBuffer传入NULL,nSize传入DWORD变量的地址。函数将把电脑实际名称的缓冲区大小返回给nSize。

下面是第二种方法的示例:
wstring getComputerName()
{
    DWORD size=0;
    wstring wstr;
    GetComputerName(NULL,&size);  //得到电脑名称长度
    wchar_t *name=new wchar_t[size];
    if(GetComputerName(name,&size))
    {
        wstr=name;
    }
    delete [] name;
    return wstr;
}


获取当前用户名:
   BOOL GetUserName(LPWSTR lpBuffer,LPDWORD pcbBuffer)
   lpBuffer是传入的缓冲区指针
   pcbBuffer标识传入的缓冲区宽度

函数的使用方法和上面几乎相同:
wstring getUserName()
{
    DWORD size=0;
    wstring wstr;
    GetUserName(NULL,&size);
    wchar_t *name=new wchar_t[size];
    if(GetUserName(name,&size))
    {
        wstr=name;
    }
    delete [] name;
    return wstr;
}

 

posted on 2015-03-23 13:56  了无尘  阅读(1782)  评论(0编辑  收藏  举报