Jak w temacie... Czy ktoś może mi powiedzieć z czego wynika sytuacja, w której w ustawieniach Debug, QProcess odpala mi program, system wyświetla zapytanie UAC i wszystko jest OK. Przełączam na Release i QProcess zamiast odpalić mi execa(tego samego co w Debug) kończy się błędem (Unknown Error) . Podejrzewam, że chodzi o brak jakichś uprawnień, ale jak je podnieść, to niestety niewiem. Jako podpowiedź powiem, że zwykły notepad.exe uruchamia się w Debug i Release bez żadnych problemów.
0
0
Tak,
W trybie debug są nieustawione niektóre uprawnienia, spróbuj wywołać tą funkcje na początku programu, żeby podnieść je
void EnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue );
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL );
CloseHandle(hToken);
}
Pozdrawiam, mam nadzieje, że pomoże