Browse Source

fix(updater): Use module path, not working dir

Fix #3255
reviewable/pr3697/r1
tux3 10 years ago
parent
commit
0f1c8a783b
No known key found for this signature in database
GPG Key ID: 7E086DD661263264
  1. 7
      src/net/autoupdate.cpp

7
src/net/autoupdate.cpp

@ -492,11 +492,14 @@ void AutoUpdater::installLocalUpdate() @@ -492,11 +492,14 @@ void AutoUpdater::installLocalUpdate()
// Workaround QTBUG-7645
// QProcess fails silently when elevation is required instead of showing a UAC prompt on Win7/Vista
#ifdef Q_OS_WIN
HINSTANCE result = ::ShellExecuteW(0, L"open", updaterBin.toStdWString().c_str(), 0, 0, SW_SHOWNORMAL);
QString modulePath = qApp->applicationDirPath().replace('/', '\\');
HINSTANCE result = ::ShellExecuteW(0, L"open", updaterBin.toStdWString().c_str(),
0, modulePath.toStdWString().c_str(), SW_SHOWNORMAL);
if (result == (HINSTANCE)SE_ERR_ACCESSDENIED)
{
// Requesting elevation
result = ::ShellExecuteW(0, L"runas", updaterBin.toStdWString().c_str(), 0, 0, SW_SHOWNORMAL);
result = ::ShellExecuteW(0, L"runas", updaterBin.toStdWString().c_str(),
0, modulePath.toStdWString().c_str(), SW_SHOWNORMAL);
}
if (result <= (HINSTANCE)32)
failExit();

Loading…
Cancel
Save