簡體   English   中英

如何通過在資源管理器中以管理員身份啟動的方式運行cpp中的程序?

[英]How do I run a program from cpp the same way as I would do it via launch as admin in explorer?

我正在從我的UWP應用程序中解壓縮可執行文件並將它們存儲在LocalState文件夾中。 然后我啟動一個專用的fullTrust實用程序並嘗試以管理員身份執行該程序。 這失敗了。

當且僅當我通過資源管理器啟動相同的exe時,通過單擊“以管理員身份運行”,它才有效。 與其他exe文件位於不同的文件夾,它的工作完美無瑕。

我用來啟動的代碼是:

SHELLEXECUTEINFO shExInfo;
ZeroMemory(&shExInfo, sizeof(shExInfo));

shExInfo.cbSize = sizeof(shExInfo); // structure size
shExInfo.fMask = mask;              // execution flags
shExInfo.lpVerb = _T("runas");      // run elevated
shExInfo.lpFile = szExe;            // application to start    
shExInfo.lpParameters = params;     // some params
shExInfo.lpDirectory = nullptr;     // current working directory
shExInfo.nShow = show;              // show/hide the application

ShellExecuteEx(&shExInfo)           // This returns false, thus meaning a failure to start the exe

如果我從我的cpp以管理員身份啟動它,而不是從資源管理器啟動它,為什么會失敗? 我該如何解決這個問題?

事實證明我的代碼按我預期的方式工作,問題是它正在錯誤地解析路徑,因此無法啟動它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM