系统信息的管理函数API
1.Windows系统信息
1.1获取系统版本:
BOOL WINAPI GetVersionEx( __in_out LPOSVERSIONINFO lpVersionInfo );
lpVersionInfo
一个OSVERSIONINFO或OSVERSIONINFOEX结构接收操作系统的信息。
在调用之前GetVersionEx功能,设置dwOSVersionInfoSize这种结构适当的成员
1.2获取系统硬件相关信息
void WINAPI GetSystemInfo(
__out LPSYSTEM_INFO lpSystemInfo
);
lpSystemInfo
一个指向SYSTEM_INFO接收的信息结构。
1.3获取系统目录等信息
1.3.1获取系统目录
UINT WINAPI GetSystemDirectory(
__out LPTSTR lpBuffer,
__in UINT USIZE
);
lpBuffer
的指针接收缓冲区的路径。此路径不以反斜杠结尾,除非系统目录的根目录。例如,如果系统目录被命名为C盘WINDOWS \ SYSTEM,该函数检索系统目录的路径是C:\ WINDOWS \ SYSTEM。
USIZE
缓冲器的最大大小,以返回tchars。
1.3.2获取windows安装目录
UINT WINAPI GetWindowsDirectory(
__out LPTSTR lpBuffer,
__in UINT USIZE
);
lpBuffer
一个指向接收路径的缓冲区。此路径不以反斜杠结尾,除非Windows目录是根目录。例如,如果Windows目录名为Windows驱动器C,此函数获取Windows目录的路径为C:\ Windows操作系统。如果系统安装在C盘的根目录,检索路径是C:\。
USIZE
由指定的缓冲区的最大尺寸lpBuffer参数,在返回tchars。此值应设置为MAX _。
1.4获取用户名
BOOL WINAPI GetUserName(
__out LPTSTR lpBuffer,
__in_out LPDWORD lpnSize
);
1.5获取计算机名
BOOL WINAPI GetComputerName(
__out LPTSTR lpBuffer,
__in_out LPDWORD lpnSize
);
1.6设置计算机名
BOOL WINAPI SetComputerName(
__in LPCTSTR lpComputerName
);
1.7获得计算机名,NetBIOS的或者DNS名
BOOL WINAPI GetComputerNameEx(
__in COMPUTER_NAME_FORMAT NameType,
__out LPTSTR lpBuffer,
__in_out LPDWORD lpnSize
);
1.8系统颜色
DWORD WINAPI GetSysColor(
__in int nIndex
);
BOOL WINAPI SetSysColors(
__in int cElements,
__in const INT* lpaElements,
__in const COLORREF* lpaRgbValues
);
1.9获取系统各种尺度信息
int WINAPI GetSystemMetrics(
__in int nIndex
);
1.10获取更多系统参数,如鼠标,键盘等外设信息
BOOL WINAPI SystemParametersInfo(
__in UINT uiAction,
__in UINT uiParam,
__in_out PVOID pvParam,
__in UINT fWinIni
);
1.11设置和获取系统时间
void WINAPI GetLocalTime(
__out LPSYSTEMTIME lpSystemTime
);
BOOL WINAPI SetLocalTime(
__in const SYSTEMTIME* lpSystemTime
);
void WINAPI GetSystemTime(
__out LPSYSTEMTIME lpSystemTime
);
BOOL WINAPI SetSystemTime(
__in const SYSTEMTIME* lpSystemTime
);
1.11.1文件时间与系统时间互换
BOOL WINAPI SystemTimeToFileTime(
__in const SYSTEMTIME* lpSystemTime,
__out LPFILETIME lpFileTime
);
BOOL WINAPI FileTimeToSystemTime(
__in const FILETIME* lpFileTime,
__out LPSYSTEMTIME lpSystemTime
);
1.12获取系统环境变量
DWORD GetEnvironmentVariable(
LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);
参数:
lpName:要获取值的变量名字符串指针.
lpBuffer:接收变量值的字符串指针
nSize:接收变量值的内存大小.
返回值:
如果函数成功执行,则返回值是写入字符缓冲区的字符数量,但不包含'\0'字符.
如果没有找到所指的变量,则返回零.
如果字符缓冲区的大小小于变量值的长度,返回值为缓冲区的大小.
WINDIR: //系统目录 - C:\WINDOWS
SYSTEMROOT: //系统目录 - C:\WINDOWS
SYSTEMDRIVE: //系统根目录 - C:
HOMEDRIVE: //当前用户根目录 - C:
USERPROFILE: //当前用户目录 - C:\Users\Kandy
HOMEPATH: //当前用户路径 - \Users\Kandy
TMP: //当前用户临时文件夹 - C:\Users\Kandy\AppData\Local\Temp
TEMP: //当前用户临时文件夹 - C:\Users\Kandy\AppData\Local\Temp
APPDATA: //当前用户数据文件夹 - C:\Users\Kandy\AppData\Roaming
PROGRAMFILES: //程序默认安装目录 - C:\Program Files (x86)
COMMONPROGRAMFILES: //文件通用目录 - C:\Program Files (x86)\Common Files
USERNAME: //当前用户名 - Kandy
ALLUSERSPROFILE: //所有用户文件目录 - C:\ProgramData
OS: //操作系统名 - Windows_NT
COMPUTERNAME: //计算机名 - KANDY-PC
NUMBER_OF_PROCESSORS: //处理器个数 - 4
PROCESSOR_ARCHITECTURE: //处理器芯片架构 - x86
PROCESSOR_LEVEL: //处理器型号 - 6
PROCESSOR_REVISION: //处理器修订号 - 3c03
USERDOMAIN: //包含用户帐号的域 - KANDY-PC
COMSPEC: //C:\WINDOWS\system32\cmd.exe
PATHEXT: //执行文件类型 - .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
1.13注册表
1.13.1打开已存在键的注册表
LONG WINAPI RegOpenKeyEx(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
DWORD ulOptions,
__in REGSAM samDesired,
__out PHKEY phkResult
);
1.13.2创建新的键
LONG WINAPI RegCreateKeyEx(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
DWORD Reserved,
__in LPTSTR lpClass,
__in DWORD dwOptions,
__in REGSAM samDesired,
__in LPSECURITY_ATTRIBUTES lpSecurityAttributes,
__out PHKEY phkResult,
__out LPDWORD lpdwDisposition
);
LONG WINAPI RegCreateKey(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
__out PHKEY phkResult
);
1.13.3设置和获取键值
LONG WINAPI RegSetValue(
__in HKEY hKey,
__in LPCTSTR lpSubKey,
__in DWORD dwType,
__in LPCTSTR lpData,
__in DWORD cbData
);
LONG WINAPI RegGetValue(
__in HKEY hkey,
__in_opt LPCTSTR lpSubKey,
__in_opt LPCTSTR lpValue,
__in_opt DWORD dwFlags,
__out_opt LPDWORD pdwType,
__out_opt PVOID pvData,
__in_out_opt LPDWORD pcbData
);
1.13.4删除注册表键和键值
LONG WINAPI RegDeleteKey(
__in HKEY hKey,
__in LPCTSTR lpSubKey
);
LONG WINAPI RegDeleteValue(
__in HKEY hKey,
__in LPCTSTR lpValueName
);
1.13.5枚举键
LONG WINAPI RegEnumKeyEx(
__in HKEY hKey,
__in DWORD dwIndex,
__out LPTSTR lpName,
__in_out LPDWORD lpcName,
LPDWORD lpReserved,
__in_out LPTSTR lpClass,
__in_out LPDWORD lpcClass,
__out PFILETIME lpftLastWriteTime
);
LONG WINAPI RegEnumValue(
__in HKEY hKey,
__in DWORD dwIndex,
__out LPTSTR lpValueName,
__in_out LPDWORD lpcchValueName,
LPDWORD lpReserved,
__out LPDWORD lpType,
__out LPBYTE lpData,
__in_out LPDWORD lpcbData
);
系统信息的管理函数API的更多相关文章
- μC/OS-Ⅲ系统的时间管理函数和定时器
一.时间管理函数 μC/OS-Ⅲ系统提供一些列时间管理服务函数: 1.OSTimeDly():任务延时n个时钟节拍. 2.OSTimeDlyHMSM():任务延时指定的时间,采用“时:分:秒:毫秒”方 ...
- Python3标准库:functools管理函数的工具
1. functools管理函数的工具 functools模块提供了一些工具来调整或扩展函数和其他callable对象,从而不必完全重写. 1.1 修饰符 functools模块提供的主要工具就是pa ...
- 使用 WSO2 API Manager 管理 Rest API
WSO2 API Manager 简介 随着软件工程的增多,越来越多的软件提供各种不同格式.不同定义的 Rest API 作为资源共享,而由于这些 API 资源的异构性,很难对其进行复用.WSO2 A ...
- 内存管理运算符new delete与内存管理函数malloc free的区别——已经他们对对象创建的过程。
(1)内存管理函数与内存管理运算符的区别 内存管理函数有内存分配函数,malloc calloc realloc 以及内存释放函数free. 内存管理运算符有new 和delete. 两种内存管理方式 ...
- functools:管理函数工具(部分)
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #functools:管理函数工具 #作用:处理其他函数的函数 #版 ...
- POSIX多线程——基本线程管理函数介绍
POSIX基本的几个线程管理函数见下表: ------------------------------------------------------------------------------- ...
- [图形学] Chp9 三维几何变换--栈处理函数与矩阵管理函数的区别
矩阵管理函数:glLoadIdentity()是把当前活动矩阵设置为单位矩阵. 栈处理函数:glPushMatrix()是将当前活动的变换矩阵复制一份,压入栈顶:glPopMatrix()是破坏当前活 ...
- 065 updateStateByKey的函数API
一:使用场景 1.应用场景 数据的累加 一段时间内的数据的累加 2.说明 每个批次都输出自己批次的数据, 这个时候,可以使用这个API,使得他们之间产生联系. 3.说明2 在累加器的时候,起到的效果和 ...
- HTML5 Audio标签方法和函数API介绍
问说网 > 文章教程 > 网页制作 > HTML5 Audio标签方法和函数API介绍 Audio APIHTML5HTML5 Audio预加载 HTML5 Audio标签方法和函数 ...
随机推荐
- Manacher算法+注释
Manacher算法是用来求一个字符串中最长回文串的算法. 考虑暴力求最长回文串的做法: 暴力枚举字符串中的所有字串判断是否回文,然后求最大值. 时间复杂度O(n^3),考虑优化. 我们从枚举所有字串 ...
- MQTTnet 3.0.5学习笔记
段时间在使用MQTTnet,都说这个东西比较好,可是翻了翻网上没有例子给参考一下. 今天算是找到了,给高手的帖子做个宣传吧. 原网址如下:https://blog.csdn.net/chenlu520 ...
- 前端知识总结--js异步事件顺序
js中异步事件中容易混淆的 Promise 和 setTimeout 的执行顺序是怎样的? setTimeout(() => console.log(1), 0); new Promise(fu ...
- leetcode-102.层序遍历二叉树(正序)· BTree
题面 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...
- sqlAlchemy搭建sqliteOrm
一:引入文件 from sqlalchemy import Column, Integer, VARCHAR, Text from sqlalchemy import create_engine fr ...
- logstash+elasticsearch+kibana搭建日志收集分析系统
来源: http://blog.csdn.net/xifeijian/article/details/50829617 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散 ...
- Computer Vision_33_SIFT:PCA-SIFT A More Distinctive Representation for Local Image Descriptors——2004
此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...
- eclipse开发scrapy爬虫工程,附爬虫临门级教程
写在前面 自学爬虫入门之后感觉应该将自己的学习过程整理一下,也为了留个纪念吧. scrapy环境的配置还请自行百度,其实也不难(仅针对windows系统,centos配置了两天,直到现在都没整明白) ...
- java - day008 - 接口,内部类
接口 作用: 结构设计工具,用来解耦合,需要有子类,隔离具体实现 接口是一个极端的抽象类 用 interface 代替 class 用 implements 代替 extends // 接口中所有东西 ...
- golang的序列化与反序列化的几种方式
golang用来序列化的模块有很多,我们来介绍3个. json 首先登场的是json,这个几乎毋庸置疑. 序列化 package main import ( "encoding/json&q ...