系统信息的管理函数API

1.Windows系统信息

1.1获取系统版本:


 
BOOL WINAPI GetVersionEx( __in_out LPOSVERSIONINFO lpVersionInfo );

 

 

lpVersionInfo

一个OSVERSIONINFOOSVERSIONINFOEX结构接收操作系统的信息。

在调用之前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
);

 

 

 

 

 

 

posted @ 2016-12-08 21:47  jadeshu  阅读(137)  评论(0编辑  收藏  举报