Добрый вечер! Есть код представленный ниже, и он позволяет запустить программу, в данном случае блокнот, от имени администратора, но есть небольшая разница. Если я так запущу программу, то мне откроется блокнот, но редактировать SystemRoot%\system32\drivers\etc\hosts я не смогу. Если я в пуске выберу блокнот и запущу от имени администратора, через правую кнопку, то редактировать этот файл я смогу. В чем разница? И как программно получить поведение, как у "запустить от имени администратора" по правой кнопке.
#include <windows.h>
int WINAPI wWinMain(
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nShowCmd)
{
SHELLEXECUTEINFO shExInfo = { 0 };
shExInfo.cbSize = sizeof(shExInfo);
shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExInfo.hwnd = 0;
shExInfo.lpVerb = TEXT("runas");
shExInfo.lpFile = TEXT("notepad.exe"); // Application to start
shExInfo.lpParameters = TEXT(""); // Additional parameters
shExInfo.lpDirectory = 0;
shExInfo.nShow = SW_SHOW;
shExInfo.hInstApp = 0;
ShellExecuteEx(&shExInfo);
}