https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f3c750787b8aa5a504c521067591c2b829f15cfe
commit f3c750787b8aa5a504c521067591c2b829f15cfe Author: Whindmar Saksit <whinds...@proton.me> AuthorDate: Tue Feb 18 13:23:25 2025 +0100 Commit: GitHub <nore...@github.com> CommitDate: Tue Feb 18 13:23:25 2025 +0100 [RAPPS] Ask user if they want to run the zip app they just installed (#7719) After the zip has been installed, ask the user if they want to run the extracted application. --- base/applications/rapps/geninst.cpp | 27 ++++++++++++++++++++------- base/applications/rapps/include/resource.h | 1 + base/applications/rapps/lang/bg-BG.rc | 1 + base/applications/rapps/lang/cs-CZ.rc | 1 + base/applications/rapps/lang/de-DE.rc | 1 + base/applications/rapps/lang/en-US.rc | 1 + base/applications/rapps/lang/es-ES.rc | 1 + base/applications/rapps/lang/et-EE.rc | 1 + base/applications/rapps/lang/fr-FR.rc | 1 + base/applications/rapps/lang/he-IL.rc | 1 + base/applications/rapps/lang/hu-HU.rc | 1 + base/applications/rapps/lang/id-ID.rc | 1 + base/applications/rapps/lang/it-IT.rc | 1 + base/applications/rapps/lang/ja-JP.rc | 1 + base/applications/rapps/lang/no-NO.rc | 1 + base/applications/rapps/lang/pl-PL.rc | 1 + base/applications/rapps/lang/pt-BR.rc | 1 + base/applications/rapps/lang/pt-PT.rc | 1 + base/applications/rapps/lang/ro-RO.rc | 1 + base/applications/rapps/lang/ru-RU.rc | 1 + base/applications/rapps/lang/sk-SK.rc | 1 + base/applications/rapps/lang/sq-AL.rc | 1 + base/applications/rapps/lang/sv-SE.rc | 1 + base/applications/rapps/lang/tr-TR.rc | 1 + base/applications/rapps/lang/uk-UA.rc | 1 + base/applications/rapps/lang/zh-CN.rc | 1 + base/applications/rapps/lang/zh-HK.rc | 1 + base/applications/rapps/lang/zh-TW.rc | 1 + 28 files changed, 47 insertions(+), 7 deletions(-) diff --git a/base/applications/rapps/geninst.cpp b/base/applications/rapps/geninst.cpp index 8e96e9e280e..8ef520c8646 100644 --- a/base/applications/rapps/geninst.cpp +++ b/base/applications/rapps/geninst.cpp @@ -271,15 +271,15 @@ GetLocalizedSMFolderName(LPCWSTR WinVal, LPCWSTR RosInf, LPCWSTR RosVal, CString return ReadIniValue(path, L"Strings", RosVal, Output) > 0; } -static BOOL -CreateShortcut(const CStringW &Target) +static CStringW +CreateMainShortcut(const CStringW &Target) { InstallInfo &Info = *static_cast<InstallInfo *>(g_pInfo); UINT csidl = Info.PerUser ? CSIDL_PROGRAMS : CSIDL_COMMON_PROGRAMS; CStringW rel = Info.ShortcutFile, path, dir, tmp; if (FAILED(GetSpecialPath(csidl, path, Info.GetGuiOwner()))) - return TRUE; // Pretend everything is OK + return L""; // Pretend everything is OK int cat; if (Info.Parser.GetInt(DB_CATEGORY, cat) && cat == ENUM_CAT_GAMES) @@ -300,7 +300,7 @@ CreateShortcut(const CStringW &Target) if ((Info.Error = ErrorFromHResult(hr)) != 0) { ErrorBox(Info.Error); - return FALSE; + return L""; } CComPtr<IShellLinkW> link; @@ -337,7 +337,7 @@ CreateShortcut(const CStringW &Target) { ErrorBox(ErrorFromHResult(hr)); } - return !Info.Error; + return Info.Error ? L"" : path; } static BOOL @@ -563,7 +563,20 @@ ExtractAndInstallThread(LPVOID Parameter) if (!Info.Error && Info.ShortcutFile) { - CreateShortcut(Info.MainApp); + tmp = CreateMainShortcut(Info.MainApp); + if (!tmp.IsEmpty() && !Info.Silent) + { + CStringW message, format; + format.LoadString(IDS_INSTGEN_CONFIRMINSTRUNAPP); + message.Format(format, const_cast<PCWSTR>(AppName)); + if (MessageBoxW(Info.GetGuiOwner(), message, AppName, MB_YESNO | MB_ICONQUESTION) == IDYES) + { + SHELLEXECUTEINFOW sei = { sizeof(sei), SEE_MASK_NOASYNC, Info.GetGuiOwner() }; + sei.lpFile = tmp; + sei.nShow = SW_SHOW; + ShellExecuteExW(&sei); + } + } } } @@ -609,7 +622,7 @@ UIDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) ErrorBox(); SendMessageW(hDlg, IM_END, 0, 0); } - break; + return TRUE; } case WM_CLOSE: return TRUE; diff --git a/base/applications/rapps/include/resource.h b/base/applications/rapps/include/resource.h index 790a9ae87e1..1e0f1de14a3 100644 --- a/base/applications/rapps/include/resource.h +++ b/base/applications/rapps/include/resource.h @@ -235,6 +235,7 @@ /* Generated installer */ #define IDS_INSTGEN_CONFIRMUNINST 1000 +#define IDS_INSTGEN_CONFIRMINSTRUNAPP 1001 /* Accelerators */ #define HOTKEYS 715 diff --git a/base/applications/rapps/lang/bg-BG.rc b/base/applications/rapps/lang/bg-BG.rc index c69ad32e4b5..6eb7997ec11 100644 --- a/base/applications/rapps/lang/bg-BG.rc +++ b/base/applications/rapps/lang/bg-BG.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/cs-CZ.rc b/base/applications/rapps/lang/cs-CZ.rc index 41d01040fb1..09f608b43c2 100644 --- a/base/applications/rapps/lang/cs-CZ.rc +++ b/base/applications/rapps/lang/cs-CZ.rc @@ -266,4 +266,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Opravdu chcete odinstalovat %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/de-DE.rc b/base/applications/rapps/lang/de-DE.rc index 3fedb68171f..3196296a41f 100644 --- a/base/applications/rapps/lang/de-DE.rc +++ b/base/applications/rapps/lang/de-DE.rc @@ -268,4 +268,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/en-US.rc b/base/applications/rapps/lang/en-US.rc index 968360d3b13..558d5132645 100644 --- a/base/applications/rapps/lang/en-US.rc +++ b/base/applications/rapps/lang/en-US.rc @@ -268,4 +268,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc index 60e047b0f2c..23ec16eb993 100644 --- a/base/applications/rapps/lang/es-ES.rc +++ b/base/applications/rapps/lang/es-ES.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/et-EE.rc b/base/applications/rapps/lang/et-EE.rc index 6af7f201d00..83de8d68f0d 100644 --- a/base/applications/rapps/lang/et-EE.rc +++ b/base/applications/rapps/lang/et-EE.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/fr-FR.rc b/base/applications/rapps/lang/fr-FR.rc index 0a7baf2bb76..2bc101f0553 100644 --- a/base/applications/rapps/lang/fr-FR.rc +++ b/base/applications/rapps/lang/fr-FR.rc @@ -268,4 +268,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Êtes-vous sûr de vouloir désinstaller %s ?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/he-IL.rc b/base/applications/rapps/lang/he-IL.rc index 0090533fe18..369c7b1730d 100644 --- a/base/applications/rapps/lang/he-IL.rc +++ b/base/applications/rapps/lang/he-IL.rc @@ -270,4 +270,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/hu-HU.rc b/base/applications/rapps/lang/hu-HU.rc index 5fa6c502db5..2691447be1b 100644 --- a/base/applications/rapps/lang/hu-HU.rc +++ b/base/applications/rapps/lang/hu-HU.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/id-ID.rc b/base/applications/rapps/lang/id-ID.rc index 92942ec2325..ea276805166 100644 --- a/base/applications/rapps/lang/id-ID.rc +++ b/base/applications/rapps/lang/id-ID.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc index a80578d2dcc..2effb985435 100644 --- a/base/applications/rapps/lang/it-IT.rc +++ b/base/applications/rapps/lang/it-IT.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/ja-JP.rc b/base/applications/rapps/lang/ja-JP.rc index c17ffd03f8d..da8c309d313 100644 --- a/base/applications/rapps/lang/ja-JP.rc +++ b/base/applications/rapps/lang/ja-JP.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/no-NO.rc b/base/applications/rapps/lang/no-NO.rc index bb2393102e6..239190f4e3f 100644 --- a/base/applications/rapps/lang/no-NO.rc +++ b/base/applications/rapps/lang/no-NO.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/pl-PL.rc b/base/applications/rapps/lang/pl-PL.rc index d4ff8f18ad4..034773c2669 100644 --- a/base/applications/rapps/lang/pl-PL.rc +++ b/base/applications/rapps/lang/pl-PL.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/pt-BR.rc b/base/applications/rapps/lang/pt-BR.rc index 02be0fcd5f0..f939d288965 100644 --- a/base/applications/rapps/lang/pt-BR.rc +++ b/base/applications/rapps/lang/pt-BR.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/pt-PT.rc b/base/applications/rapps/lang/pt-PT.rc index aea5ccc3491..c24f98afb4a 100644 --- a/base/applications/rapps/lang/pt-PT.rc +++ b/base/applications/rapps/lang/pt-PT.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/ro-RO.rc b/base/applications/rapps/lang/ro-RO.rc index e4cb46dd286..f4092694c58 100644 --- a/base/applications/rapps/lang/ro-RO.rc +++ b/base/applications/rapps/lang/ro-RO.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Sigur doriți să dezinstalați %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/ru-RU.rc b/base/applications/rapps/lang/ru-RU.rc index bf4919daf42..5e9f71915be 100644 --- a/base/applications/rapps/lang/ru-RU.rc +++ b/base/applications/rapps/lang/ru-RU.rc @@ -270,4 +270,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/sk-SK.rc b/base/applications/rapps/lang/sk-SK.rc index e0107dfaa3f..f8202c7333c 100644 --- a/base/applications/rapps/lang/sk-SK.rc +++ b/base/applications/rapps/lang/sk-SK.rc @@ -266,4 +266,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Ste si istí, že chcete odinštalovať %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/sq-AL.rc b/base/applications/rapps/lang/sq-AL.rc index 9d40291659b..a9f60543bff 100644 --- a/base/applications/rapps/lang/sq-AL.rc +++ b/base/applications/rapps/lang/sq-AL.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/sv-SE.rc b/base/applications/rapps/lang/sv-SE.rc index 92e142cf9bc..a9cb657a4e0 100644 --- a/base/applications/rapps/lang/sv-SE.rc +++ b/base/applications/rapps/lang/sv-SE.rc @@ -265,4 +265,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/tr-TR.rc b/base/applications/rapps/lang/tr-TR.rc index f94c432487d..74a2fa7c531 100644 --- a/base/applications/rapps/lang/tr-TR.rc +++ b/base/applications/rapps/lang/tr-TR.rc @@ -267,4 +267,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Kaldırmak istediğinizden emin misiniz %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/uk-UA.rc b/base/applications/rapps/lang/uk-UA.rc index 9836138bcca..f3c6fd904f3 100644 --- a/base/applications/rapps/lang/uk-UA.rc +++ b/base/applications/rapps/lang/uk-UA.rc @@ -268,4 +268,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/zh-CN.rc b/base/applications/rapps/lang/zh-CN.rc index b2ba23b0853..9ef28009d91 100644 --- a/base/applications/rapps/lang/zh-CN.rc +++ b/base/applications/rapps/lang/zh-CN.rc @@ -269,4 +269,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/zh-HK.rc b/base/applications/rapps/lang/zh-HK.rc index a1959f2d605..6d3492616f6 100644 --- a/base/applications/rapps/lang/zh-HK.rc +++ b/base/applications/rapps/lang/zh-HK.rc @@ -266,4 +266,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END diff --git a/base/applications/rapps/lang/zh-TW.rc b/base/applications/rapps/lang/zh-TW.rc index 2c8badd2915..6e0584d8b6e 100644 --- a/base/applications/rapps/lang/zh-TW.rc +++ b/base/applications/rapps/lang/zh-TW.rc @@ -266,4 +266,5 @@ END STRINGTABLE BEGIN IDS_INSTGEN_CONFIRMUNINST "Are you sure you want to uninstall %s?" + IDS_INSTGEN_CONFIRMINSTRUNAPP "Installation complete, run %s now?" END