[Installer] Gracefully terminate PowerToys process before updating do… (#20430)

* [Installer] Gracefully terminate PowerToys process before updating dotnet
This commit is contained in:
Andrey Nekrasov 2022-09-09 18:11:33 +03:00 committed by GitHub
parent 7b0f97597d
commit f19ba94a2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 4 deletions

View File

@ -112,7 +112,6 @@ atlstr
Attribs
attrs
Atyrau
augustkarlstedt
aumid
Aut
Authenticode
@ -144,7 +143,6 @@ bck
Belarus
betadele
betsegaw
bezgumption
BGR
bgra
bhid
@ -540,6 +538,7 @@ eltociear
emmintrin
Emoji
emptyrecyclebin
ENABLEDELAYEDEXPANSION
ENABLEDPOPUP
endforeach
endian
@ -560,6 +559,7 @@ ERASEBKGND
EREOF
EResize
ERole
ERRORLEVEL
ERRORMESSAGE
ERRORTITLE
ESettings
@ -1352,6 +1352,7 @@ NDEBUG
Ndombe
ndp
NEEDDISPATCH
NEQ
NESW
netcore
netcoreapp
@ -1470,7 +1471,6 @@ openxmlformats
OPTIMIZEFORINVOKE
ORAW
ORPHANEDDIALOGTITLE
osfanbuff
oss
ostr
ostream
@ -1752,7 +1752,6 @@ RNumber
roadmap
robmensching
Roboto
rohanrdy
rooler
roslyn
Rothera

View File

@ -72,6 +72,16 @@
<util:RegistrySearch Variable="DetectedVCRedistVersion" Root="HKLM" Key="Software\Microsoft\VisualStudio\14.0\VC\Runtimes\$(var.PowerToysPlatform)" Value="Minor" Result="value" Format="raw" />
<Chain>
<ExePackage
Name="terminate_powertoys.cmd"
Cache="no"
Compressed="yes"
Id="TerminatePowerToys"
SourceFile="terminate_powertoys.cmd"
Permanent="yes"
PerMachine="yes"
Vital="no">
</ExePackage>
<ExePackage
Name="windowsdesktop-runtime-6.0.8-win-$(var.PowerToysPlatform).exe"
Compressed="no"

View File

@ -0,0 +1,12 @@
@echo off
setlocal ENABLEDELAYEDEXPANSION
@REM We loop here until taskkill cannot find a PowerToys process. We can't use /F flag, because it
@REM doesn't give application an opportunity to cleanup. Thus we send WM_CLOSE which is being caught
@REM by multiple windows running a msg loop in PowerToys.exe process, which we close one by one.
for /l %%x in (1, 1, 100) do (
taskkill /IM PowerToys.exe 1>NUL 2>NUL
if !ERRORLEVEL! NEQ 0 goto quit
)
:quit