[英]c++ how to get %AppData% path under non-administrator account and running VS2013 as Administrator
我知道這里有很多類似的問題,例如如何獲取%AppData%路徑
但是我的與眾不同:
1.我有兩個帳戶:
Admin- Administrator account
Test- Non-Administrator account
2.使用VS2013作為管理員運行我的項目,原因是該項目需要具有提升的權限。 然后使用以下代碼段獲取appdata路徑:
TCHAR szPath[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szPath)))
{
//....
}
但是szPath
的實際值是C:\\Users\\Admin\\AppData\\Roaming
,而不是我想要的C:\\Users\\Test\\AppData\\Roaming
。
有人知道該怎么做嗎? 提前致謝。
問題的根本原因是以“ Admin”帳戶運行VS。 只要您繼續這樣做,%AppData%將指向該帳戶的appdata文件夾。 沒有驚喜。
因此,您必須更改方法。 一些選項:
等等..有很多選擇,一切都取決於您願意改變您的方法。
關於第四個問題:嘗試此操作-在開始菜單中找到“命令行”(cmd.exe)的快捷方式。 右鍵單擊它。 您應該看到選項“以管理員身份運行”(不是“以其他用戶身份運行..”)。 控制台打開后,編寫: echo %APPDATA%
並檢查它是什么。 它應該指向您的應用程序數據,但是在窗口標題欄上您應該看到Administrator:CommandPrompt
警告信息。 現在編寫start cmd.exe
。 另一個管理控制台應彈出,以證明高度會傳播到子進程。 在新控制台中檢查APPDATA,它仍然應該是您的。 那只是一個測試。
如果控制台正常工作並傳播了海拔和環境變量,那么您還應該能夠直接在VisualStudio圖標上選擇“以管理員身份運行”。 就這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.