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

Reply via email to