获取环境变量的常用API
- SHGetSpecialFolderPath
BOOL SHGetSpecialFolderPathA(
HWND hwnd, //保留
LPSTR pszPath, //指向以null结尾的字符串的指针,该字符串接收指定文件夹的驱动器和路径。此缓冲区的大小必须至少为MAX_PATH个字符。
int csidl, //一个CSIDL值,用于标识要检索其路径的文件夹。
BOOL fCreate //指示是否应创建文件夹(如果该文件夹尚不存在)。如果此值非零,则创建该文件夹。如果此值为零,则不会创建该文件夹。
);
- SHGetFolderPath
SHFOLDERAPI SHGetFolderPathA(
HWND hwnd, //保留
int csidl, //一个CSIDL值,用于标识要检索其路径的文件夹。
HANDLE hToken, //访问令牌
DWORD dwFlags, //指定要返回的路径的标志。
LPSTR pszPath //一个指向null -terminated字符串的指针,长度为MAX_PATH,它将接收路径。如果发生错误或返回S_FALSE,则此字符串将为空。返回的路径不包括尾部反斜杠。例如,返回“C:\ Users”而不是“C:\ Users”。
);
- 关于csidl:
关于该项,可以在ShlObj.h文件中查看具体值定义。(比如:CSIDL_PROGRAM_FILES)
需要注意的一点:%temp%目录无法通过该API直接获取。
- GetTempPath
//返回值:如果函数成功,则返回值是复制到lpBuffer的字符串的长度,以TCHAR表示,不包括终止空字符。如果返回值大于nBufferLength,则返回值是保存路径所