https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f3c750787b8aa5a504c52…
commit f3c750787b8aa5a504c521067591c2b829f15cfe
Author: Whindmar Saksit <whindsaks(a)proton.me>
AuthorDate: Tue Feb 18 13:23:25 2025 +0100
Commit: GitHub <noreply(a)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