获取计算机名:

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. thinkphp扩展配置

    扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样. 设置扩展配置的方式如下(多个文件用逗号分隔): // 加载扩展配置文件 'LOAD_EXT_CONFIG' => 'u ...

  2. 二分图带权匹配-Kuhn-Munkres算法模板 [二分图带权匹配]

    尴尬...理解不太好T T #include<cstdio> #include<cstring> #include<iostream> #include<al ...

  3. rancher v2.2.4创建kubernetes集群出现[etcd] Failed to bring up Etcd Plane: [etcd] Etcd Cluster is not healthy

    主机:rancher(172.16.2.17),master(172.16.2.95),node01(172.16.2.234),node02(172.16.2.67) 问题:开始是用的rancher ...

  4. JavaScript——基本语法

    单词掌握 BOM 浏览器对象模型 DOM 文档对象模型 document 文档 break 中断 continue 继续 1.js脚本位置 通常可以在三个地方编写js脚本代码,一是在网页文件的< ...

  5. AI入门---从破解AI开始

    我这里说的AI,并不是人工智能(Artificial Intelligence),只是Adobe illustrator.旁边有做设计的朋友,在他的指引下,对这个工具还颇感兴趣.就先下载个工具,闲暇时 ...

  6. Mac 解决硬盘插入不能写的问题

    软件解决 链接:https://pan.baidu.com/s/1H_zvPPpW0dp7aRUvjDnkQA  密码:8fit 有个NTFS的移动硬盘,默认Mac系统是不能写入,只能读取的,我们可以 ...

  7. 初识OpenCV-Python - 004: Trackbar as the color palette

    此次学习了如何用OpenCV建立一个色调盘.其中会用到cv2.getTrackbarPos(), cv2.createTrackbar()函数. code: import cv2import nump ...

  8. CSS三大特性之优先级顺序

    id选择器>类选择器>标签选择器>通配符>继承>浏览器默认

  9. 获取url指定参数值(js/vue)

    function getParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&am ...

  10. java_static关键字

    /** * static关键字:静态关键字 * 静态优先于非静态加载到内存中(静态优先于对进入到内存中) * 被static修饰的成员变量不能被序列化的,序列化的都是对象 * transient关键字 ...