static HRESULT StartEditApplication(const UString &path, HWND window, CProcess &process) { UString command; ReadRegEditor(command); if (command.IsEmpty()) { #ifdef UNDER_CE command = L"\\Windows\\"; #else if (!MyGetWindowsDirectory(command)) return 0; NFile::NName::NormalizeDirPathPrefix(command); #endif command += L"notepad.exe"; } HRESULT res = process.Create(command, GetQuotedString(path), NULL); if (res != SZ_OK) ::MessageBoxW(window, LangString(IDS_CANNOT_START_EDITOR, 0x03020282), L"7-Zip", MB_OK | MB_ICONSTOP); return res; }
static HRESULT Call7zGui(const UString ¶ms, // LPCWSTR curDir, bool waitFinish, NSynchronization::CBaseEvent *event) { UString imageName = fs2us(NWindows::NDLL::GetModuleDirPrefix()); imageName.AddAscii(k7zGui); CProcess process; WRes res = process.Create(imageName, params, NULL); // curDir); if (res != 0) { ErrorMessageHRESULT(res, imageName); return res; } if (waitFinish) process.Wait(); else if (event != NULL) { HANDLE handles[] = { process, *event }; ::WaitForMultipleObjects(ARRAY_SIZE(handles), handles, FALSE, INFINITE); } return S_OK; }
WRes MyCreateProcess(LPCWSTR imageName, const UString ¶ms) { CProcess process; return process.Create(imageName, params, 0); }