Um ein Windows-Programm z.B. per Klick auf einen Button als Administrator auszuführen, kann folgender Code verwendet werden:
// Elevate the process if it is not run as administrator. if (!fIsRunAsAdmin) { wchar_t szPath[MAX_PATH]; if (GetModuleFileName(NULL, szPath, ARRAYSIZE(szPath))) { // Launch itself as administrator. SHELLEXECUTEINFO sei = { sizeof(sei) }; sei.lpVerb = L"runas"; sei.lpFile = szPath; sei.hwnd = hWnd; sei.nShow = SW_NORMAL; if (!ShellExecuteEx(&sei)) { DWORD dwError = GetLastError(); if (dwError == ERROR_CANCELLED) { // The user refused the elevation. // Do nothing ... } } else { EndDialog(hWnd, TRUE); // Quit itself } } }
Die Benutzung des Verbs "runas" ist in der aktuellen MSDN weder unter ShellExecuteEx noch unter SHELLEXECUTEINFO dokumentiert.