当进程以低完整性级别运行时,您无法写入%temp%,因此我需要一种方法来查找%temp%\ Low目录的路径(不使用“低”字硬编码)< / p>
答案 0 :(得分:4)
“在保护模式下了解和使用Internet Explorer”的"Finding Low Integrity Write Locations" section文章包含以下内容:
注意保护模式修改IE的环境变量。因此,GetTempPath()函数在保护模式处于活动状态时调用时返回%Temp%\ Low。
答案 1 :(得分:2)
根据MSDN
在保护模式下,扩展程序可以 将文件写入下面的文件夹 通常是用户的UserProfile文件夹 %USERPROFILE%\应用程序数据\ LocalLow。使用 SHGetKnownFolderPath函数用 FOLDERID_LocalAppDataLow标志为 获取展开的文件夹名称。
SHGetKnownFolderPath(FOLDERID_LocalAppDataLow, 0,
NULL, szPath, ARRAYSIZE(szPath));
答案 2 :(得分:1)
如果您只是在寻找要写入的临时目录,可以遍历%temp%
目录中的目录并尝试写入每个目录。
如果禁用UAC,.
应该是第一个。如果没有,.\Low
应该是唯一的。
答案 3 :(得分:-1)