当前位置: 代码迷 >> 综合 >> 【WINDOWS核心编程】获取系统变量值
  详细解决方案

【WINDOWS核心编程】获取系统变量值

热度:62   发布时间:2024-02-13 11:26:41.0

GetEnvironmentVariable是一个从调用该函数的进程的环境变量中返回指定的变量名值的函数,主要参数有lpName、lpBuffer等。

GetEnvironmentVariable函数从调用该函数的进程的环境变量中,返回指定的变量名的值,该值是一个以零结尾的字符串指针.

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'字符.

如果没有找到所指的变量,则返回零.

如果字符缓冲区的大小小于变量值的长度,返回值为缓冲区的大小.

//字符编码集为Unicode
#include <Windows.h>
#include <iostream>

using namespace std;

void MyGetEnvironmentVariable()
{
wchar_t buffer[MAX_PATH];
//系统目录
DWORD code = GetEnvironmentVariable(L"WINDIR", buffer, MAX_PATH);
std::wcout << L"WINDIR:\t\t\t" << buffer << std::endl;
//系统目录
GetEnvironmentVariable(L"SYSTEMROOT", buffer, MAX_PATH);
std::wcout << L"SYSTEMROOT:\t\t" << buffer << std::endl;
//系统根目录
GetEnvironmentVariable(L"SYSTEMDRIVE", buffer, MAX_PATH);
std::wcout << L"SYSTEMDRIVE:\t\t" << buffer << std::endl;
//当前用户根目录
GetEnvironmentVariable(L"HOMEDRIVE", buffer, MAX_PATH);
std::wcout << L"HOMEDRIVE:\t\t" << buffer << std::endl;
//当前用户目录
GetEnvironmentVariable(L"USERPROFILE", buffer, MAX_PATH);
std::wcout << L"USERPROFILE:\t\t" << buffer << std::endl;
//当前用户路径
GetEnvironmentVariable(L"HOMEPATH", buffer, MAX_PATH);
std::wcout << L"HOMEPATH:\t\t" << buffer << std::endl;
//当前用户临时文件夹
GetEnvironmentVariable(L"TMP", buffer, MAX_PATH);
std::wcout << L"TMP:\t\t\t" << buffer << std::endl;
//当前用户临时文件夹
GetEnvironmentVariable(L"TEMP", buffer, MAX_PATH);
std::wcout << L"TEMP:\t\t\t" << buffer << std::endl;
//当前用户数据文件夹
GetEnvironmentVariable(L"APPDATA", buffer, MAX_PATH);
std::wcout << L"APPDATA:\t\t" << buffer << std::endl;
//程序默认安装路径
GetEnvironmentVariable(L"PROGRAMFILES", buffer, MAX_PATH);
std::wcout << L"PROGRAMFILES:\t\t" << buffer << std::endl;
//文件通用目录
GetEnvironmentVariable(L"COMMONPROGRAMFILES", buffer, MAX_PATH);
std::wcout << L"COMMONPROGRAMFILES:\t" << buffer << std::endl;
//当前用户名
GetEnvironmentVariable(L"USERNAME", buffer, MAX_PATH);
std::wcout << L"USERNAME:\t\t" << buffer << std::endl;
//所有用户文件目录
GetEnvironmentVariable(L"ALLUSERSPROFILE", buffer, MAX_PATH);
std::wcout << L"ALLUSERSPROFILE:\t" << buffer << std::endl;
//操作系统名
GetEnvironmentVariable(L"OS", buffer, MAX_PATH);
std::wcout << L"OS:\t\t\t" << buffer << std::endl;
//计算机名
GetEnvironmentVariable(L"COMPUTERNAME", buffer, MAX_PATH);
std::wcout << L"COMPUTERNAME:\t\t" << buffer << std::endl;
//处理器个数
GetEnvironmentVariable(L"NUMBER_OF_PROCESSORS", buffer, MAX_PATH);
std::wcout << L"NUMBER_OF_PROCESSORS:\t" << buffer << std::endl;
//处理器芯片架构
GetEnvironmentVariable(L"PROCESSOR_ARCHITECTURE", buffer, MAX_PATH);
std::wcout << L"PROCESSOR_ARCHITECTURE:\t" << buffer << std::endl;
//处理器型号
GetEnvironmentVariable(L"PROCESSOR_LEVEL", buffer, MAX_PATH);
std::wcout << L"PROCESSOR_LEVEL:\t" << buffer << std::endl;
//处理器修订号
GetEnvironmentVariable(L"PROCESSOR_REVISION", buffer, MAX_PATH);
std::wcout << L"PROCESSOR_REVISION:\t" << buffer << std::endl;
//包含用户账号的域
GetEnvironmentVariable(L"USERDOMAIN", buffer, MAX_PATH);
std::wcout << L"USERDOMAIN:\t\t" << buffer << std::endl;

    GetEnvironmentVariable(L"COMSPEC", buffer, MAX_PATH);
std::wcout << L"COMSPEC:\t\t" << buffer << std::endl;
//执行文件类型
GetEnvironmentVariable(L"PATHEXT", buffer, MAX_PATH);
std::wcout << L"PATHEXT:\t\t" << buffer << std::endl;
//搜索路径
GetEnvironmentVariable(L"PATH", buffer, MAX_PATH);
std::wcout << L"PATH:\t\t" << buffer << std::endl;
}

int main()
{
MyGetEnvironmentVariable();
system("pause");
return 0;
}

  相关解决方案