From 1c5e7b6998d252936d1e5197a7716d7c326b5e30 Mon Sep 17 00:00:00 2001 From: SimplestStudio Date: Tue, 22 Oct 2024 13:13:12 +0300 Subject: [PATCH] [win] fix icon background in OpenWith menu for Win10 --- win-linux/extras/projicons/res/icons/menu.ico | Bin 0 -> 44278 bytes win-linux/extras/projicons/src/resource.h | 1 + win-linux/extras/projicons/version.rc | 1 + win-linux/package/windows/associate_page.iss | 5 +++++ 4 files changed, 7 insertions(+) create mode 100644 win-linux/extras/projicons/res/icons/menu.ico diff --git a/win-linux/extras/projicons/res/icons/menu.ico b/win-linux/extras/projicons/res/icons/menu.ico new file mode 100644 index 0000000000000000000000000000000000000000..fbd7a861cebba7e0f72f19af2be45c11df16ad13 GIT binary patch literal 44278 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 literal 0 HcmV?d00001 diff --git a/win-linux/extras/projicons/src/resource.h b/win-linux/extras/projicons/src/resource.h index b6c2b3e2d..bb568e2b4 100644 --- a/win-linux/extras/projicons/src/resource.h +++ b/win-linux/extras/projicons/src/resource.h @@ -31,6 +31,7 @@ #define IDI_ICON31 131 #define IDI_ICON32 132 #define IDI_ICON33 133 +#define IDI_ICON34 134 #define IDS_DOCX 1000 #define IDS_XLSX 1001 diff --git a/win-linux/extras/projicons/version.rc b/win-linux/extras/projicons/version.rc index 48fd2bc1a..e98a7afa2 100644 --- a/win-linux/extras/projicons/version.rc +++ b/win-linux/extras/projicons/version.rc @@ -34,6 +34,7 @@ IDI_ICON30 ICON DISCARDABLE "./res/icons/fb2.ico" IDI_ICON31 ICON DISCARDABLE "./res/icons/dotx.ico" IDI_ICON32 ICON DISCARDABLE "./res/icons/oxps.ico" IDI_ICON33 ICON DISCARDABLE "./res/icons/xlsb.ico" +IDI_ICON34 ICON DISCARDABLE "./res/icons/menu.ico" #include #include "src/version.h" diff --git a/win-linux/package/windows/associate_page.iss b/win-linux/package/windows/associate_page.iss index 8949f8da1..fa3a463d7 100644 --- a/win-linux/package/windows/associate_page.iss +++ b/win-linux/package/windows/associate_page.iss @@ -2169,6 +2169,7 @@ var ext, progId1, progId2: string; argsArray: TArrayOfString; cleanExts, extensionInfo: TArrayOfString; + version: TWindowsVersion; prefix, str: string; begin isFullAssociation := CheckCommandlineParam('/FULLASSOCIATION'); @@ -2176,6 +2177,7 @@ begin initExtensions(); end; + GetWindowsVersionEx(version); for i := 0 to GetArrayLength(AudioExts) - 1 do begin Explode(argsArray, ExtensionRegistryInfo[i],':'); @@ -2188,6 +2190,9 @@ begin RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\Classes\' + argsArray[0], 'AppUserModelID', ExpandConstant('{#APP_USER_MODEL_ID}')); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\Classes\' + argsArray[0] + '\DefaultIcon', '', ExpandConstant('{app}\{#iconsExe},' + argsArray[2])); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\Classes\' + argsArray[0] + '\shell\open\command', '', ExpandConstant('"{app}\{#iconsExe}" "%1"')); + if (version.Major = 10) and (version.Minor = 0) and (version.Build < 22000) then begin + RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\Classes\' + argsArray[0] + '\Application', 'ApplicationIcon', ExpandConstant('{app}\{#iconsExe},33')); + end; //end; ext := LowerCase(AudioExts[i]);