获取计算机名:

BOOL GetComputerName(
LPTSTR
lpBuffer, // computer name
LPDWORD lpnSize // size of name buffer
);
lpBuffer:缓冲区
lpnSize:缓冲区大小输入,输出参数
说明Windows系统规定计算机名称最多15个字节,应此buffer长度可以为MAX_COMPUTERNAME_LENGTH + 1,这是一个宏
#define MAX_COMPUTERNAME_LENGTH 15。GetLastError()可获取失败原因,
调用失败返回0,成功返回非零。可以通过查看lpnSize的大小知道计算机名称长度。还有一种调用方法是传入lpBuffer为
NULL,则返回实际size,size已经包括'\0'.最后在重新分配空间,调用此函数。 在GetComputerName中尽力支持可选的计算机名称的更改已添加到gethostname。GetComputerName检查环境变量。如果存
在该变量,则GetComputerName返回其值而不是真实的计算机名称。进行更改以保持断开群集中的应用程序。
The change that was made in GetComputerName to support alternate computer names has been added to gethostname.
举例:
1:
WCHAR szComputerName[MAX_COMPUTERNAME_LENGTH + 1] = {0};
DWORD dwNameSize = MAX_COMPUTERNAME_LENGTH + 1;
GetComputerName(szComputerName, &dwNameSize);
2:
wstring getCompputerName()
{
DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1;
if (!GetComputerName(NULL, &dwSize))
{
PWCHAR pName = new WCHAR[dwSize];
BOOL bRet = GetComputerName(pName, dwSize);
if (!bRet)
{
delete []pName;
return L"";
}
wstring strTempW = pName;
delete []pName;
return strTempW;
}
} 获取当前用户名:
BOOL GetUserName(
LPTSTR
lpBuffer, // name buffer
LPDWORD nSize // size of name buffer
);
参数说明:
lpBuffer:缓冲区
nSize:输入输出参数,
nSize应该足够大,不然会返回失败,调用GetLastError(),可查看错误原因为:“传递给系统调用的数据区域太小。”
成功时nSize返回写入缓冲区的字节大小,包括'\0'。失败时nSize返回需要的缓冲区大小。
调用方法同上,可举一例:
WCHAR szUserName[MAX_PATH] = { 0 };
DWORD dwSize = MAX_PATH;
GetUserName(szUserName, &dwSize);
更准确的获取当前用户名可以枚举exporer进程,再进一步获取当前用户名。 获取主机名称:
int gethostname(
char FAR
*name,
int namelen
);Gethostname函数返回在网络名称资源而不是群集名称的节点名称。
The gethostname function returns the node name instead of the cluster name in the network name resource
说明:如果直接调用会返回失败,查看GetLastError()代码0x276d,发现错误信息为“应用程序没有调用 WSAStartup,
或者 WSAStartup 失败。”。所以应当先调用WSAStartup()函数,要调用此函数,必须#include <WinSock2.h>,自然也就
的引入 #pragma comment (lib, "ws2_32.lib"),这样在进一步调用gethostname就不会出错了。最后调用完成后别忘了释放资源:WSACleanup()
例如:
WSADATA wsaData;
int nErr = WSAStartup(MAKEWORD(2,2), &wsaData);//调用成功返回0,失败返回非0
if(nErr)
{
nErr = GetLastError();
return ;
}
char szhostName[MAX_PATH] = { 0 };
int nRet = gethostname(szhostName, MAX_PATH);
//int nErr = GetLastError();

获取计算机以及本机信息API的更多相关文章

  1. AD命令获取计算机、用户相关信息

    1. 获取AD用户相关信息(用户名.创建日期.最后修改密码日期.最后登录日期) Get AD users, Name/Created Date/Last change passwd Date/Last ...

  2. JAVA获取计算机的IP、名称、操作系统等信息

    [java] view plaincopyprint? import java.io.BufferedReader; import java.io.InputStream; import java.i ...

  3. JAVA获取计算机CPU、硬盘、主板、网络等信息

    通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1.下载sigar.jar sigar官方主页 sigar-1.6.4.zip 2.按照主页上的说明解压包后将相应的文件copy到j ...

  4. html5获取地理位置信息API

    html5获取地理位置信息API 在HTML5中,可以看下如何使用Geolocation API来获得用户的地理位置信息,如果该浏览器支持的话,且设备具有定位功能,就能够直接使用这组API来获取当前位 ...

  5. 利用KEGG的API获取基因对应的pathway 信息

    KEGG 官网提供了API, 可以方便的访问KEGG 数据库中的内容,链接如下: http://www.kegg.jp/kegg/rest/keggapi.html 利用API可以得到某一个基因参与的 ...

  6. C#获取AD域中计算机和用户的信息

    如果你的计算机加入了某个AD域,则可以获取该域中所有的计算机和用户的信息. 所用程序集,需要.Net Framework 4. 添加程序集引用 System.DirectoryServices.Acc ...

  7. C# 获取计算机cpu,硬盘,内存相关的信息

    using System;using System.Management; namespace MmPS.Common.Helper{ /// <summary> /// 获取计算机相关的 ...

  8. C# 获取计算机的硬件信息

    /// <summary> /// 获得CPU编号 /// </summary> /// <returns></returns> public stri ...

  9. 微信小程序把玩(三十八)获取设备信息 API

    原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx. ...

随机推荐

  1. Android开发 navigation入门详解

    前言 Google 在2018年推出了 Android Jetpack,在Jetpack里有一种管理fragment的新架构模式,那就是navigation. 字面意思是导航,但是除了做APP引导页面 ...

  2. Android 开发 框架系列 OkHttp拦截器

    前言 此篇博客只讲解okhttp的拦截器功能的详细使用,如果你还不太了解okhttp可以参考我另外一篇博客 Android 开发 框架系列 OkHttp使用详解 添加Interceptor的简单例子 ...

  3. H5 小代码(实时更新)

    :before { content: ''; display: inline-block; vertical-align: middle; height: %; } ↑  自适应垂直居中 .clear ...

  4. jquery学习笔记(四):动画

    内容来自[汇智网]jquery学习课程 4.1 显示和隐藏 在jQuery中使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: hide()的语法形式:$(selector).h ...

  5. (转)Android中RelativeLayout各个属性的含义

    转:http://blog.csdn.net/softkexin/article/details/5933589 android:layout_above="@id/xxx"  - ...

  6. Sublime Text 3,有了Anaconda就会如虎添翼

    作为Python开发环境的Sublime Text 3,有了Anaconda就会如虎添翼.Anaconda是目前最流行也是最有威力的Python代码提示插件. 操作步骤 1.打开package con ...

  7. 第三方模块requests下载

    requests下载 英文网站 http://docs.python-requests.org/en/master/ 中文网站 http://docs.python-requests.org/zh_C ...

  8. 求教各路大神,Fillder的证书一直无法在手机上打开,请教怎么解决

    我跟足大神们的设置,软件是Fiddler4,手机是ios12.3.1. FD上该打勾的打勾了,该装证书的也装了,有帖子说重装证书和软件我也都试过,电脑也下了NET Framework 4.7_4.7. ...

  9. 2018-11-19-WPF-在image控件用鼠标拖拽出矩形

    title author date CreateTime categories WPF 在image控件用鼠标拖拽出矩形 lindexi 2018-11-19 15:35:13 +0800 2018- ...

  10. PCA降维2

    前言 本文为模式识别系列第一篇,主要介绍主成分分析算法(Principal Component Analysis,PCA)的理论,并附上相关代码.全文主要分六个部分展开: 1)简单示例.通过简单的例子 ...