在哪里可以创建没有管理员权限/权限的目录?

时间:2014-03-17 18:21:24

标签: c++ c windows winapi

我正在创建一个与第三方程序一起使用的DLL。是否第三方程序在Windows中具有管理员权限是我无法控制的。

DLL需要创建一个目录,但似乎CreateDirectory不起作用,因为它没有管理员权限。

升级UAC不是一种选择,因为我只修改DLL而不是第三方程序。我无法强制用户右键单击第三方程序和“以管理员身份运行”。

(Visual C ++ 2010)

修改

我正在写信给C:\ProgramData\。我使用SHGetFolderPath()CSIDL_COMMON_APPDATA检索该路径。

2 个答案:

答案 0 :(得分:5)

对于任何特定于用户的目录/文件,使用CSIDL_APPDATA作为 root 文件夹,否则请使用CSIDL_COMMON_APPDATA。无论哪种方式,在您选择的 root 下为您的app / DLL创建自己的子文件夹,因为 root 文件夹本身不会被写入。通常,安装程序应该创建具有足够权限的子文件夹,然后app / DLL可以根据需要访问它。

答案 1 :(得分:1)

读取TEMP环境变量,并使用结果创建临时文件和/或目录。使用APPDATA表示持久的。

请注意,至少APPDATA是特定于用户的。