我知道有很多類似的問題在那裏像這樣的how to get %AppData% pathC++如何獲得在非管理員帳戶%AppData的%路徑和運行VS2013以管理員身份
但是我的是不同的:
1。我有兩個帳戶:
Admin- Administrator account
Test- Non-Administrator account
2.使用VS2013作爲管理員運行我的項目,導致項目需要提升權限。然後,使用下面的代碼來獲取應用程序數據路徑:
TCHAR szPath[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szPath)))
{
//....
}
但szPath
實際值C:\Users\Admin\AppData\Roaming
,不C:\Users\Test\AppData\Roaming
,我想。
任何人都知道該怎麼做?提前致謝。
不,您可以在任何帳戶中以「管理員」身份運行。它不會切換到其他帳戶。在許多計算機上沒有稱爲「管理員」的特定帳戶,並且沒有名爲「c:\ users \ administrator」的文件夾,但仍可以以管理員身份運行,這意味着該程序具有較高的訪問權限。 –
@BarmakShemirani我有一個錯字。它是C:\ Users \ Admin \ AppData \ Roaming而不是c:\ users \ administrator。我的管理員帳戶名是admin。 –
沒有什麼可以解決的。您正在管理員帳戶的上下文中運行該流程,因此這是該流程的正確AppData路徑。以admin身份運行時使用測試帳戶的AppData文件夾會導致問題。 –