首页 > Windows开发 > 详细

WindowsAPI使用详解——GetComputerName|GetUserName 获取电脑名称和当前用户名

时间:2015-03-23 15:01:41      阅读:286      评论:0      收藏:0      [点我收藏+]
获取电脑的名称,下面是函数的原:
   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;
}

 

WindowsAPI使用详解——GetComputerName|GetUserName 获取电脑名称和当前用户名

原文:http://www.cnblogs.com/callback/p/4248039.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!