mirror of
https://github.com/ONLYOFFICE/desktop-apps.git
synced 2026-04-07 14:09:22 +08:00
[win] updatesvc: debug msi package launch
This commit is contained in:
@ -906,13 +906,20 @@ void CSvcManager::startInstallPackage(const tstring &advArgs)
|
|||||||
NS_Logger::WriteLog(_TR("Update cancelled. The file signature is missing:") + _T(" ") + m_packageData->fileName, true);
|
NS_Logger::WriteLog(_TR("Update cancelled. The file signature is missing:") + _T(" ") + m_packageData->fileName, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
tstring args = m_packageData->packageArgs;
|
tstring args;
|
||||||
|
if (m_packageData->fileType == _T("msi")) {
|
||||||
|
args = _T("/i \"") + NS_File::toNativeSeparators(m_packageData->fileName) + _T("\"");
|
||||||
|
if (!m_packageData->packageArgs.empty())
|
||||||
|
args += _T(" ") + m_packageData->packageArgs;
|
||||||
|
} else {
|
||||||
|
args = m_packageData->packageArgs;
|
||||||
|
}
|
||||||
if (!advArgs.empty()) {
|
if (!advArgs.empty()) {
|
||||||
if (!args.empty())
|
if (!args.empty())
|
||||||
args += _T(" ");
|
args += _T(" ");
|
||||||
args += advArgs;
|
args += advArgs;
|
||||||
}
|
}
|
||||||
if (!NS_File::runProcess(m_packageData->fileName, args))
|
if (!NS_File::runProcess(m_packageData->fileType == _T("msi") ? _T("msiexec.exe") : m_packageData->fileName, args))
|
||||||
NS_Logger::WriteLog(_TR("An error occurred while start install updates!"), true);
|
NS_Logger::WriteLog(_TR("An error occurred while start install updates!"), true);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -301,7 +301,7 @@ namespace NS_File
|
|||||||
si.cb = sizeof(STARTUPINFO);
|
si.cb = sizeof(STARTUPINFO);
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
ZeroMemory(&pi, sizeof(pi));
|
ZeroMemory(&pi, sizeof(pi));
|
||||||
if (CreateProcess(fileName.c_str(), &_args[0],
|
if (CreateProcess(NULL, &_args[0],
|
||||||
NULL, NULL, FALSE, CREATE_UNICODE_ENVIRONMENT,
|
NULL, NULL, FALSE, CREATE_UNICODE_ENVIRONMENT,
|
||||||
NULL, NULL, &si, &pi))
|
NULL, NULL, &si, &pi))
|
||||||
{
|
{
|
||||||
@ -340,7 +340,7 @@ namespace NS_File
|
|||||||
si.cb = sizeof(STARTUPINFO);
|
si.cb = sizeof(STARTUPINFO);
|
||||||
si.lpDesktop = const_cast<LPWSTR>(L"Winsta0\\Default");
|
si.lpDesktop = const_cast<LPWSTR>(L"Winsta0\\Default");
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
if (CreateProcessAsUser(hTokenDup, fileName.c_str(),
|
if (CreateProcessAsUser(hTokenDup, NULL,
|
||||||
&_args[0],
|
&_args[0],
|
||||||
NULL, NULL, FALSE,
|
NULL, NULL, FALSE,
|
||||||
CREATE_UNICODE_ENVIRONMENT,
|
CREATE_UNICODE_ENVIRONMENT,
|
||||||
|
|||||||
Reference in New Issue
Block a user