Как мне запустить программу из cpp так же, как я бы запустил ее через администратор в проводнике? - PullRequest
0 голосов
/ 09 мая 2019

Я распаковываю исполняемый файл из моего приложения 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, но не из проводника. И как мне решить эту проблему?

1 Ответ

0 голосов
/ 16 мая 2019

Оказывается, мой код работает так, как я и ожидал, проблема заключалась в том, что он неправильно анализировал путь, поэтому не смог его запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...