获取计算机名:

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. Erlang学习记录:相关工具和文档

    在线工具和文档 网址 说明 OTP Reference Page Index 内置模块查询 Erlang/OTP Applications N Kernel Reference Manual 入门官方 ...

  2. JavaScript - DOM相关

    DOM节点分类 ( node ) : 元素节点 ( element node ) 属性节点 ( attribute node ) 文本节点 ( text node) DOM的相关操作 : 1. 查询元 ...

  3. Docker保存日志到本地

    其实很简单 docker logs +你需要添加的额外参数 + 容器id >文件名称 然后查看这个文件就可以了,也可以通过ftp协议下载到本地

  4. 「题解」:$d$

    问题 A: $d$ 时间限制: 1 Sec  内存限制: 512 MB 题面 题面谢绝公开. 题解 赛时切掉了然而过程十分曲折. 贪心思路很好想.然而一开始错误以为是单峰.其实几个峰都有可能. 开场写 ...

  5. C#字符串、字节数组和内存流间的相互转换 - IT浪潮之巅

    定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串=>比特数组 (1)byte[] bt=System.Text.Encoding.Default.GetBytes(&q ...

  6. [VS2008] Debug版本程序发布后 由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题

    转自VC错误:http://www.vcerror.com/?p=59 问题描述: [VS2008] 版本程序发布后,运行程序弹出错误框: 由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序 ...

  7. QString组合、拆分。

    1.组合字符常用arg()函数 QString test=QString("_haha_%1_hehe%2") .arg("ee").arg("aa& ...

  8. 总结windows cmd 查看进程,端口,硬盘信息

    1.查看window所有进程 tasklist 2.查看windows所占用的进程号 tasklist|findstr 1916 3.杀死进程,进程pid taskkill /f /pid 10156 ...

  9. TKmybatis的框架介绍和原理分析及Mybatis新特性演示

    tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效,下面来看看这个框架的基本使用,后面会对相关源码进行分析,感兴趣的同学可以看一下,挺不错的一个工具 实现对员工表的增删改查 ...

  10. spark2.0在IDE运行的问题

    spark2.0搭建到服务器跑很方便,但是本地跑和之前1.6还是有点区别,鼓捣了一点到半夜2点多总算能跑了.. 遇到的问题 1.idea千万要用file---setting-----plugins的s ...