From f52e1e1a213d0389a7830e434d502c60c09e18cf Mon Sep 17 00:00:00 2001 From: spider2048 Date: Thu, 9 Nov 2023 03:05:56 +0530 Subject: [PATCH 1/2] Fix when GUI Applications want to attach to the shell's console window (for scoopcs) --- supporting/shimexe/bin/checksum.sha256 | 2 +- supporting/shimexe/bin/checksum.sha512 | 2 +- supporting/shimexe/bin/shim.exe | Bin 7680 -> 7680 bytes supporting/shimexe/shim.cs | 13 ++++++++++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/supporting/shimexe/bin/checksum.sha256 b/supporting/shimexe/bin/checksum.sha256 index 7a67617054..2f462bd732 100644 --- a/supporting/shimexe/bin/checksum.sha256 +++ b/supporting/shimexe/bin/checksum.sha256 @@ -1 +1 @@ -9726c3a429009a5b22bd92cb8ab96724c670e164e7240e83f27b7c8b7bd1ca39 *shim.exe +1e4a9e4b305ef78b375159b25e2f8a90243584efd56ed6994072a8dfc2147ade *shim.exe diff --git a/supporting/shimexe/bin/checksum.sha512 b/supporting/shimexe/bin/checksum.sha512 index 915750f159..5344ca9314 100644 --- a/supporting/shimexe/bin/checksum.sha512 +++ b/supporting/shimexe/bin/checksum.sha512 @@ -1 +1 @@ -18a737674afde4d5e7e1647d8d1e98471bb260513c57739651f92fdf1647d76c92f0cd0a9bb458daf4eae4bdab9d31404162acf6d74a041e6415752b75d722e0 *shim.exe +f580833905e45b02a433c03647fb0caa3692336c8bde9621c286684629c78d1c56a292bea2887ea0ae941b8beec50322f31975c23ab5644c2b85f3c2108f383d *shim.exe diff --git a/supporting/shimexe/bin/shim.exe b/supporting/shimexe/bin/shim.exe index f6f3930334a09939684a8bdd25210df16304afe8..19a7fa36e9bc24035835d54d3530741d6528135b 100644 GIT binary patch delta 2247 zcmZ8je{2-T75-*+cg}m~BVOP6dF(+7Cm*w~zVY}EXP#)3w-;u9@;Pxe6k?_GdMD5rHp_fC zC|1g?iSURxoM|b*JX?tp4vuDl9k&63Is&NhVzNElA#L$uI3T}RAERkS@sq%qA0>?! zHy9fJR<;N?ydry+yPoo0AeyN1EqWZTCHE7Ae5B5ow6um>t>$u4yF|Tc<~`a9TS|3W z$GjMqmr~?GJ;93wX%6*4!-81Mq4jMySi&(;{dOPc8y9ApIOIHjoUbvGUFX|6Q!3$B z47IMWw51~b7N??^%k~$9oAau3Jb8^S$lW5kCyd%nDb_-jmNNW`X{NV*7N*V5gzN0Z zgnR3?g!nY zaW`n=kndD(kSD1RRuh9Y8rBjPtm%(ggLY0;)!$QH6*)1|`BRl!D*XbuI#VV{gS z3P%jCm*?%<(55?!JJqBWMMj;sqxh%wSxcb@mk~wWIz#^t#Uw3RvuYzWe^p&1CahPu z_PW%T1A@GaN#pu0TTeX1pbEdXH5RN77<#>Z-d2$I2lgUt7yHSVGL6C^0s*Y8P zW9Re~dd1G^lekMLTp(9y5`Dza+Zv}0f7RH3XYkKb`&=^krla|L2K$ZWgyE-EKkd8G zU*>Qh`gx*9mBwQR&)AwTGrUe{?g|~~1`~8)6ayl~a}1guO=BkGsl8&MVOkYMN$@v? zk5(tuq~N`%s4n&O|51aYd_?G%W5M-?bBvYPkN`%J z^?9kH2G!Ht(CZcTZ~2@^V_R0Q`*wPsEo(r(Q8VeY_N-{Yy|?DdoP5y8Zz6^{PU?O= z#luKkAX?bZPTJT*bnqE-^$rsw7~##W!XK4@i=-`i_0C#)t;(m|{5$AV7I=o?ZsIR!68I|@Nc@}$1kxtxADCp`7VwDrJoCJogNBdbWtGJUW-T8N z<3}P-46Qt-uvT@D|6O$88}QYqa2(It-LyPLA3eK?Reh^0dhtE{N^Ga;3Y|`&kG(&I zchvx%$CLIK&|%WNKpY}(w}*+#?T7FJejvxlA5jx{8NQez|B_O~F7j&nAH_NJtH&An zg!N;hZ_Vp0@)e?Goin`r8xBp@6q5L*d=nQDmsiN=?Q7iiHs?Ct zuJ{KYv=)hv@H6Ri?NOdPiNH#VRc52-aN23)2G*+8qKb`MCtSAacCm)-eTkUBIpPw$ zBTgfW_cx0s^oVADYj~p9So)pTqkPRa3kx25yHPkO@@{Vw5u7yIMVA?4y#LxB$Bl3{ zT36_}=@!GWSIFVyC8Oc>IpwU?~_K-ZOIW zf#8wwId4NlFgCR1;R(hV=g&%M`^4yIUvbNUvGJ+!ns=z??6&V-YCV4H?qeeUV)OGC zy28oY0f!rs>ABz6HVD^-kX1ZEI{aIr9NwSwYSWc}HS`HOHP6g6r({bZd?xv?xkah} QIC67g&TITo%(O@T3;B&}T>t<8 delta 2128 zcmZ8i3v5$W82-+=_nxlpnCrT>W1G@B*e=}|qbLM3KoP{6$;4&AlrRAa86tPK1AHL2 zzKE|FmzxkD#AsY1D$d7z#26C=6$olD#)#qr69`cthJ@e?jo&%jV(_N@{_p?KfBtj+ z$8C#k#kR*Ev=5yadSc+wTKP$K;H4#^KMcC8dPas) z%e;&ArR0RP$0|l5Dw&Nc=}jb0bx$AjQ)7NWyww6L1l}fA8Ie{6yh(I!P#L{uV;$F+ zM9giVwct1Epwe|IqRG;x_E5=F`EFhR$+V0Md)yUi&Z@B2M3VBFiQW_qErbzk)&H#C zR4$dImX(%-9_!5xsmw*vZKWyGQYd91imbmqW~<3;vL>W;otvgeD`Q%08FaHj(Q#+D zabW7V0y`-WDe}(#eD8*}1!jRF!}U|vcXi?nxh{JB!miwWN}Dx55*%};he^QBBOBDI z8lS0~Ib?Zsi8!D7*)8>K@^ZLAT8_e<24~3K_64ZdBa16lpA|us+HFU0!kTU=EWl5Q zz_AADe_Zs@Qe$?_f#$o^eqz*mmwV4hZMj8|`{*;SciVblHG?X=XKQS-jxzKNd$+Cd zCwUp##VYbz9;2|q_+-qH+tr{G!E#&UVICjB-(rxL1U6`3dODeMEV0_{gwdiRhF55t z4BtW&<2asA8Z|-9sw>Ag)Djp^ZEPqBhTVWZOM8yvJXPZ=H;numlAbdCqi;KX)_B=hJr zJt|@#9acArk%nolMcpc*On?JHZK)^--SQFbtaH1#0N16pK7e~H-xn1q=PRYv!}0+U z$NW+4F{c@o*g2{#R*#4TJ{r|d$?YPA%lHNY+p31xmMY9M+CbHt_Oqf2i_TkHVzm1> zAA?-eEqRppmDuZ3SXjkw+2|lT$eQumL=0gi2fPGtDSD3i=3aXPhy7)mXl#zr+qk7AUuTEeHP=*0_` zi`(#wXeK^lHRBF6s%hjuifOn9X*ClM;VHX~mLh%h>J_Z#S0cx`dPgjxWgmT>!$LOp zMLcMCVVa5mx=+zf#kG5g)%F^^jwj?ga!+}97Y(97-lY`r67o{|Z^ehWM%~Y#+pOn^ zY3nuOG5HqpFZrI~9}p8(fen0H9>f=LydX;%O%-bY_jBgw2{M!fZ{OXyH5ZA~B9Ph&A{^Jdb*O zD{9z)3H+AhWqi!{DQ9iQe#{pZ!ffZ|!a<9cz6fC{XZLc3JL?G8MYiX>XEQslf278q z7IDzf^KE_f`oG_4_FGSv6ta`N0*A>?@FtkAXG7@ELT{xasB#^{DNEi`tLxnqGD6|>2+(q{_Xcex%UsB-u~su zo1YGjR&))|jaP}_rb<6JQdwTMWAray-{9?R@K0s6+?frk6K8^(5?hALl7BjKUv@ZF K`>Pme4gCw%u~YH@ diff --git a/supporting/shimexe/shim.cs b/supporting/shimexe/shim.cs index 1337341ef6..b7a2c0e56e 100644 --- a/supporting/shimexe/shim.cs +++ b/supporting/shimexe/shim.cs @@ -21,6 +21,12 @@ class Program { out PROCESS_INFORMATION lpProcessInformation); const int ERROR_ELEVATION_REQUIRED = 740; + [DllImport("kernel32.dll", SetLastError = true)] + private static extern bool AttachConsole(int dwProcessId); + + [DllImport("kernel32.dll", SetLastError = true)] + private static extern IntPtr GetConsoleWindow(); + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] struct STARTUPINFO { public Int32 cb; @@ -89,7 +95,12 @@ internal struct PROCESS_INFORMATION { cmd_args += pass_args; } if(!string.IsNullOrEmpty(cmd_args)) cmd_args = " " + cmd_args; - var cmd = "\"" + path + "\"" + cmd_args; + var cmd = path + cmd_args; + + // Fix when GUI applications want to write to a console + if (GetConsoleWindow() == IntPtr.Zero) { + AttachConsole(-1); + } if(!CreateProcess(null, cmd, IntPtr.Zero, IntPtr.Zero, bInheritHandles: true, From e6ca7a67c22e28ea7dd1cb4cd73ce02dec809aea Mon Sep 17 00:00:00 2001 From: Hsiao-nan Cheung Date: Wed, 20 Mar 2024 22:13:54 +0800 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c29b636dda..caf89b9fca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ - **scoop-checkup:** Don't throw 7zip error when external 7zip is used ([#5703](https://github.com/ScoopInstaller/Scoop/issues/5703)) - **config:** Warn users about misconfigured GitHub token ([#5777](https://github.com/ScoopInstaller/Scoop/issues/5777)) - **update/uninstall:** Remove items from PATH correctly ([#5833](https://github.com/ScoopInstaller/Scoop/issues/5833)) +- **shim:** Allow GUI applications to attach to the shell's console when launched using the GUI shim ([#5721](https://github.com/ScoopInstaller/Scoop/issues/5721)) ### Performance Improvements