当前位置:首页 > 操作系统 > Windows

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

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

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

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


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

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

 

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


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐