C++ (Qt)void RunElevated(){ SHELLEXECUTEINFO TempInfo = {0}; TCHAR buf[MAX_PATH]; GetModuleFileName(0, buf, MAX_PATH - 1); CString s = GetAppFolder(); TempInfo.cbSize = sizeof(SHELLEXECUTEINFOA); TempInfo.fMask = 0; TempInfo.hwnd = NULL; TempInfo.lpVerb = _T("runas"); TempInfo.lpFile = buf; TempInfo.lpParameters = _T(" /option"); TempInfo.lpDirectory = s; TempInfo.nShow = SW_NORMAL; ::ShellExecuteEx(&TempInfo);}
C++ (Qt)if(QCoreApplication::arguments ().at(1) == "/option"){ // ... здесь обновляете DLL и выходите // программа обладает админскими правами}