Merge branch 'microsoft/main' into dev/seraphima/tests/29246-fancyzones-tests-initial-step
13
.github/actions/spell-check/allow/allow.txt
vendored
@@ -1,13 +0,0 @@
|
|||||||
cloudai
|
|
||||||
bkmeneguello
|
|
||||||
FWest
|
|
||||||
gdnbaselines
|
|
||||||
github
|
|
||||||
https
|
|
||||||
obairka
|
|
||||||
sdl
|
|
||||||
ssh
|
|
||||||
ubuntu
|
|
||||||
unuing
|
|
||||||
workarounds
|
|
||||||
wil
|
|
||||||
134
.github/actions/spell-check/allow/code.txt
vendored
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
# COLORS
|
||||||
|
|
||||||
|
argb
|
||||||
|
bgra
|
||||||
|
BLACKONWHITE
|
||||||
|
BLUEGRAY
|
||||||
|
BRIGHTGREEN
|
||||||
|
COLORONCOLOR
|
||||||
|
DARKPURPLE
|
||||||
|
DARKTEAL
|
||||||
|
DARKYELLOW
|
||||||
|
Farbraum
|
||||||
|
ICEBLUE
|
||||||
|
LIGHTORANGE
|
||||||
|
LIGHTTURQUOISE
|
||||||
|
NCol
|
||||||
|
OLIVEGREEN
|
||||||
|
PALEBLUE
|
||||||
|
PArgb
|
||||||
|
Pbgra
|
||||||
|
WHITEONBLACK
|
||||||
|
|
||||||
|
|
||||||
|
# FILES
|
||||||
|
|
||||||
|
AYUV
|
||||||
|
bak
|
||||||
|
exa
|
||||||
|
exabyte
|
||||||
|
Gbits
|
||||||
|
Gbps
|
||||||
|
gcode
|
||||||
|
Mbits
|
||||||
|
MBs
|
||||||
|
mkv
|
||||||
|
msix
|
||||||
|
nupkg
|
||||||
|
petabyte
|
||||||
|
resw
|
||||||
|
resx
|
||||||
|
Stereolithography
|
||||||
|
terabyte
|
||||||
|
UYVY
|
||||||
|
xbf
|
||||||
|
YUY
|
||||||
|
YUYV
|
||||||
|
YVU
|
||||||
|
YVYU
|
||||||
|
zipfolder
|
||||||
|
|
||||||
|
|
||||||
|
# FONTS
|
||||||
|
|
||||||
|
Consolas
|
||||||
|
Neue
|
||||||
|
Noto
|
||||||
|
Roboto
|
||||||
|
Segoe
|
||||||
|
|
||||||
|
|
||||||
|
# IN URLs
|
||||||
|
|
||||||
|
accessibilityinsights
|
||||||
|
arik
|
||||||
|
epicgames
|
||||||
|
fwlink
|
||||||
|
joefinapps
|
||||||
|
lepo
|
||||||
|
linkedin
|
||||||
|
oblitum
|
||||||
|
robmensching
|
||||||
|
sinclairinat
|
||||||
|
stylecop
|
||||||
|
uipi
|
||||||
|
yinwang
|
||||||
|
|
||||||
|
|
||||||
|
# KEYS
|
||||||
|
|
||||||
|
altdown
|
||||||
|
BUTTONUP
|
||||||
|
CTRLALTDEL
|
||||||
|
Ctrls
|
||||||
|
EXSEL
|
||||||
|
HOLDENTER
|
||||||
|
HOLDESC
|
||||||
|
KBDLLHOOKSTRUCT
|
||||||
|
keyevent
|
||||||
|
LAlt
|
||||||
|
LBUTTON
|
||||||
|
LBUTTONDBLCLK
|
||||||
|
LBUTTONDOWN
|
||||||
|
LBUTTONUP
|
||||||
|
LCONTROL
|
||||||
|
LCtrl
|
||||||
|
LEFTDOWN
|
||||||
|
LEFTUP
|
||||||
|
MBUTTON
|
||||||
|
MBUTTONDBLCLK
|
||||||
|
MBUTTONDOWN
|
||||||
|
MBUTTONUP
|
||||||
|
MIDDLEDOWN
|
||||||
|
MIDDLEUP
|
||||||
|
NCRBUTTONDBLCLK
|
||||||
|
NCRBUTTONDOWN
|
||||||
|
NCRBUTTONUP
|
||||||
|
NUMLOCK
|
||||||
|
RBUTTON
|
||||||
|
RBUTTONDBLCLK
|
||||||
|
RBUTTONDOWN
|
||||||
|
RBUTTONUP
|
||||||
|
RCONTROL
|
||||||
|
RCtrl
|
||||||
|
RIGHTDOWN
|
||||||
|
RIGHTUP
|
||||||
|
VKTAB
|
||||||
|
winkey
|
||||||
|
WMKEYDOWN
|
||||||
|
WMKEYUP
|
||||||
|
WMSYSKEYDOWN
|
||||||
|
WMSYSKEYUP
|
||||||
|
XBUTTON
|
||||||
|
XBUTTONDBLCLK
|
||||||
|
XBUTTONDOWN
|
||||||
|
XBUTTONUP
|
||||||
|
XDOWN
|
||||||
|
|
||||||
|
|
||||||
|
# MATH
|
||||||
|
|
||||||
|
artanh
|
||||||
|
arsinh
|
||||||
|
arcosh
|
||||||
|
|
||||||
138
.github/actions/spell-check/allow/names.txt
vendored
@@ -1,57 +1,155 @@
|
|||||||
ABradley
|
# POWERTOYS
|
||||||
|
|
||||||
|
alwaysontop
|
||||||
|
colorpicker
|
||||||
|
fancyzones
|
||||||
|
imageresizer
|
||||||
|
kbm
|
||||||
|
keyboardmanager
|
||||||
|
markdownpreviewhandler
|
||||||
|
mwb
|
||||||
|
oobe
|
||||||
|
pasteplain
|
||||||
|
poweraccent
|
||||||
|
powerlauncher
|
||||||
|
POWEROCR
|
||||||
|
powerpreview
|
||||||
|
powerrename
|
||||||
|
powertoy
|
||||||
|
powertoys
|
||||||
|
previewpane
|
||||||
|
ptrun
|
||||||
|
registrypreview
|
||||||
|
rooler
|
||||||
|
scoobe
|
||||||
|
shortcutguide
|
||||||
|
videoconference
|
||||||
|
|
||||||
|
|
||||||
|
# USERS
|
||||||
|
|
||||||
|
alekhyareddy
|
||||||
Aleks
|
Aleks
|
||||||
|
angularsen
|
||||||
|
arjunbalgovind
|
||||||
Ashish
|
Ashish
|
||||||
azchohfi
|
|
||||||
Baltazar
|
Baltazar
|
||||||
Bao
|
Bao
|
||||||
bdoserror
|
betadele
|
||||||
|
betsegaw
|
||||||
|
bricelam
|
||||||
Chinh
|
Chinh
|
||||||
|
chrdavis
|
||||||
|
Chrzan
|
||||||
|
clayton
|
||||||
Coplen
|
Coplen
|
||||||
crutkas
|
crutkas
|
||||||
dependabot
|
damienleroy
|
||||||
Deuchert
|
davidegiacometti
|
||||||
|
debian
|
||||||
|
Delimarsky
|
||||||
|
Deondre
|
||||||
ductdo
|
ductdo
|
||||||
edwinzap
|
|
||||||
Essey
|
Essey
|
||||||
|
frankychen
|
||||||
|
gabime
|
||||||
|
Galaxi
|
||||||
Garside
|
Garside
|
||||||
Gershaft
|
Gershaft
|
||||||
Gokce
|
Gokce
|
||||||
Guo
|
Guo
|
||||||
hallatore
|
hanselman
|
||||||
Harmath
|
Harmath
|
||||||
|
Heiko
|
||||||
Hemmerlein
|
Hemmerlein
|
||||||
|
hlaueriksson
|
||||||
|
Horvalds
|
||||||
|
htcfreek
|
||||||
Huynh
|
Huynh
|
||||||
Jaswal
|
Jaswal
|
||||||
jefflord
|
jefflord
|
||||||
|
jyuwono
|
||||||
Kamra
|
Kamra
|
||||||
Kantarci
|
Kantarci
|
||||||
Karthick
|
Karthick
|
||||||
kevinguo
|
kevinguo
|
||||||
Krigun
|
Krigun
|
||||||
|
Lambson
|
||||||
|
Laute
|
||||||
|
laviusmotileng
|
||||||
Luecking
|
Luecking
|
||||||
Mahalingam
|
Mahalingam
|
||||||
|
Markovic
|
||||||
|
martinchrzan
|
||||||
|
martinmoene
|
||||||
|
Melman
|
||||||
Mikhayelyan
|
Mikhayelyan
|
||||||
mshtang
|
|
||||||
Myrvold
|
Myrvold
|
||||||
naveensrinivasan
|
Nemeth
|
||||||
nVidia
|
nielslaute
|
||||||
|
oldnewthing
|
||||||
|
palenshus
|
||||||
|
pedrolamas
|
||||||
|
peteblois
|
||||||
phoboslab
|
phoboslab
|
||||||
Ponten
|
Ponten
|
||||||
Pooja
|
Pooja
|
||||||
robmen
|
Quriz
|
||||||
|
randyrants
|
||||||
|
ricardosantos
|
||||||
robmikh
|
robmikh
|
||||||
|
Rutkas
|
||||||
|
ryanbodrug
|
||||||
|
saahmedm
|
||||||
|
sachaple
|
||||||
|
Santossio
|
||||||
Schoen
|
Schoen
|
||||||
skycommand
|
Sekan
|
||||||
snickler
|
Seraphima
|
||||||
sinclairinat
|
skttl
|
||||||
streamjsonrpc
|
somil
|
||||||
|
Soref
|
||||||
|
stefan
|
||||||
Szablewski
|
Szablewski
|
||||||
|
Tadele
|
||||||
|
talynone
|
||||||
|
TBM
|
||||||
tilovell
|
tilovell
|
||||||
TheJoeFin
|
|
||||||
Triet
|
Triet
|
||||||
Vidia
|
ycv
|
||||||
WEX
|
|
||||||
WWL
|
|
||||||
yifan
|
|
||||||
Yuniardi
|
Yuniardi
|
||||||
|
yuyoyuppe
|
||||||
Zoltan
|
Zoltan
|
||||||
|
Zykova
|
||||||
|
|
||||||
|
|
||||||
|
# OTHERS
|
||||||
|
|
||||||
|
Controlz
|
||||||
|
cortana
|
||||||
|
fancymouse
|
||||||
|
firefox
|
||||||
|
Inkscape
|
||||||
|
Markdig
|
||||||
|
modernwpf
|
||||||
|
Moq
|
||||||
|
mozilla
|
||||||
|
mspaint
|
||||||
|
Newtonsoft
|
||||||
|
onenote
|
||||||
|
Quickime
|
||||||
|
regedit
|
||||||
|
roslyn
|
||||||
|
Vanara
|
||||||
|
WEX
|
||||||
|
windowwalker
|
||||||
|
winui
|
||||||
|
winuiex
|
||||||
|
wix
|
||||||
|
wordpad
|
||||||
|
WWL
|
||||||
|
xamlstyler
|
||||||
|
Xavalon
|
||||||
|
Xbox
|
||||||
|
Youdao
|
||||||
|
|
||||||
|
|||||||
11
.github/actions/spell-check/allow/temporary.txt
vendored
@@ -1,11 +0,0 @@
|
|||||||
etw
|
|
||||||
filetime
|
|
||||||
flyouts
|
|
||||||
lnks
|
|
||||||
reparented
|
|
||||||
screenshots
|
|
||||||
SIDs
|
|
||||||
subkeys
|
|
||||||
TApp
|
|
||||||
websites
|
|
||||||
wmi
|
|
||||||
17
.github/actions/spell-check/excludes.txt
vendored
@@ -2,18 +2,19 @@
|
|||||||
(?:^|/)(?i)COPYRIGHT
|
(?:^|/)(?i)COPYRIGHT
|
||||||
(?:^|/)(?i)LICEN[CS]E
|
(?:^|/)(?i)LICEN[CS]E
|
||||||
(?:^|/)3rdparty/
|
(?:^|/)3rdparty/
|
||||||
(?:^|/)go\.sum$
|
|
||||||
(?:^|/)FilePreviewCommon/Assets/Monaco/customLanguages/
|
(?:^|/)FilePreviewCommon/Assets/Monaco/customLanguages/
|
||||||
(?:^|/)FilePreviewCommon/Assets/Monaco/generateLanguagesJson.html
|
(?:^|/)FilePreviewCommon/Assets/Monaco/generateLanguagesJson.html
|
||||||
(?:^|/)FilePreviewCommon/Assets/Monaco/index.html
|
(?:^|/)FilePreviewCommon/Assets/Monaco/index.html
|
||||||
(?:^|/)FilePreviewCommon/Assets/Monaco/monaco_languages.json
|
(?:^|/)FilePreviewCommon/Assets/Monaco/monaco_languages.json
|
||||||
(?:^|/)FilePreviewCommon/Assets/Monaco/monacoSpecialLanguages.js
|
(?:^|/)FilePreviewCommon/Assets/Monaco/monacoSpecialLanguages.js
|
||||||
|
(?:^|/)go\.sum$
|
||||||
(?:^|/)monacoSRC/
|
(?:^|/)monacoSRC/
|
||||||
(?:^|/)package(?:-lock|)\.json$
|
(?:^|/)package(?:-lock|)\.json$
|
||||||
(?:^|/)Pipfile$
|
(?:^|/)Pipfile$
|
||||||
(?:^|/)power-rename-ui-flags$
|
(?:^|/)power-rename-ui-flags$
|
||||||
(?:^|/)pyproject.toml
|
(?:^|/)pyproject.toml
|
||||||
(?:^|/)requirements(?:-dev|-doc|-test|)\.txt$
|
(?:^|/)requirements(?:-dev|-doc|-test|)\.txt$
|
||||||
|
(?:^|/)sample\.qoi$
|
||||||
(?:^|/)timezones\.json$
|
(?:^|/)timezones\.json$
|
||||||
(?:^|/)vendor/
|
(?:^|/)vendor/
|
||||||
(?:^|/)WindowsSettings\.json$
|
(?:^|/)WindowsSettings\.json$
|
||||||
@@ -96,30 +97,30 @@
|
|||||||
^\.gitmodules$
|
^\.gitmodules$
|
||||||
^\Q.github/workflows/spelling2.yml\E$
|
^\Q.github/workflows/spelling2.yml\E$
|
||||||
^\Q.pipelines/ESRPSigning_core.json\E$
|
^\Q.pipelines/ESRPSigning_core.json\E$
|
||||||
^\Qinstaller/PowerToysSetup/Settings.wxs\E$
|
|
||||||
^\Qsrc/common/ManagedCommon/ColorFormatHelper.cs\E$
|
|
||||||
^\Q.pipelines/sdl.gdnbaselines\E$
|
^\Q.pipelines/sdl.gdnbaselines\E$
|
||||||
|
^\Qinstaller/PowerToysSetup/Settings.wxs\E$
|
||||||
^\Qsrc/common/FilePreviewCommon/Assets/Monaco/monaco_languages.json\E$
|
^\Qsrc/common/FilePreviewCommon/Assets/Monaco/monaco_languages.json\E$
|
||||||
|
^\Qsrc/common/ManagedCommon/ColorFormatHelper.cs\E$
|
||||||
^\Qsrc/common/notifications/BackgroundActivatorDLL/cpp.hint\E$
|
^\Qsrc/common/notifications/BackgroundActivatorDLL/cpp.hint\E$
|
||||||
^\Qsrc/modules/colorPicker/ColorPickerUI/Assets/ColorPicker/colorPicker.cur\E$
|
^\Qsrc/modules/colorPicker/ColorPickerUI/Assets/ColorPicker/colorPicker.cur\E$
|
||||||
^\Qsrc/modules/colorPicker/ColorPickerUI/Shaders/GridShader.cso\E$
|
^\Qsrc/modules/colorPicker/ColorPickerUI/Shaders/GridShader.cso\E$
|
||||||
^\Qsrc/modules/MouseUtils/MouseJumpUI/MainForm.resx\E$
|
^\Qsrc/modules/MouseUtils/MouseJumpUI/MainForm.resx\E$
|
||||||
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmAbout.cs\E$
|
|
||||||
^\Qsrc/modules/MouseWithoutBorders/ModuleInterface/generateSecurityDescriptor.h\E$
|
|
||||||
^\Qsrc/modules/MouseUtils/MouseJumpUI/NativeMethods/User32/UI/WindowsAndMessaging/User32.SYSTEM_METRICS_INDEX.cs\E$
|
^\Qsrc/modules/MouseUtils/MouseJumpUI/NativeMethods/User32/UI/WindowsAndMessaging/User32.SYSTEM_METRICS_INDEX.cs\E$
|
||||||
|
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmAbout.cs\E$
|
||||||
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmInputCallback.resx\E$
|
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmInputCallback.resx\E$
|
||||||
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmLogon.resx\E$
|
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmLogon.resx\E$
|
||||||
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmMatrix.resx\E$
|
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmMatrix.resx\E$
|
||||||
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmScreen.resx\E$
|
^\Qsrc/modules/MouseWithoutBorders/App/Form/frmScreen.resx\E$
|
||||||
|
^\Qsrc/modules/MouseWithoutBorders/ModuleInterface/generateSecurityDescriptor.h\E$
|
||||||
^\Qsrc/modules/peek/Peek.Common/NativeMethods.txt\E$
|
^\Qsrc/modules/peek/Peek.Common/NativeMethods.txt\E$
|
||||||
^\Qsrc/modules/previewpane/SvgPreviewHandler/SvgHTMLPreviewGenerator.cs\E$
|
^\Qsrc/modules/previewpane/SvgPreviewHandler/SvgHTMLPreviewGenerator.cs\E$
|
||||||
^\Qsrc/modules/previewpane/UnitTests-StlThumbnailProvider/HelperFiles/sample.stl\E$
|
^\Qsrc/modules/previewpane/UnitTests-StlThumbnailProvider/HelperFiles/sample.stl\E$
|
||||||
^\Qtools/project_template/ModuleTemplate/resource.h\E$
|
^\Qtools/project_template/ModuleTemplate/resource.h\E$
|
||||||
^doc/devdocs/akaLinks\.md$
|
^doc/devdocs/akaLinks\.md$
|
||||||
^src/modules/MouseWithoutBorders/App/Form/.*\.resx$
|
|
||||||
^src/modules/MouseWithoutBorders/App/Form/.*\.Designer\.cs$
|
|
||||||
^src/modules/MouseWithoutBorders/App/Helper/.*\.resx$
|
|
||||||
^src/modules/MouseWithoutBorders/App/.*/NativeMethods\.cs$
|
^src/modules/MouseWithoutBorders/App/.*/NativeMethods\.cs$
|
||||||
|
^src/modules/MouseWithoutBorders/App/Form/.*\.Designer\.cs$
|
||||||
|
^src/modules/MouseWithoutBorders/App/Form/.*\.resx$
|
||||||
|
^src/modules/MouseWithoutBorders/App/Helper/.*\.resx$
|
||||||
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$
|
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$
|
||||||
^tools/Verification scripts/Check preview handler registration\.ps1$
|
^tools/Verification scripts/Check preview handler registration\.ps1$
|
||||||
ignore$
|
ignore$
|
||||||
|
|||||||
562
.github/actions/spell-check/expect.txt
vendored
3
.github/actions/spell-check/patterns.txt
vendored
@@ -118,6 +118,9 @@ aka\.ms/[a-zA-Z0-9]+
|
|||||||
# YouTube url
|
# YouTube url
|
||||||
\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
|
\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
|
||||||
|
|
||||||
|
# power shell gallery website
|
||||||
|
\bpowershellgallery.com/[-_a-zA-Z0-9()=./%]*
|
||||||
|
|
||||||
# uuid: (or CompGUIDPrefix)
|
# uuid: (or CompGUIDPrefix)
|
||||||
L?(["']|[-<({>]|\b)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{10,12}(?:\g{-1}|[<})>])
|
L?(["']|[-<({>]|\b)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{10,12}(?:\g{-1}|[<})>])
|
||||||
|
|
||||||
|
|||||||
47
.github/workflows/spelling2.yml
vendored
@@ -107,31 +107,36 @@ jobs:
|
|||||||
use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
|
use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
|
||||||
extra_dictionary_limit: 20
|
extra_dictionary_limit: 20
|
||||||
extra_dictionaries:
|
extra_dictionaries:
|
||||||
cspell:software-terms/dict/softwareTerms.txt
|
|
||||||
cspell:cpp/src/stdlib-cpp.txt
|
|
||||||
cspell:filetypes/filetypes.txt
|
|
||||||
cspell:cpp/src/stdlib-c.txt
|
|
||||||
cspell:python/src/python/python-lib.txt
|
|
||||||
cspell:lorem-ipsum/dictionary.txt
|
|
||||||
cspell:php/dict/php.txt
|
|
||||||
cspell:typescript/dict/typescript.txt
|
|
||||||
cspell:swift/src/swift.txt
|
|
||||||
cspell:fullstack/dict/fullstack.txt
|
|
||||||
cspell:node/dict/node.txt
|
|
||||||
cspell:dotnet/dict/dotnet.txt
|
|
||||||
cspell:django/dict/django.txt
|
|
||||||
cspell:python/src/python/python.txt
|
|
||||||
cspell:csharp/csharp.txt
|
|
||||||
cspell:python/src/common/extra.txt
|
|
||||||
cspell:cpp/src/compiler-msvc.txt
|
|
||||||
cspell:aws/aws.txt
|
cspell:aws/aws.txt
|
||||||
cspell:golang/dict/go.txt
|
cspell:cpp/src/compiler-clang-attributes.txt
|
||||||
cspell:java/src/java.txt
|
cspell:cpp/src/compiler-msvc.txt
|
||||||
cspell:html/dict/html.txt
|
cspell:cpp/src/lang-keywords.txt
|
||||||
|
cspell:cpp/src/stdlib-c.txt
|
||||||
|
cspell:cpp/src/stdlib-cmath.txt
|
||||||
|
cspell:cpp/src/stdlib-cpp.txt
|
||||||
|
cspell:csharp/csharp.txt
|
||||||
cspell:css/dict/css.txt
|
cspell:css/dict/css.txt
|
||||||
cspell:k8s/dict/k8s.txt
|
cspell:django/dict/django.txt
|
||||||
|
cspell:dotnet/dict/dotnet.txt
|
||||||
|
cspell:filetypes/filetypes.txt
|
||||||
|
cspell:fullstack/dict/fullstack.txt
|
||||||
|
cspell:golang/dict/go.txt
|
||||||
|
cspell:html/dict/html.txt
|
||||||
|
cspell:java/src/java.txt
|
||||||
cspell:java/src/java-terms.txt
|
cspell:java/src/java-terms.txt
|
||||||
|
cspell:k8s/dict/k8s.txt
|
||||||
|
cspell:lorem-ipsum/dictionary.txt
|
||||||
|
cspell:monkeyc/src/monkeyc_keywords.txt
|
||||||
|
cspell:node/dict/node.txt
|
||||||
|
cspell:php/dict/php.txt
|
||||||
cspell:powershell/dict/powershell.txt
|
cspell:powershell/dict/powershell.txt
|
||||||
|
cspell:python/src/common/extra.txt
|
||||||
|
cspell:python/src/python/python.txt
|
||||||
|
cspell:python/src/python/python-lib.txt
|
||||||
|
cspell:scala/dict/scala.txt
|
||||||
|
cspell:software-terms/dict/softwareTerms.txt
|
||||||
|
cspell:swift/src/swift.txt
|
||||||
|
cspell:typescript/dict/typescript.txt
|
||||||
|
|
||||||
comment-push:
|
comment-push:
|
||||||
name: Report (Push)
|
name: Report (Push)
|
||||||
|
|||||||
@@ -29,6 +29,9 @@
|
|||||||
"PowerToys.AlwaysOnTop.exe",
|
"PowerToys.AlwaysOnTop.exe",
|
||||||
"PowerToys.AlwaysOnTopModuleInterface.dll",
|
"PowerToys.AlwaysOnTopModuleInterface.dll",
|
||||||
|
|
||||||
|
"PowerToys.CmdNotFoundModuleInterface.dll",
|
||||||
|
"PowerToys.CmdNotFound.dll",
|
||||||
|
|
||||||
"PowerToys.ColorPicker.dll",
|
"PowerToys.ColorPicker.dll",
|
||||||
"PowerToys.ColorPickerUI.dll",
|
"PowerToys.ColorPickerUI.dll",
|
||||||
"PowerToys.ColorPickerUI.exe",
|
"PowerToys.ColorPickerUI.exe",
|
||||||
@@ -251,6 +254,7 @@
|
|||||||
"Mages.Core.dll",
|
"Mages.Core.dll",
|
||||||
"JetBrains.Annotations.dll",
|
"JetBrains.Annotations.dll",
|
||||||
"NLog.Extensions.Logging.dll",
|
"NLog.Extensions.Logging.dll",
|
||||||
|
"getfilesiginforedist.dll",
|
||||||
"concrt140_app.dll",
|
"concrt140_app.dll",
|
||||||
"msvcp140_1_app.dll",
|
"msvcp140_1_app.dll",
|
||||||
"msvcp140_2_app.dll",
|
"msvcp140_2_app.dll",
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ param(
|
|||||||
Write-Output "Use 'Help .\applyXamlStyling.ps1' for more info or '-Main' to run against all files."
|
Write-Output "Use 'Help .\applyXamlStyling.ps1' for more info or '-Main' to run against all files."
|
||||||
Write-Output ""
|
Write-Output ""
|
||||||
Write-Output "Restoring dotnet tools..."
|
Write-Output "Restoring dotnet tools..."
|
||||||
dotnet tool restore
|
dotnet tool restore --disable-parallel --no-cache
|
||||||
|
|
||||||
if (-not $Passive)
|
if (-not $Passive)
|
||||||
{
|
{
|
||||||
@@ -107,7 +107,7 @@ if (-not $Passive)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
Write-Output "Checking all files (passively)"
|
Write-Output "Checking all files (passively)"
|
||||||
$files = Get-ChildItem -Path "$PSScriptRoot\..\src\*.xaml" -Recurse | Select-Object -ExpandProperty FullName | Where-Object { $_ -notmatch "(\\obj\\)|(\\bin\\)|(\\x64\\)|(\\Generated Files\\PowerRenameXAML\\)|(\\launcher\\PowerLauncher\\)|(\\launcher\\Wox.Plugin\\)|(\\colorPicker\\ColorPickerUI\\)" }
|
$files = Get-ChildItem -Path "$PSScriptRoot\..\src\*.xaml" -Recurse | Select-Object -ExpandProperty FullName | Where-Object { $_ -notmatch "(\\obj\\)|(\\bin\\)|(\\x64\\)|(\\Generated Files\\PowerRenameXAML\\)|(\\colorPicker\\ColorPickerUI\\)" }
|
||||||
|
|
||||||
if ($files.count -gt 0)
|
if ($files.count -gt 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ steps:
|
|||||||
submodules: true
|
submodules: true
|
||||||
clean: true
|
clean: true
|
||||||
|
|
||||||
|
- task: UseDotNet@2
|
||||||
|
displayName: 'Use .NET 6 SDK'
|
||||||
|
inputs:
|
||||||
|
packageType: sdk
|
||||||
|
version: '6.x'
|
||||||
|
|
||||||
- task: PowerShell@2
|
- task: PowerShell@2
|
||||||
displayName: Verify XAML formatting
|
displayName: Verify XAML formatting
|
||||||
inputs:
|
inputs:
|
||||||
@@ -56,11 +62,18 @@ steps:
|
|||||||
arguments: -solution '$(build.sourcesdirectory)\installer\PowerToysSetup.sln'
|
arguments: -solution '$(build.sourcesdirectory)\installer\PowerToysSetup.sln'
|
||||||
pwsh: true
|
pwsh: true
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Verify and set latest VCToolsVersion usage
|
||||||
|
inputs:
|
||||||
|
filePath: '$(build.sourcesdirectory)\.pipelines\verifyAndSetLatestVCToolsVersion.ps1'
|
||||||
|
pwsh: true
|
||||||
|
|
||||||
- task: UseDotNet@2
|
- task: UseDotNet@2
|
||||||
displayName: 'Use .NET 7 SDK'
|
displayName: 'Use .NET 8 SDK'
|
||||||
inputs:
|
inputs:
|
||||||
packageType: sdk
|
packageType: sdk
|
||||||
version: '7.x'
|
version: '8.x'
|
||||||
|
includePreviewVersions: true
|
||||||
|
|
||||||
- task: VisualStudioTestPlatformInstaller@1
|
- task: VisualStudioTestPlatformInstaller@1
|
||||||
displayName: Ensure VSTest Platform
|
displayName: Ensure VSTest Platform
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ resources:
|
|||||||
- repository: 1ESPipelineTemplates
|
- repository: 1ESPipelineTemplates
|
||||||
type: git
|
type: git
|
||||||
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
name: 1ESPipelineTemplates/1ESPipelineTemplates
|
||||||
ref: refs/tags/release
|
ref: refs/tags/release-2023-11-13-4
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
- name: buildConfigurations
|
- name: buildConfigurations
|
||||||
@@ -88,10 +88,16 @@ extends:
|
|||||||
version: '6.x'
|
version: '6.x'
|
||||||
|
|
||||||
- task: UseDotNet@2
|
- task: UseDotNet@2
|
||||||
displayName: 'Use .NET 7 SDK'
|
displayName: 'Use .NET 8 SDK'
|
||||||
inputs:
|
inputs:
|
||||||
packageType: sdk
|
packageType: sdk
|
||||||
version: '7.x'
|
version: '8.x'
|
||||||
|
|
||||||
|
- task: PowerShell@2
|
||||||
|
displayName: Verify and set latest VCToolsVersion usage
|
||||||
|
inputs:
|
||||||
|
filePath: '$(build.sourcesdirectory)\.pipelines\verifyAndSetLatestVCToolsVersion.ps1'
|
||||||
|
pwsh: true
|
||||||
|
|
||||||
- task: NuGetAuthenticate@1
|
- task: NuGetAuthenticate@1
|
||||||
|
|
||||||
|
|||||||
5
.pipelines/verifyAndSetLatestVCToolsVersion.ps1
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
$LatestVCToolsVersion = (([xml](& 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe' -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -include packages -format xml)).instances.instance.packages.package | ? { $_.id -eq "Microsoft.VisualCpp.Redist.14.Latest" -and $_.chip -eq "x64" }).version;
|
||||||
|
|
||||||
|
Write-Output "Latest VCToolsVersion: $LatestVCToolsVersion"
|
||||||
|
Write-Output "Updating VCToolsVersion environment variable for job"
|
||||||
|
Write-Output "##vso[task.setvariable variable=VCToolsVersion]$LatestVCToolsVersion"
|
||||||
@@ -24,6 +24,7 @@ $versionExceptions = @(
|
|||||||
$nullVersionExceptions = @(
|
$nullVersionExceptions = @(
|
||||||
"codicon.ttf",
|
"codicon.ttf",
|
||||||
"e_sqlite3.dll",
|
"e_sqlite3.dll",
|
||||||
|
"getfilesiginforedist.dll",
|
||||||
"vcamp140_app.dll",
|
"vcamp140_app.dll",
|
||||||
"vcruntime140_app.dll",
|
"vcruntime140_app.dll",
|
||||||
"vcruntime140_1_app.dll",
|
"vcruntime140_1_app.dll",
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
<!-- CLR + CFG are not compatible >:{ -->
|
<!-- CLR + CFG are not compatible >:{ -->
|
||||||
<ControlFlowGuard Condition="'$(CLRSupport)' == ''">Guard</ControlFlowGuard>
|
<ControlFlowGuard Condition="'$(CLRSupport)' == ''">Guard</ControlFlowGuard>
|
||||||
<DebugInformationFormat Condition="'%(ControlFlowGuard)' == 'Guard'">ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat Condition="'%(ControlFlowGuard)' == 'Guard'">ProgramDatabase</DebugInformationFormat>
|
||||||
|
<SDLCheck>true</SDLCheck>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<SubSystem>Windows</SubSystem>
|
<SubSystem>Windows</SubSystem>
|
||||||
@@ -77,7 +78,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<SDLCheck>true</SDLCheck>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<Link>
|
<Link>
|
||||||
@@ -88,7 +88,6 @@
|
|||||||
<ClCompile>
|
<ClCompile>
|
||||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<Optimization>MaxSpeed</Optimization>
|
<Optimization>MaxSpeed</Optimization>
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
@@ -113,6 +112,7 @@
|
|||||||
<PlatformToolset Condition="'$(OverridePlatformToolset)'!='True'">v143</PlatformToolset>
|
<PlatformToolset Condition="'$(OverridePlatformToolset)'!='True'">v143</PlatformToolset>
|
||||||
<CharacterSet>Unicode</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<DesktopCompatible>true</DesktopCompatible>
|
<DesktopCompatible>true</DesktopCompatible>
|
||||||
|
<SpectreMitigation>Spectre</SpectreMitigation>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- Debug/Release props -->
|
<!-- Debug/Release props -->
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<Project>
|
<Project>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Copyright>Copyright (C) 2023 Microsoft Corporation</Copyright>
|
<Copyright>Copyright (C) 2024 Microsoft Corporation</Copyright>
|
||||||
<AssemblyCompany>Microsoft Corp.</AssemblyCompany>
|
<AssemblyCompany>Microsoft Corp.</AssemblyCompany>
|
||||||
<AssemblyCopyright>Copyright (C) 2023 Microsoft Corporation</AssemblyCopyright>
|
<AssemblyCopyright>Copyright (C) 2024 Microsoft Corporation</AssemblyCopyright>
|
||||||
<AssemblyProduct>PowerToys</AssemblyProduct>
|
<AssemblyProduct>PowerToys</AssemblyProduct>
|
||||||
<Company>Microsoft Corporation</Company>
|
<Company>Microsoft Corporation</Company>
|
||||||
<NeutralLanguage>en-US</NeutralLanguage>
|
<NeutralLanguage>en-US</NeutralLanguage>
|
||||||
|
|||||||
@@ -18,33 +18,36 @@
|
|||||||
<PackageVersion Include="ControlzEx" Version="6.0.0" />
|
<PackageVersion Include="ControlzEx" Version="6.0.0" />
|
||||||
<PackageVersion Include="coverlet.collector" Version="1.3.0" />
|
<PackageVersion Include="coverlet.collector" Version="1.3.0" />
|
||||||
<PackageVersion Include="DotNetSeleniumExtras.WaitHelpers" Version="3.11.0" />
|
<PackageVersion Include="DotNetSeleniumExtras.WaitHelpers" Version="3.11.0" />
|
||||||
<PackageVersion Include="HelixToolkit" Version="2.20.2" />
|
<PackageVersion Include="HelixToolkit" Version="2.24.0" />
|
||||||
<PackageVersion Include="HelixToolkit.Core.Wpf" Version="2.20.2" />
|
<PackageVersion Include="HelixToolkit.Core.Wpf" Version="2.24.0" />
|
||||||
<PackageVersion Include="hyjiacan.pinyin4net" Version="4.1.1" />
|
<PackageVersion Include="hyjiacan.pinyin4net" Version="4.1.1" />
|
||||||
<PackageVersion Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0.2" />
|
<PackageVersion Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0.2" />
|
||||||
<PackageVersion Include="LazyCache" Version="2.4.0" />
|
<PackageVersion Include="LazyCache" Version="2.4.0" />
|
||||||
<PackageVersion Include="Mages" Version="2.0.1" />
|
<PackageVersion Include="Mages" Version="2.0.1" />
|
||||||
<PackageVersion Include="Markdig.Signed" Version="0.27.0" />
|
<PackageVersion Include="Markdig.Signed" Version="0.27.0" />
|
||||||
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="7.0.3" />
|
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Data.Sqlite" Version="7.0.0" />
|
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902" />
|
<PackageVersion Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.336902" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Logging" Version="7.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
|
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="7.0.0" />
|
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
|
||||||
|
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
|
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.3" />
|
||||||
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
|
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
|
||||||
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2088.41" />
|
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2088.41" />
|
||||||
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="7.0.3" />
|
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="8.0.0" />
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
||||||
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
|
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.0.4" />
|
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.0.4" />
|
||||||
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
|
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
|
||||||
<PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
|
<PackageVersion Include="Microsoft.Windows.SDK.Contracts" Version="10.0.19041.1" />
|
||||||
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.4.230913002" />
|
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.4.231115000" />
|
||||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
||||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
||||||
<PackageVersion Include="ModernWpfUI" Version="0.9.4" />
|
<PackageVersion Include="ModernWpfUI" Version="0.9.4" />
|
||||||
|
<!-- Moq to stay below v4.20 due to behavior change. need to be sure fixed -->
|
||||||
<PackageVersion Include="Moq" Version="4.18.4" />
|
<PackageVersion Include="Moq" Version="4.18.4" />
|
||||||
<PackageVersion Include="MSTest.TestAdapter" Version="3.1.1" />
|
<PackageVersion Include="MSTest.TestAdapter" Version="3.1.1" />
|
||||||
<PackageVersion Include="MSTest.TestFramework" Version="3.1.1" />
|
<PackageVersion Include="MSTest.TestFramework" Version="3.1.1" />
|
||||||
@@ -57,24 +60,25 @@
|
|||||||
<PackageVersion Include="StreamJsonRpc" Version="2.14.24" />
|
<PackageVersion Include="StreamJsonRpc" Version="2.14.24" />
|
||||||
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.507" />
|
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.507" />
|
||||||
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
||||||
<PackageVersion Include="System.ComponentModel.Composition" Version="7.0.0" />
|
<PackageVersion Include="System.ComponentModel.Composition" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
|
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.Data.OleDb" Version="7.0.0" />
|
<PackageVersion Include="System.Data.OleDb" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.Drawing.Common" Version="7.0.0" />
|
<PackageVersion Include="System.Drawing.Common" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.IO.Abstractions" Version="17.2.3" />
|
<PackageVersion Include="System.IO.Abstractions" Version="17.2.3" />
|
||||||
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.2.3" />
|
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.2.3" />
|
||||||
<PackageVersion Include="System.Management" Version="7.0.2" />
|
<PackageVersion Include="System.Management" Version="8.0.0" />
|
||||||
|
<PackageVersion Include="System.Management.Automation" Version="7.4.0" />
|
||||||
<PackageVersion Include="System.Reactive" Version="6.0.0-preview.9" />
|
<PackageVersion Include="System.Reactive" Version="6.0.0-preview.9" />
|
||||||
<PackageVersion Include="System.Runtime.Caching" Version="7.0.0" />
|
<PackageVersion Include="System.Runtime.Caching" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="7.0.1" />
|
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="8.0.0" />
|
||||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="7.0.0" />
|
<PackageVersion Include="System.Text.Encoding.CodePages" Version="8.0.0" />
|
||||||
<PackageVersion Include="UnicodeInformation" Version="2.6.0" />
|
<PackageVersion Include="UnicodeInformation" Version="2.6.0" />
|
||||||
<PackageVersion Include="UnitsNet" Version="4.145.0" />
|
<PackageVersion Include="UnitsNet" Version="4.145.0" />
|
||||||
<PackageVersion Include="UTF.Unknown" Version="2.5.1" />
|
<PackageVersion Include="UTF.Unknown" Version="2.5.1" />
|
||||||
<PackageVersion Include="Vanara.PInvoke.User32" Version="3.4.11" />
|
<PackageVersion Include="Vanara.PInvoke.User32" Version="3.4.11" />
|
||||||
<PackageVersion Include="Vanara.PInvoke.Shell32" Version="3.4.11" />
|
<PackageVersion Include="Vanara.PInvoke.Shell32" Version="3.4.11" />
|
||||||
<PackageVersion Include="WinUIEx" Version="2.2.0" />
|
<PackageVersion Include="WinUIEx" Version="2.2.0" />
|
||||||
<PackageVersion Include="WPF-UI" Version="3.0.0-preview.9" />
|
<PackageVersion Include="WPF-UI" Version="3.0.0-preview.12" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
|
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
|
||||||
<!-- Additional dependencies used by experimentation -->
|
<!-- Additional dependencies used by experimentation -->
|
||||||
|
|||||||
70
NOTICE.md
@@ -788,6 +788,34 @@ SOFTWARE.
|
|||||||
|
|
||||||
## Utility: Peek
|
## Utility: Peek
|
||||||
|
|
||||||
|
### The Quite OK Image Format reference decoder
|
||||||
|
|
||||||
|
**Source**: https://github.com/phoboslab/qoi
|
||||||
|
|
||||||
|
**Note**: [@pedrolamas](https://github.com/pedrolamas) translated and adapted the reference decoder code to C# that is in PowerToys from the original C++ implementation.
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 Dominic Szablewski
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
### UTF Unknown
|
### UTF Unknown
|
||||||
|
|
||||||
We use the UTF.Unknown NuGet package for detecting encoding in text/code files.
|
We use the UTF.Unknown NuGet package for detecting encoding in text/code files.
|
||||||
@@ -1271,7 +1299,6 @@ EXHIBIT A -Mozilla Public License.
|
|||||||
- Appium.WebDriver 4.4.5
|
- Appium.WebDriver 4.4.5
|
||||||
- CommunityToolkit.Mvvm 8.2.0
|
- CommunityToolkit.Mvvm 8.2.0
|
||||||
- CommunityToolkit.WinUI.Animations 8.0.230907
|
- CommunityToolkit.WinUI.Animations 8.0.230907
|
||||||
- CommunityToolkit.WinUI.Collections 8.0.230907
|
|
||||||
- CommunityToolkit.WinUI.Controls.Primitives 8.0.230907
|
- CommunityToolkit.WinUI.Controls.Primitives 8.0.230907
|
||||||
- CommunityToolkit.WinUI.Controls.Segmented 8.0.230907
|
- CommunityToolkit.WinUI.Controls.Segmented 8.0.230907
|
||||||
- CommunityToolkit.WinUI.Controls.SettingsControls 8.0.230907
|
- CommunityToolkit.WinUI.Controls.SettingsControls 8.0.230907
|
||||||
@@ -1281,28 +1308,30 @@ EXHIBIT A -Mozilla Public License.
|
|||||||
- CommunityToolkit.WinUI.UI.Controls.DataGrid 7.1.2
|
- CommunityToolkit.WinUI.UI.Controls.DataGrid 7.1.2
|
||||||
- CommunityToolkit.WinUI.UI.Controls.Markdown 7.1.2
|
- CommunityToolkit.WinUI.UI.Controls.Markdown 7.1.2
|
||||||
- ControlzEx 6.0.0
|
- ControlzEx 6.0.0
|
||||||
- HelixToolkit 2.20.2
|
- HelixToolkit 2.24.0
|
||||||
- HelixToolkit.Core.Wpf 2.20.2
|
- HelixToolkit.Core.Wpf 2.24.0
|
||||||
- hyjiacan.pinyin4net 4.1.1
|
- hyjiacan.pinyin4net 4.1.1
|
||||||
- Interop.Microsoft.Office.Interop.OneNote 1.1.0.2
|
- Interop.Microsoft.Office.Interop.OneNote 1.1.0.2
|
||||||
- LazyCache 2.4.0
|
- LazyCache 2.4.0
|
||||||
- Mages 2.0.1
|
- Mages 2.0.1
|
||||||
- Markdig.Signed 0.27.0
|
- Markdig.Signed 0.27.0
|
||||||
- Microsoft.CodeAnalysis.NetAnalyzers 7.0.3
|
- Microsoft.CodeAnalysis.NetAnalyzers 8.0.0
|
||||||
- Microsoft.Data.Sqlite 7.0.0
|
- Microsoft.Data.Sqlite 8.0.0
|
||||||
- Microsoft.Extensions.DependencyInjection 7.0.0
|
- Microsoft.Extensions.DependencyInjection 8.0.0
|
||||||
- Microsoft.Extensions.Hosting 7.0.1
|
- Microsoft.Extensions.Hosting 8.0.0
|
||||||
- Microsoft.Extensions.Hosting.WindowsServices 7.0.0
|
- Microsoft.Extensions.Hosting.WindowsServices 8.0.0
|
||||||
- Microsoft.Extensions.Logging 7.0.0
|
- Microsoft.Extensions.Logging 8.0.0
|
||||||
|
- Microsoft.Extensions.Logging.Abstractions 8.0.0
|
||||||
|
- Microsoft.Extensions.ObjectPool 8.0.0
|
||||||
- Microsoft.NET.Test.Sdk 17.6.3
|
- Microsoft.NET.Test.Sdk 17.6.3
|
||||||
- Microsoft.Toolkit.Uwp.Notifications 7.1.2
|
- Microsoft.Toolkit.Uwp.Notifications 7.1.2
|
||||||
- Microsoft.Web.WebView2 1.0.2088.41
|
- Microsoft.Web.WebView2 1.0.2088.41
|
||||||
- Microsoft.Windows.Compatibility 7.0.3
|
- Microsoft.Windows.Compatibility 8.0.0
|
||||||
- Microsoft.Windows.CsWin32 0.2.46-beta
|
- Microsoft.Windows.CsWin32 0.2.46-beta
|
||||||
- Microsoft.Windows.CsWinRT 2.0.4
|
- Microsoft.Windows.CsWinRT 2.0.4
|
||||||
- Microsoft.Windows.SDK.BuildTools 10.0.22621.756
|
- Microsoft.Windows.SDK.BuildTools 10.0.22621.756
|
||||||
- Microsoft.Windows.SDK.Contracts 10.0.19041.1
|
- Microsoft.Windows.SDK.Contracts 10.0.19041.1
|
||||||
- Microsoft.WindowsAppSDK 1.4.230913002
|
- Microsoft.WindowsAppSDK 1.4.231115000
|
||||||
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
|
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
|
||||||
- Microsoft.Xaml.Behaviors.Wpf 1.1.39
|
- Microsoft.Xaml.Behaviors.Wpf 1.1.39
|
||||||
- ModernWpfUI 0.9.4
|
- ModernWpfUI 0.9.4
|
||||||
@@ -1316,22 +1345,23 @@ EXHIBIT A -Mozilla Public License.
|
|||||||
- StreamJsonRpc 2.14.24
|
- StreamJsonRpc 2.14.24
|
||||||
- StyleCop.Analyzers 1.2.0-beta.507
|
- StyleCop.Analyzers 1.2.0-beta.507
|
||||||
- System.CommandLine 2.0.0-beta4.22272.1
|
- System.CommandLine 2.0.0-beta4.22272.1
|
||||||
- System.ComponentModel.Composition 7.0.0
|
- System.ComponentModel.Composition 8.0.0
|
||||||
- System.Configuration.ConfigurationManager 6.0.0
|
- System.Configuration.ConfigurationManager 8.0.0
|
||||||
- System.Data.OleDb 7.0.0
|
- System.Data.OleDb 8.0.0
|
||||||
- System.Drawing.Common 7.0.0
|
- System.Drawing.Common 8.0.0
|
||||||
- System.IO.Abstractions 17.2.3
|
- System.IO.Abstractions 17.2.3
|
||||||
- System.IO.Abstractions.TestingHelpers 17.2.3
|
- System.IO.Abstractions.TestingHelpers 17.2.3
|
||||||
- System.Management 7.0.2
|
- System.Management 8.0.0
|
||||||
|
- System.Management.Automation 7.4.0
|
||||||
- System.Reactive 6.0.0-preview.9
|
- System.Reactive 6.0.0-preview.9
|
||||||
- System.Runtime.Caching 7.0.0
|
- System.Runtime.Caching 8.0.0
|
||||||
- System.ServiceProcess.ServiceController 7.0.1
|
- System.ServiceProcess.ServiceController 8.0.0
|
||||||
- System.Text.Encoding.CodePages 7.0.0
|
- System.Text.Encoding.CodePages 8.0.0
|
||||||
- UnicodeInformation 2.6.0
|
- UnicodeInformation 2.6.0
|
||||||
- UnitsNet 4.145.0
|
- UnitsNet 4.145.0
|
||||||
- UTF.Unknown 2.5.1
|
- UTF.Unknown 2.5.1
|
||||||
- Vanara.PInvoke.Shell32 3.4.11
|
- Vanara.PInvoke.Shell32 3.4.11
|
||||||
- Vanara.PInvoke.User32 3.4.11
|
- Vanara.PInvoke.User32 3.4.11
|
||||||
- WinUIEx 2.2.0
|
- WinUIEx 2.2.0
|
||||||
- WPF-UI 3.0.0-preview.9
|
- WPF-UI 3.0.0-preview.12
|
||||||
|
|
||||||
|
|||||||
@@ -538,6 +538,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CropAndLock", "src\modules\
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CropAndLockModuleInterface", "src\modules\CropAndLock\CropAndLockModuleInterface\CropAndLockModuleInterface.vcxproj", "{3157FA75-86CF-4EE2-8F62-C43F776493C6}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CropAndLockModuleInterface", "src\modules\CropAndLock\CropAndLockModuleInterface\CropAndLockModuleInterface.vcxproj", "{3157FA75-86CF-4EE2-8F62-C43F776493C6}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CmdNotFound", "src\modules\cmdNotFound\CmdNotFound\CmdNotFound.csproj", "{A37865FE-2881-449F-8ADB-B8CD373D6D79}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "cmdNotFound", "cmdNotFound", "{4C0D0746-BE5B-49EE-BD5D-A7811628AE8B}"
|
||||||
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-FancyZonesEditor", "src\modules\fancyzones\UnitTests-FancyZonesEditor\UnitTests-FancyZonesEditor.csproj", "{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-FancyZonesEditor", "src\modules\fancyzones\UnitTests-FancyZonesEditor\UnitTests-FancyZonesEditor.csproj", "{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EnvironmentVariables", "EnvironmentVariables", "{538ED0BB-B863-4B20-98CC-BCDF7FA0B68A}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EnvironmentVariables", "EnvironmentVariables", "{538ED0BB-B863-4B20-98CC-BCDF7FA0B68A}"
|
||||||
@@ -558,6 +562,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-QoiPreviewHandler
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-QoiThumbnailProvider", "src\modules\previewpane\UnitTests-QoiThumbnailProvider\UnitTests-QoiThumbnailProvider.csproj", "{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-QoiThumbnailProvider", "src\modules\previewpane\UnitTests-QoiThumbnailProvider\UnitTests-QoiThumbnailProvider.csproj", "{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdNotFoundModuleInterface", "src\modules\cmdNotFound\CmdNotFoundModuleInterface\CmdNotFoundModuleInterface.vcxproj", "{0014D652-901F-4456-8D65-06FC5F997FB0}"
|
||||||
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITests-FancyZones", "src\modules\fancyzones\UITests-FancyZones\UITests-FancyZones.csproj", "{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITests-FancyZones", "src\modules\fancyzones\UITests-FancyZones\UITests-FancyZones.csproj", "{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITests-FancyZonesEditor", "src\modules\fancyzones\UITests-FancyZonesEditor\UITests-FancyZonesEditor.csproj", "{3A9A791E-94A9-49F8-8401-C11CE288D5FB}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UITests-FancyZonesEditor", "src\modules\fancyzones\UITests-FancyZonesEditor\UITests-FancyZonesEditor.csproj", "{3A9A791E-94A9-49F8-8401-C11CE288D5FB}"
|
||||||
@@ -2332,6 +2338,18 @@ Global
|
|||||||
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x64.Build.0 = Release|x64
|
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x64.Build.0 = Release|x64
|
||||||
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x86.ActiveCfg = Release|x64
|
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x86.ActiveCfg = Release|x64
|
||||||
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x86.Build.0 = Release|x64
|
{3157FA75-86CF-4EE2-8F62-C43F776493C6}.Release|x86.Build.0 = Release|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|x86.ActiveCfg = Debug|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Debug|x86.Build.0 = Debug|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|ARM64.Build.0 = Release|ARM64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|x64.Build.0 = Release|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|x86.ActiveCfg = Release|x64
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79}.Release|x86.Build.0 = Release|x64
|
||||||
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|ARM64.Build.0 = Debug|ARM64
|
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|x64.ActiveCfg = Debug|x64
|
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
@@ -2440,6 +2458,18 @@ Global
|
|||||||
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x64.Build.0 = Release|x64
|
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x64.Build.0 = Release|x64
|
||||||
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x86.ActiveCfg = Release|x64
|
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x86.ActiveCfg = Release|x64
|
||||||
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x86.Build.0 = Release|x64
|
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38}.Release|x86.Build.0 = Release|x64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|ARM64.ActiveCfg = Release|ARM64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|ARM64.Build.0 = Release|ARM64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|x64.Build.0 = Release|x64
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0}.Release|x86.Build.0 = Release|Win32
|
||||||
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|ARM64.ActiveCfg = Debug|ARM64
|
||||||
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|ARM64.Build.0 = Debug|ARM64
|
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|ARM64.Build.0 = Debug|ARM64
|
||||||
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|x64.ActiveCfg = Debug|x64
|
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
@@ -2658,6 +2688,8 @@ Global
|
|||||||
{3B227528-4BA6-4CAF-B44A-A10C78A64849} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
|
{3B227528-4BA6-4CAF-B44A-A10C78A64849} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
|
||||||
{F5E1146E-B7B3-4E11-85FD-270A500BD78C} = {3B227528-4BA6-4CAF-B44A-A10C78A64849}
|
{F5E1146E-B7B3-4E11-85FD-270A500BD78C} = {3B227528-4BA6-4CAF-B44A-A10C78A64849}
|
||||||
{3157FA75-86CF-4EE2-8F62-C43F776493C6} = {3B227528-4BA6-4CAF-B44A-A10C78A64849}
|
{3157FA75-86CF-4EE2-8F62-C43F776493C6} = {3B227528-4BA6-4CAF-B44A-A10C78A64849}
|
||||||
|
{A37865FE-2881-449F-8ADB-B8CD373D6D79} = {4C0D0746-BE5B-49EE-BD5D-A7811628AE8B}
|
||||||
|
{4C0D0746-BE5B-49EE-BD5D-A7811628AE8B} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
|
||||||
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
{FC8EB78F-F061-4BD9-A3F6-507BEA965E2B} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
||||||
{538ED0BB-B863-4B20-98CC-BCDF7FA0B68A} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
|
{538ED0BB-B863-4B20-98CC-BCDF7FA0B68A} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
|
||||||
{51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA} = {538ED0BB-B863-4B20-98CC-BCDF7FA0B68A}
|
{51465DA1-C18B-4B99-93E1-ECF8E0FA0CBA} = {538ED0BB-B863-4B20-98CC-BCDF7FA0B68A}
|
||||||
@@ -2668,6 +2700,7 @@ Global
|
|||||||
{6B04803D-B418-4833-A67E-B0FC966636A5} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
{6B04803D-B418-4833-A67E-B0FC966636A5} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
||||||
{3940AD4D-F748-4BE4-9083-85769CD553EF} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
{3940AD4D-F748-4BE4-9083-85769CD553EF} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
||||||
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
{F8FFFC12-A31A-4AFA-B3DF-14DCF42B5E38} = {2F305555-C296-497E-AC20-5FA1B237996A}
|
||||||
|
{0014D652-901F-4456-8D65-06FC5F997FB0} = {4C0D0746-BE5B-49EE-BD5D-A7811628AE8B}
|
||||||
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
{FE38FC07-1C05-4B57-ADA3-2FE2F53C6A52} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
||||||
{3A9A791E-94A9-49F8-8401-C11CE288D5FB} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
{3A9A791E-94A9-49F8-8401-C11CE288D5FB} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
217
README.md
@@ -17,20 +17,21 @@ Microsoft PowerToys is a set of utilities for power users to tune and streamline
|
|||||||
|
|
||||||
| | Current utilities: | |
|
| | Current utilities: | |
|
||||||
|--------------|--------------------|--------------|
|
|--------------|--------------------|--------------|
|
||||||
| [Always on Top](https://aka.ms/PowerToysOverview_AoT) | [PowerToys Awake](https://aka.ms/PowerToysOverview_Awake) | [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) |
|
| [Always on Top](https://aka.ms/PowerToysOverview_AoT) | [PowerToys Awake](https://aka.ms/PowerToysOverview_Awake) | [Command Not Found](https://aka.ms/PowerToysOverview_CmdNotFound) |
|
||||||
| [Crop And Lock](https://aka.ms/PowerToysOverview_CropAndLock) | [Environment Variables](https://aka.ms/PowerToysOverview_EnvironmentVariables) | [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) |
|
| [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) | [Crop And Lock](https://aka.ms/PowerToysOverview_CropAndLock) | [Environment Variables](https://aka.ms/PowerToysOverview_EnvironmentVariables) |
|
||||||
| [File Explorer Add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) | [File Locksmith](https://aka.ms/PowerToysOverview_FileLocksmith) | [Hosts File Editor](https://aka.ms/PowerToysOverview_HostsFileEditor) |
|
| [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) | [File Explorer Add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) | [File Locksmith](https://aka.ms/PowerToysOverview_FileLocksmith) |
|
||||||
| [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) | [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) | [Mouse utilities](https://aka.ms/PowerToysOverview_MouseUtilities) |
|
| [Hosts File Editor](https://aka.ms/PowerToysOverview_HostsFileEditor) | [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) | [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) |
|
||||||
| [Mouse Without Borders](https://aka.ms/PowerToysOverview_MouseWithoutBorders) | [Peek](https://aka.ms/PowerToysOverview_Peek) | [Paste as Plain Text](https://aka.ms/PowerToysOverview_PastePlain) |
|
| [Mouse utilities](https://aka.ms/PowerToysOverview_MouseUtilities) | [Mouse Without Borders](https://aka.ms/PowerToysOverview_MouseWithoutBorders) | [Peek](https://aka.ms/PowerToysOverview_Peek) |
|
||||||
| [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) | [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) | [Quick Accent](https://aka.ms/PowerToysOverview_QuickAccent) |
|
| [Paste as Plain Text](https://aka.ms/PowerToysOverview_PastePlain) | [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) | [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) |
|
||||||
| [Registry Preview](https://aka.ms/PowerToysOverview_RegistryPreview) | [Screen Ruler](https://aka.ms/PowerToysOverview_ScreenRuler) | [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) |
|
| [Quick Accent](https://aka.ms/PowerToysOverview_QuickAccent) | [Registry Preview](https://aka.ms/PowerToysOverview_RegistryPreview) | [Screen Ruler](https://aka.ms/PowerToysOverview_ScreenRuler) |
|
||||||
| [Text Extractor](https://aka.ms/PowerToysOverview_TextExtractor) | [Video Conference Mute](https://aka.ms/PowerToysOverview_VideoConference) |
|
| [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) | [Text Extractor](https://aka.ms/PowerToysOverview_TextExtractor) | [Video Conference Mute](https://aka.ms/PowerToysOverview_VideoConference) |
|
||||||
|
|
||||||
## Installing and running Microsoft PowerToys
|
## Installing and running Microsoft PowerToys
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
||||||
- Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
|
- Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
|
||||||
|
- x64 or ARM64 processor
|
||||||
- Our installer will install the following items:
|
- Our installer will install the following items:
|
||||||
- [Microsoft Edge WebView2 Runtime](https://go.microsoft.com/fwlink/p/?LinkId=2124703) bootstrapper. This will install the latest version.
|
- [Microsoft Edge WebView2 Runtime](https://go.microsoft.com/fwlink/p/?LinkId=2124703) bootstrapper. This will install the latest version.
|
||||||
|
|
||||||
@@ -39,19 +40,19 @@ Microsoft PowerToys is a set of utilities for power users to tune and streamline
|
|||||||
Go to the [Microsoft PowerToys GitHub releases page][github-release-link] and click on `Assets` at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture and install scope. For most, it is `x64` and per-user.
|
Go to the [Microsoft PowerToys GitHub releases page][github-release-link] and click on `Assets` at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture and install scope. For most, it is `x64` and per-user.
|
||||||
|
|
||||||
<!-- items that need to be updated release to release -->
|
<!-- items that need to be updated release to release -->
|
||||||
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=project%3Amicrosoft%2FPowerToys%2F49
|
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=project%3Amicrosoft%2FPowerToys%2F50
|
||||||
[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=project%3Amicrosoft%2FPowerToys%2F48
|
[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=project%3Amicrosoft%2FPowerToys%2F49
|
||||||
[ptUserX64]: https://github.com/microsoft/PowerToys/releases/download/v0.75.1/PowerToysUserSetup-0.75.1-x64.exe
|
[ptUserX64]: https://github.com/microsoft/PowerToys/releases/download/v0.76.2/PowerToysUserSetup-0.76.2-x64.exe
|
||||||
[ptUserArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.75.1/PowerToysUserSetup-0.75.1-arm64.exe
|
[ptUserArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.76.2/PowerToysUserSetup-0.76.2-arm64.exe
|
||||||
[ptMachineX64]: https://github.com/microsoft/PowerToys/releases/download/v0.75.1/PowerToysSetup-0.75.1-x64.exe
|
[ptMachineX64]: https://github.com/microsoft/PowerToys/releases/download/v0.76.2/PowerToysSetup-0.76.2-x64.exe
|
||||||
[ptMachineArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.75.1/PowerToysSetup-0.75.1-arm64.exe
|
[ptMachineArm64]: https://github.com/microsoft/PowerToys/releases/download/v0.76.2/PowerToysSetup-0.76.2-arm64.exe
|
||||||
|
|
||||||
| Description | Filename | sha256 hash |
|
| Description | Filename | sha256 hash |
|
||||||
|----------------|----------|-------------|
|
|----------------|----------|-------------|
|
||||||
| Per user - x64 | [PowerToysUserSetup-0.75.1-x64.exe][ptUserX64] | CFDAE52607689A695F4E4DDD7C1FE68400359AEF0D2B23C86122835E9D32A20F |
|
| Per user - x64 | [PowerToysUserSetup-0.76.2-x64.exe][ptUserX64] | 73D734FC34B3F9D7484081EC0F0B6ACD4789A55203A185904CC5C62ABD02AF16 |
|
||||||
| Per user - ARM64 | [PowerToysUserSetup-0.75.1-arm64.exe][ptUserArm64] | 9BAD3EF71DEDE70445416AC7369D115FAE095152722BC4F23EE393D8A10F45CA |
|
| Per user - ARM64 | [PowerToysUserSetup-0.76.2-arm64.exe][ptUserArm64] | 5284CC5DA399DC37858A2FD260C30F20C484BA1B5616D0EB67CD90A8A286CB8B |
|
||||||
| Machine wide - x64 | [PowerToysSetup-0.75.1-x64.exe][ptMachineX64] | 18FEB9377B0BA45189FFF4F89627B152DD794CCC15F005592B34A40A3EA62EA8 |
|
| Machine wide - x64 | [PowerToysSetup-0.76.2-x64.exe][ptMachineX64] | 72B87381C9E5C7447FB59D7CE478B3102C9CEE3C6EB3A6BC7EC7EC7D9EFAB2A0 |
|
||||||
| Machine wide - ARM64 | [PowerToysSetup-0.75.1-arm64.exe][ptMachineArm64] | F5CDF5A35876A0B581F446BF728B7AC52B6B701C0850D9CEA9A1874523745CFD |
|
| Machine wide - ARM64 | [PowerToysSetup-0.76.2-arm64.exe][ptMachineArm64] | F28C7DA377C25309775AB052B2B19A299C26C41582D05B95C3492A4A8C952BFE |
|
||||||
|
|
||||||
This is our preferred method.
|
This is our preferred method.
|
||||||
|
|
||||||
@@ -97,142 +98,158 @@ For guidance on developing for PowerToys, please read the [developer docs](/doc/
|
|||||||
|
|
||||||
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
|
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
|
||||||
|
|
||||||
### 0.75 - October 2023 Update
|
### 0.76 - November 2023 Update
|
||||||
|
|
||||||
In this release, we focused on new features, stability and improvements.
|
In this release, we focused on new features, stability and improvements.
|
||||||
|
|
||||||
**Highlights**
|
**Highlights**
|
||||||
|
|
||||||
- New utility: An environment variables editor with the functionality to configure profiles that can be enabled/disabled. Thanks [@niels9001](https://github.com/niels9001) for the design and UI work that made this possible!
|
- Upgrade to .NET 8. Thanks [@snickler](https://github.com/snickler)!
|
||||||
- Settings has a new Dashboard home page, with quick access for enabling modules, short descriptions and activation methods. Thanks [@niels9001](https://github.com/niels9001) for the design and UI work that made this possible!
|
- Keyboard Manager can now remap keys and shortcuts to send sequences of unicode text.
|
||||||
- Added a previewer to Peek that hosts File Explorer previewers to support every file type that a machine is currently able to preview. For example, this means that if Microsoft Office handlers are installed, Peek can preview Office files. Thanks [@dillydylann](https://github.com/dillydylann)!
|
- Modernized the Keyboard Manager Editor UI. Thanks [@dillydylann](https://github.com/dillydylann)!
|
||||||
|
- Modernized the PowerToys Run, Quick Accent and Text Extractor UIs. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
|
- New File Explorer Add-ons: QOI image Preview Handler and Thumbnail Provider. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
|
|
||||||
### General
|
### General
|
||||||
|
- Updated the WebView 2 dependency to 1.0.2088.41. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
|
- Fixed unreadable color brushes used across WinUI3 applications for improved accessibility. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
|
- Flyouts used across WinUI3 applications are no longer constrained to the application's bounds. Thanks [@Jay-o-Way](https://github.com/Jay-o-Way)!
|
||||||
|
- Upgraded the WPF-UI dependency to preview.9 and then preview.11. Thanks [@niels9001](https://github.com/niels9001) and [@pomianowski](https://github.com/pomianowski)!
|
||||||
|
- Upgraded to .NET 8. Thanks [@snickler](https://github.com/snickler)!
|
||||||
|
- Updated the WinAppSDK dependency to 1.4.3.
|
||||||
|
|
||||||
- Many typo fixes through the projects and documentation. Thanks [@brianteeman](https://github.com/brianteeman)!
|
### Awake
|
||||||
- Refactored and improved the logic across utilities for bringing a window to the foreground after activation.
|
|
||||||
|
|
||||||
### Color Picker
|
- Added localization to the tray icon context menu.
|
||||||
|
|
||||||
- After activating Color Picker, it's now possible to cancel the session by clicking the right mouse button. Thanks [@fredso90](https://github.com/fredso90)!
|
### Crop And Lock
|
||||||
|
|
||||||
|
- Fixed restoring windows that were reparented while maximized.
|
||||||
|
|
||||||
### Environment Variables
|
### Environment Variables
|
||||||
- Added a new utility: An environment variables editor that has the functionality to configure profiles that can be enabled/disabled. Thanks [@niels9001](https://github.com/niels9001) for the design and UI work that made this possible!
|
|
||||||
- Shows in the title bar if it's running as an administrator. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Fixed crash caused by WinAppSDK version bump by replacing ListView elements with ItemsControl.
|
||||||
|
|
||||||
### FancyZones
|
### FancyZones
|
||||||
|
|
||||||
- Fixed an issue causing context menu pop-ups from some apps to automatically snap to a zone. (This was a hotfix for 0.74)
|
- Reverted a change that caused some applications, like the Windows Calculator, to not snap correctly. (This was a hotfix for 0.75)
|
||||||
- Applied the fix for the context menu pop-ups to the logic that decides which windows can be snapped.
|
- FancyZones Editor will no longer apply a layout to the current monitor after editing it.
|
||||||
- Reworked the "Keep windows in their zones" option to include the work area and turn it on by default, fixing an incompatibility with the Copilot flyout.
|
- Fixed and refactored the code that detected if a window can be snapped. Added tests to it with known application window styles to avoid regressions in the future.
|
||||||
- Fixed an issue causing windows to be snapped while moving to a different virtual desktop.
|
|
||||||
|
|
||||||
### File Explorer add-ons
|
### File Explorer add-ons
|
||||||
|
|
||||||
- Fixed an issue blocking some SVG files from being previewed correctly. (This was a hotfix for 0.74)
|
- Solved an issue incorrectly detecting encoding when previewing code files preview.
|
||||||
- Fixed crashes on invalid files in the STL Thumbnail generator.
|
- Fixed the background color for Gcode preview handler on dark theme. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
|
- New utilities: Preview Handler and Thumbnail Provider for QOI image files. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
|
- GCode Thumbnails are now in the 32 bit ARGB format. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
|
- Added the perceived type to SVG and QOI file thumbnails. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
|
|
||||||
### GPO
|
### GPO
|
||||||
|
|
||||||
- Added a global GPO rule that applies for all utilities unless it's overridden. Thanks [@htcfreek](https://github.com/htcfreek)!
|
- Added the missing Environment Variables utility policy to the .admx and .adml files. (This was a hotfix for 0.75)
|
||||||
- Added GPO rules to control which PowerToys Run plugins should be enabled/disabled by policy. Thanks [@htcfreek](https://github.com/htcfreek)!
|
- Fixed some typos and text improvements in the .adml file. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||||
* All plugins have to provide its plugin ID as static property in its Main method.
|
|
||||||
|
### Hosts File Editor
|
||||||
|
|
||||||
|
- Added a proper warning when the hosts file is read-only and a button to make it writable. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
|
|
||||||
### Image Resizer
|
### Image Resizer
|
||||||
|
|
||||||
- Fixed wrong .bmp file association in the registry. Thanks [@meitinger](https://github.com/meitinger)!
|
- Fixed a WPF-UI issue regarding the application's background brushes. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
|
|
||||||
|
### Installer
|
||||||
|
|
||||||
|
- Included the Text Extractor and Awake localization files in the install process.
|
||||||
|
|
||||||
### Keyboard Manager
|
### Keyboard Manager
|
||||||
|
|
||||||
- Visually distinguish between the Numpad and regular period characters in the UI.
|
- Modernized the UI with the Fluent design. Thanks [@dillydylann](https://github.com/dillydylann)!
|
||||||
- This utility is now disabled by default on new installations, since it requires user configuration to affect keyboard behavior.
|
- Added the feature to remap keys and shortcuts to arbitrary unicode text sequences.
|
||||||
- Fixed a typo in the Numpad Subtract key in the editor.
|
|
||||||
|
|
||||||
### Mouse Highlighter
|
### Mouse Without Borders
|
||||||
|
|
||||||
- Removed the lower limit of fade delay and duration, to allow better signaling of doing a double click. Thanks [@fredso90](https://github.com/fredso90)!
|
- Removed Thread.Suspend calls when exiting the utility. That call is deprecated, unneeded and was causing a silent crash.
|
||||||
|
|
||||||
### Mouse Jump
|
|
||||||
|
|
||||||
- The process now runs in the background, for a faster activation time. Thanks [@mikeclayton](https://github.com/mikeclayton)!
|
|
||||||
|
|
||||||
### Peek
|
### Peek
|
||||||
|
|
||||||
- Reported file sizes will now more closely match what's reported by File Explorer. Thanks [@Deepak-Sangle](https://github.com/Deepak-Sangle)!
|
- Added the possibility to pause/resume videos with the space bar. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
- Added a previewer that hosts File Explorer previewers to support every file type that a machine is currently able to preview. Thanks [@dillydylann](https://github.com/dillydylann)!
|
- Fixed high CPU usage when idle before initializing the main window. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
- Fixed an issue causing the preview of the first file to be stuck loading. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Implemented Ctrl+W as a shortcut to close Peek. Thanks [@Physalis2](https://github.com/Physalis2)!
|
||||||
- Fixed showing the previously previewed video file when invoking Peek with a new file. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Solved an issue incorrectly detecting encoding when previewing code files.
|
||||||
- Added the wrap and file formatting options to the Monaco previewer. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Fixed background issues when peeking into HTML files after the WebView 2 upgrade.
|
||||||
|
|
||||||
### PowerRename
|
|
||||||
|
|
||||||
- Save data from the last run in a different file to avoid conflicting with changing settings in the Settings application.
|
|
||||||
|
|
||||||
### PowerToys Run
|
### PowerToys Run
|
||||||
|
|
||||||
- Fixed a case where the query wasn't being cleared after invoking a result action through the keyboard. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Moved to WPF-UI and redesigned according to Fluent UX principles. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
- Improved the shell selection option for Windows Terminal in the Shell plugin and improved the backend code for adding combo box options to plugins. Thanks [@htcfreek](https://github.com/htcfreek)!
|
- Fixed an issue causing 3rd party plugins to not have their custom settings correctly initialized with default values. (This was a hotfix for 0.75) Thanks [@waaverecords](https://github.com/waaverecords)!
|
||||||
* The implementation of the combo box items has changed and isn't backward compatible. (Old plugins won't crash, but the combo box setting isn't shown in settings ui anymore.)
|
- Fixed a crash in the VSCode plugin when the VSCode path had trailing backspaces. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
- Added Unix time in milliseconds, fixed negative unix time input and improved error messages in the TimeDate plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
|
- Fixed a crash when trying to load invalid image icons.
|
||||||
- The PowerToys plugin allows calling the new Environment Variables utility. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Fixed a crash in the Programs plugin when getting images for some .lnk files.
|
||||||
- Refactored and added support to VSCodium Stable, VSCodium Insider and Remote Tunnels workspaces. Thanks [@eternalphane](https://github.com/eternalphane)!
|
- Fixed a rare startup initialization error and removed cold start operations that were no longer needed. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
|
- Improved calculations for Windows File Time and Unix Epoch Time in the DateTime plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||||
|
- Fixed a crash when trying to get the icon for a link that pointed to no file.
|
||||||
|
- Cleaned up code in the WindowWalker plugin improving the logic. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
|
|
||||||
### Quick Accent
|
### Quick Accent
|
||||||
|
|
||||||
- Fixed characters that were removed from "All languages" because they were not in any single language. (This was a hotfix for 0.74)
|
- Moved from ModernWPF to WPF-UI. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
- Added Asturian characters to the Spanish character set. Thanks [@blakestack](https://github.com/blakestack)!
|
- Added support to the Finnish language character set. Thanks [@davidtlascelles](https://github.com/davidtlascelles)!
|
||||||
- Added Greek characters with tonos. Thanks [@PesBandi](https://github.com/PesBandi)!
|
- Added currency symbols for Croatian, Gaeilge, Gàidhlig and Welsh. Thanks [@PesBandi](https://github.com/PesBandi)!
|
||||||
|
- Added a missing Latin letter ꝡ. Thanks [@cubedhuang](https://github.com/cubedhuang)!
|
||||||
### Registry Preview
|
- Added fraction characters. Thanks [@PesBandi](https://github.com/PesBandi)!
|
||||||
|
- Added support to the Danish language character set. Thanks [@PesBandi](https://github.com/PesBandi)!
|
||||||
- Fixed a parsing error that crashed the Application. (This was a hotfix for 0.74)
|
- Added the Kazakhstani Tenge character to the Currencies characters set. Thanks [@PesBandi](https://github.com/PesBandi)!
|
||||||
- Fixed opening file names with non-ASCII characters. Thanks [@randyrants](https://github.com/randyrants)!
|
- Renamed Slovakian to Slovak, which is the correct term. Thanks [@PesBandi](https://github.com/PesBandi)!
|
||||||
- Fixed wrong parsing when the file contained an assignment with spaces around the equals sign. Thanks [@randyrants](https://github.com/randyrants)!
|
- Added the Greek language character set. Thanks [@mcbabo](https://github.com/mcbabo)!
|
||||||
- Fixed key transversal issues when a key was a substring of a parent key. Thanks [@randyrants](https://github.com/randyrants)!
|
|
||||||
|
|
||||||
### Runner
|
|
||||||
|
|
||||||
- Fixed the update notification toast to show a Unicode arrow. Thanks [@TheJoeFin](https://github.com/TheJoeFin)!
|
|
||||||
|
|
||||||
### Settings
|
### Settings
|
||||||
|
|
||||||
- Added a new Dashboard home page, with quick access for enabling modules, short descriptions and activation methods. Thanks [@niels9001](https://github.com/niels9001) for the design and UI work that made this possible!
|
- When clicking a module's name on the Dashboard, it will navigate to that module's page.
|
||||||
- Fixed a typo in the Hosts File Editor page. Thanks [@Deepak-Sangle](https://github.com/Deepak-Sangle)!
|
- Fixed the clipping of information in the Backup and Restore section of the General Settings page. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
- Added a lock icon to the flyout listing of all modules when its enabled state is controlled by policy.
|
- Updated the File Explorer Add-ons fluent icon. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
- The "All apps" list in the flyout will now list all apps even if their enabled state is controlled by policy.
|
- Added a warning when trying to set a shortcut that might conflict with "Alt Gr" key combinations.
|
||||||
|
- Added a direct link to the OOBE's "What's New page" from the main Settings window. Thanks [@iakrayna](https://github.com/iakrayna)!
|
||||||
|
- Changed mentions from Microsoft Docs to Microsoft Learn.
|
||||||
|
- Fixed the slow reaction to system theme changes.
|
||||||
|
|
||||||
### Video Conference Mute
|
### Text Extractor
|
||||||
|
|
||||||
- Added an option to allow for the toolbar to hide after some time passed. Thanks [@quyenvsp](https://github.com/quyenvsp)!
|
- Move to WPF-UI, localization and light theme support. Thanks [@niels9001](https://github.com/niels9001)!
|
||||||
- Added an option to select to mute or unmute at startup. Thanks [@quyenvsp](https://github.com/quyenvsp)!
|
- Disabled by default on Windows 11, with a information box on Settings to prefer using the Windows Snipping Tool, which now supports OCR.
|
||||||
- Fixed an issue causing a cascade of mute/unmute triggers.
|
|
||||||
|
|
||||||
### Documentation
|
### Documentation
|
||||||
|
|
||||||
- Updated the Group Policy documentation on learn.microsoft.com, removed the Group Policy documentation from the repository and linked to the published documentation on learn.microsoft.com instead.
|
- Fixed some typos in the README. Thanks [@Asymtode712](https://github.com/Asymtode712)!
|
||||||
|
- Reworked the gpo docs on learn.microsoft.com, adding .admx, registry and Intune information. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||||
|
|
||||||
### Development
|
### Development
|
||||||
|
|
||||||
- Added project dependencies to the version project and headers to avoid building errors. Thanks [@johnterickson](https://github.com/johnterickson)!
|
- Updated the check-spelling ci action to 0.22. Thanks [@jsoref](https://github.com/jsoref)!
|
||||||
- Enabled Control Flow Guard in the C++ projects. Thanks [@DHowett](https://github.com/DHowett)!
|
- Refactored the modules data model used between the Settings Dashboard and Flyout.
|
||||||
- Switched the release pipeline to the 1ES governed template. Thanks [@DHowett](https://github.com/DHowett)!
|
- Fixed a flaky interop test that was causing automated CI to hang occasionally.
|
||||||
- Styled XAML files and added a XAML Style checker to the solution, with a CI action to check if code being contributed is compliant. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
- Increased the WebView 2 loading timeout to reduce flakiness in those tests. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
- Suppressed redundant midl file warnings in PowerRename.
|
- Added support for building with the Dev Drive CopyOnWrite feature, increasing build speed. Thanks [@pedrolamas](https://github.com/pedrolamas)!
|
||||||
- Add unit tests to FancyZones Editor. Thanks [@garv5014](https://github.com/garv5014), [@andrewbengordon](https://github.com/andrewbengordon) and [@Cwighty](https://github.com/Cwighty)!
|
- Addressed the C# static analyzers suggestions. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||||
- Improved the Default Layouts internal structure in FancyZones Editor. Thanks [@garv5014](https://github.com/garv5014)!
|
- Addressed the C++ static analyzers suggestions.
|
||||||
- Fixed code issues to allow building in Visual Studio 17.8 Preview 4.
|
- PRs that only contain Markdown or text files changes no longer trigger the full CI. Thanks [@snickler](https://github.com/snickler)!
|
||||||
|
- Updated the Microsoft.Windows.CsWinRT to 2.0.4 to fix building with the official Visual Studio 17.8 release.
|
||||||
|
- Fixed new code quality issues caught by the official Visual Studio 17.8 release.
|
||||||
|
- Added a bot trigger to point contributors to the main new contribution issue on GitHub. Thanks [@Aaron-Junker](https://github.com/Aaron-Junker)!
|
||||||
|
- Removed unneeded entries from expect.txt.
|
||||||
|
- Turned off a new feature from Visual Studio that was adding the commit hash to the binary files Product Version.
|
||||||
|
- Refactored and reviewed the spellcheck entries into different files. Thanks [@Jay-o-Way](https://github.com/Jay-o-Way)!
|
||||||
|
- Added Spectre mitigation and SHA256 hash creation for some DLLs.
|
||||||
|
- Reverted the release pipeline template to a previous release that's stable for shipping PowerToys.
|
||||||
|
|
||||||
#### What is being planned for version 0.76
|
#### What is being planned for version 0.77
|
||||||
|
|
||||||
For [v0.76][github-next-release-work], we'll work on the items below:
|
For [v0.77][github-next-release-work], we'll work on the items below:
|
||||||
|
|
||||||
|
- New utility: Command Not Found
|
||||||
- Language selection
|
- Language selection
|
||||||
- .NET 8 upgrade
|
|
||||||
- Allowing Keyboard Manager to output arbitrary Unicode sequences
|
|
||||||
- Automated UI testing through WinAppDriver
|
- Automated UI testing through WinAppDriver
|
||||||
- Modernize and refresh the UX of PowerToys based on WPF. Here's Work in Progress previews for the modules "PowerToys Run" and "Color Picker":
|
- Develop support for Desired State Configuration
|
||||||
|
- Modernize and refresh the UX of PowerToys based on WPF. Here's the Work in Progress preview for "Color Picker":
|
||||||

|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
75
doc/devdocs/common/FilePreviewCommon.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# [FilePreviewCommon](/src/common/FilePreviewCommon)
|
||||||
|
|
||||||
|
This project contains common code used for previewing and displaying files.
|
||||||
|
|
||||||
|
## Monaco preview
|
||||||
|
|
||||||
|
Monaco preview enables to display developer files. It is based on [Microsoft's Monaco Editor](https://microsoft.github.io/monaco-editor/) which is maintained by the Visual Studio Code team.
|
||||||
|
|
||||||
|
This previewer is used for the File Explorer Dev File Previewer, as well as PowerToys Peek.
|
||||||
|
|
||||||
|
### Update Monaco Editor
|
||||||
|
|
||||||
|
1. Download Monaco editor with [npm](https://www.npmjs.com/): Run `npm i monaco-editor` in the command prompt.
|
||||||
|
2. Delete everything except the `min` folder (the minimised code) from the downloaded files.
|
||||||
|
3. Copy the `min` folder into the `src/common/FilePreviewCommon/Assets/Monaco/monacoSRC` folder of the PowerToys project.
|
||||||
|
4. Generate the JSON file as described in the generate [monaco_languages.json file](#monaco_languagesjson) section.
|
||||||
|
|
||||||
|
### Add a new language definition
|
||||||
|
|
||||||
|
As an example on how to add a new language definition you can look at the one for [registry files](/src/common/FilePreviewCommon/Assets/Monaco/customLanguages/reg.js).
|
||||||
|
|
||||||
|
1. Add the new language definition (written with [Monarch](https://microsoft.github.io/monaco-editor/monarch.html)) as a new file to the [folder containing Monaco custom languages](/src/common/FilePreviewCommon/Assets/Monaco/customLanguages/) (Remember the file name and the string you used for "idDefinition" as you need it later.). The file should be formatted like in the example below. (Please change `idDefinition` to the name of your language.)
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
export function idDefinition() {
|
||||||
|
return {
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Add the following line to the [`monacoSpecialLanguages.js`](/src/common/FilePreviewCommon/Assets/Monaco/monacoSpecialLanguages.js) file, after the other import statements:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { idDefinition } from './customLanguages/file.js';
|
||||||
|
```
|
||||||
|
|
||||||
|
> Replace file.js with the name of your definition file from step 1. Please replace idDefinition with the string you used in step 1.
|
||||||
|
|
||||||
|
3. In the [`monacoSpecialLanguages.js`](/src/common/FilePreviewCommon/Assets/Monaco/monacoSpecialLanguages.js) file add the following line into the `registerAdditionalLanguages` function:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
registerAdditionalNewLanguage("id", [".fileExtension"], idDefinition(), monaco)
|
||||||
|
```
|
||||||
|
|
||||||
|
> Replace id and idDefinition with your id and string used in step 1. Replace fileExtension with a set of file extensions you want the language to register to.
|
||||||
|
|
||||||
|
* The id can be anything. Recommended is one of the file extensions. For example "php" or "reg".
|
||||||
|
|
||||||
|
4. Execute the steps described in the [monaco_languages.json](#monaco_languagesjson) section.
|
||||||
|
|
||||||
|
### Add a new file extension to an existing language
|
||||||
|
|
||||||
|
1. In the [`monacoSpecialLanguages.js`](/src/common/FilePreviewCommon/Assets/Monaco/monacoSpecialLanguages.js) file add the following line to the `registerAdditionalLanguages` function. (`existingId` is the id of the language you want to add the extension to. You can find these id's in the [`monaco_languages.json`](/src/common/FilePreviewCommon/Assets/Monaco/monaco_languages.json) file):
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
registerAdditionalLanguage("id", [".fileExtension"], "existingId", monaco)
|
||||||
|
```
|
||||||
|
|
||||||
|
* If for instance you want to add more extensions to the php language set the id to `phpExt` and the existingId to `php`.
|
||||||
|
|
||||||
|
2. Copy the existing language definition into the `languageDefinitions` function in the same file. You can find the existing definitions in the following folder: [`/src/common/FilePreviewCommon/Assets/Monaco/monacoSRC/min/vs/basic-languages/`](/src/common/FilePreviewCommon/Assets/Monaco/monacoSRC/min/vs/basic-languages/).
|
||||||
|
|
||||||
|
3. Execute the steps described in the [monaco_languages.json](#monaco_languagesjson) section.
|
||||||
|
|
||||||
|
### monaco_languages.json
|
||||||
|
|
||||||
|
[`monaco_languages.json`](/src/common/FilePreviewCommon/Assets/Monaco/monaco_languages.json) contains all extensions and IDs for the languages supported by Monaco. The [`MonacoHelper`](/src/common/FilePreviewCommon/MonacoHelper.cs) class and the installer are using this file to register preview handlers for the defined extensions.
|
||||||
|
|
||||||
|
After updating Monaco Editor and/or adding a new language you should update the [`monaco_languages.json`](/src/common/FilePreviewCommon/Assets/Monaco/monaco_languages.json) file.
|
||||||
|
|
||||||
|
1. Run the [`generateLanguagesJson.html`](/src/common/FilePreviewCommon/Assets/Monaco/generateLanguagesJson.html) file on a local webserver (as webbrowsers will block certain needed features when running the file locally.)
|
||||||
|
* This can for example be achieved by using the [Preview Server](https://marketplace.visualstudio.com/items?itemName=yuichinukiyama.vscode-preview-server) extension for Visual Studio Code: Open the file in Visual Studio Code, right click in the code editor and select `vscode-preview-server: Launch on browser`. The file will be opened in a browser.
|
||||||
|
2. The browser will download the new `monaco_languages.json` file
|
||||||
|
3. Replace the old file with the newly downloaded one in the source code folder.
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# Classes and structures
|
# Classes and structures
|
||||||
|
|
||||||
|
> This document is outdated and will soon be renewed.
|
||||||
|
|
||||||
#### class Animation: [header](/src/common/animation.h) [source](/src/common/animation.cpp)
|
#### class Animation: [header](/src/common/animation.h) [source](/src/common/animation.cpp)
|
||||||
Animation helper class with two easing-in animations: linear and exponential.
|
Animation helper class with two easing-in animations: linear and exponential.
|
||||||
|
|
||||||
7
doc/devdocs/common/readme.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# Common
|
||||||
|
|
||||||
|
The [common](/src/common) folder contains projects with code, that is used in multiple projects.
|
||||||
|
|
||||||
|
## [FilePreviewCommon](FilePreviewCommon.md)
|
||||||
|
|
||||||
|
This project contains common code for file previewing.
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
- [ ] Microsoft plugin project name pattern: `Microsoft.PowerToys.Run.Plugin.{PluginName}`
|
- [ ] Microsoft plugin project name pattern: `Microsoft.PowerToys.Run.Plugin.{PluginName}`
|
||||||
- [ ] Community plugin project name pattern: `Community.PowerToys.Run.Plugin.{PluginName}`
|
- [ ] Community plugin project name pattern: `Community.PowerToys.Run.Plugin.{PluginName}`
|
||||||
- [ ] The project file should import `Version.props` and specify `<Version>$(Version).0</Version>`
|
- [ ] The project file should import `Version.props` and specify `<Version>$(Version).0</Version>`
|
||||||
|
- [ ] If the plugin uses any 3rd party dependencies the project file should import `DynamicPlugin.props`
|
||||||
- [ ] Make sure `*.csproj` specify only x64 platform target
|
- [ ] Make sure `*.csproj` specify only x64 platform target
|
||||||
- [ ] The plugin has to contain a `plugin.json` file of the following format in its root folder
|
- [ ] The plugin has to contain a `plugin.json` file of the following format in its root folder
|
||||||
```
|
```
|
||||||
@@ -18,6 +19,7 @@
|
|||||||
"ExecuteFileName": string, // Should be {Type}.PowerToys.Run.Plugin.{PluginName}.dll
|
"ExecuteFileName": string, // Should be {Type}.PowerToys.Run.Plugin.{PluginName}.dll
|
||||||
"IcoPathDark": string, // Path to dark theme icon. The path is relative to the root plugin folder
|
"IcoPathDark": string, // Path to dark theme icon. The path is relative to the root plugin folder
|
||||||
"IcoPathLight": string // Path to light theme icon. The path is relative to the root plugin folder
|
"IcoPathLight": string // Path to light theme icon. The path is relative to the root plugin folder
|
||||||
|
"DynamicLoading": bool // Sets whether the plugin should dynamically load any dependencies isolated from the core application.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
- [ ] Make sure your `Main` class contains a public, static string property for the `PluginID`. The plugin id has to be the same as the one in the `plugin.json`file.
|
- [ ] Make sure your `Main` class contains a public, static string property for the `PluginID`. The plugin id has to be the same as the one in the `plugin.json`file.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Value Generator Plugin
|
# Value Generator Plugin
|
||||||
|
|
||||||
The Value Generator plugin is used to generate hashes for strings, to calculate base64 encodings and to generate GUIDs versions 1, 3, 4 and 5.
|
The Value Generator plugin is used to generate hashes for strings, to calculate base64 encodings, escape and encode URLs/URIs and to generate GUIDs versions 1, 3, 4 and 5.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -10,7 +10,7 @@ The Value Generator plugin is used to generate hashes for strings, to calculate
|
|||||||
- The result of `string ResultToString()` will be used for the Result's title
|
- The result of `string ResultToString()` will be used for the Result's title
|
||||||
- The `Description` field will be used for the Result's subtitle
|
- The `Description` field will be used for the Result's subtitle
|
||||||
|
|
||||||
### [`HashRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Hashing/HashRequest.cs)
|
### [`HashRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Hashing/HashRequest.cs)
|
||||||
- Implements IComputeRequest
|
- Implements IComputeRequest
|
||||||
- Supports the hashing algorithms from System.Security.Cryptography:
|
- Supports the hashing algorithms from System.Security.Cryptography:
|
||||||
- MD5
|
- MD5
|
||||||
@@ -20,19 +20,19 @@ The Value Generator plugin is used to generate hashes for strings, to calculate
|
|||||||
- SHA512
|
- SHA512
|
||||||
- If other algorithms are added to System.Security.Cryptography, they can be added to the `_algorithms` dictionary. [`InputParser.ParseInput()`](#inputparser) will need to return a `HashRequest` for the algorithm in the query
|
- If other algorithms are added to System.Security.Cryptography, they can be added to the `_algorithms` dictionary. [`InputParser.ParseInput()`](#inputparser) will need to return a `HashRequest` for the algorithm in the query
|
||||||
|
|
||||||
### [`Base64Request`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Base64/Base64Request.cs)
|
### [`Base64Request`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Base64/Base64Request.cs)
|
||||||
- Implements IComputeRequest
|
- Implements IComputeRequest
|
||||||
- `Compute()` will populate `Result` with the base64 encoding of the byte array passed in the constructor
|
- `Compute()` will populate `Result` with the base64 encoding of the byte array passed in the constructor
|
||||||
|
|
||||||
### [`Base64DecodeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Base64/Base64DecodeRequest.cs)
|
### [`Base64DecodeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Base64/Base64DecodeRequest.cs)
|
||||||
- Implements IComputeRequest
|
- Implements IComputeRequest
|
||||||
- `Compute()` will populate `Result` with the decoded byte array of the base64 string passed in the constructor
|
- `Compute()` will populate `Result` with the decoded byte array of the base64 string passed in the constructor
|
||||||
|
|
||||||
### [`GUIDRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/GUID/GUIDRequest.cs)
|
### [`GUIDRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/GUID/GUIDRequest.cs)
|
||||||
- Implements IComputeRequest
|
- Implements IComputeRequest
|
||||||
- Uses the [`GUIDGenerator`](#guidgenerator) class to generate or compute the requested GUID
|
- Uses the [`GUIDGenerator`](#guidgenerator) class to generate or compute the requested GUID
|
||||||
|
|
||||||
### [`GUIDGenerator`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/GUID/GUIDGenerator.cs)
|
### [`GUIDGenerator`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/GUID/GUIDGenerator.cs)
|
||||||
- Utility class for generating or calculating GUIDs
|
- Utility class for generating or calculating GUIDs
|
||||||
- Generating GUID versions 1 and 4 is done using builtin APIs. [`UuidCreateSequential`](https://learn.microsoft.com/en-us/windows/win32/api/rpcdce/nf-rpcdce-uuidcreatesequential) for version 1 and `System.Guid.NewGuid()` for version 4
|
- Generating GUID versions 1 and 4 is done using builtin APIs. [`UuidCreateSequential`](https://learn.microsoft.com/en-us/windows/win32/api/rpcdce/nf-rpcdce-uuidcreatesequential) for version 1 and `System.Guid.NewGuid()` for version 4
|
||||||
- Versions 3 and 5 take two parameters, a namespace and a name
|
- Versions 3 and 5 take two parameters, a namespace and a name
|
||||||
@@ -40,6 +40,32 @@ The Value Generator plugin is used to generate hashes for strings, to calculate
|
|||||||
- The `PredefinedNamespaces` dictionary contains aliases for the predefined namespaces
|
- The `PredefinedNamespaces` dictionary contains aliases for the predefined namespaces
|
||||||
- The name can be any string
|
- The name can be any string
|
||||||
|
|
||||||
|
### [`UrlEncodeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/UrlEncodeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the encoded url converted using `HttpUtility.UrlEncode()`.
|
||||||
|
|
||||||
|
### [`UrlDecodeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/UrlDecodeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the decoded url converted using `HttpUtility.UrlDecode()`.
|
||||||
|
|
||||||
|
### [`DataEscapeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/DataEscapeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the escaped data string converted using `System.Uri.EscapeDataString()`.
|
||||||
|
|
||||||
|
### [`DataUnescapeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/DataUnescapeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the unescaped data string converted using `System.Uri.UnescapeDataString()`.
|
||||||
|
|
||||||
|
### [`HexEscapeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/HexEscapeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the escaped data string converted using `System.Uri.HexEscape()`.
|
||||||
|
- Only single characters are supported as input.
|
||||||
|
|
||||||
|
### [`HexUnescapeRequest`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/Uri/HexUnescapeRequest.cs)
|
||||||
|
- Implements IComputeRequest
|
||||||
|
- `Compute()` will populate `Result` with the unescaped data string converted using `System.Uri.HexUnescape()`.
|
||||||
|
- Only the first hexadecimal character in the string gets unescaped. The rest of the user input is ignored.
|
||||||
|
|
||||||
### [`InputParser`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/InputParser.cs)
|
### [`InputParser`](/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/InputParser.cs)
|
||||||
- It is responsible only for parsing the query from the user
|
- It is responsible only for parsing the query from the user
|
||||||
- Based on the user query, the `ParseInput()` method must return an object that implements the `IComputeRequest` interface or it must throw one of `FormatException` or `ArgumentException`
|
- Based on the user query, the `ParseInput()` method must return an object that implements the `IComputeRequest` interface or it must throw one of `FormatException` or `ArgumentException`
|
||||||
@@ -51,6 +77,6 @@ The Value Generator plugin is used to generate hashes for strings, to calculate
|
|||||||
> The error message will not be shown to the user but a log message will be created
|
> The error message will not be shown to the user but a log message will be created
|
||||||
|
|
||||||
### Adding a new value generator
|
### Adding a new value generator
|
||||||
1. To add a new value generator, create a folder under `/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/` and inside it add a class that implements `IComputeRequest`.
|
1. To add a new value generator, create a folder under `/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Generators/` and inside it add a class that implements `IComputeRequest`.
|
||||||
2. Add any utility classes that are specific to the new generator inside the same folder to keep them separated from the other generators.
|
2. Add any utility classes that are specific to the new generator inside the same folder to keep them separated from the other generators.
|
||||||
3. Modify the `InputParser.ParseInput()` to handle a request for the new generator and return an instance of the class you created in step 1
|
3. Modify the `InputParser.ParseInput()` to handle a request for the new generator and return an instance of the class you created in step 1
|
||||||
@@ -52,7 +52,7 @@ The user can switch to the found windows, close them or kill their process.
|
|||||||
- It is responsible for updating the search text and performing a fuzzy search on all the open windows.
|
- It is responsible for updating the search text and performing a fuzzy search on all the open windows.
|
||||||
|
|
||||||
### [`Window.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs)
|
### [`Window.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs)
|
||||||
- The [`Window`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs) class represents a specific window and has functions to get the name of the window, the state of the window (whether it is visible or not), the `SwitchTowindow` function which switches the desktop focus to the selected window and the `CloseThisWindow` function which closes the window. The `SwitchTowindow` action is performed when the user clicks on a window walker plugin result.
|
- The [`Window`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs) class represents a specific window and has functions to get the name of the window, the state of the window (whether it is visible or not), the `SwitchToWindow` function which switches the desktop focus to the selected window and the `CloseThisWindow` function which closes the window. The `switchToWindow` action is performed when the user clicks on a window walker plugin result.
|
||||||
- The `Window` class holds a static cache with the process information of all windows we know so far and each window instance has a property which holds its process information (name, file, ...). The process data in the cache and the window property are of the type `WindowProcess`.
|
- The `Window` class holds a static cache with the process information of all windows we know so far and each window instance has a property which holds its process information (name, file, ...). The process data in the cache and the window property are of the type `WindowProcess`.
|
||||||
- To get the desktop information for a window, we use the common [`VirtualDesktopHelper`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs) in `Wox.Plugin` project. The instance of `VirtualDesktopHelper` is cached in the [`Main`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Main.cs) class of the plugin at runtime. The desktop information is stored in a property of the type [`VDesktop`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VDesktop.cs).
|
- To get the desktop information for a window, we use the common [`VirtualDesktopHelper`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs) in `Wox.Plugin` project. The instance of `VirtualDesktopHelper` is cached in the [`Main`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Main.cs) class of the plugin at runtime. The desktop information is stored in a property of the type [`VDesktop`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VDesktop.cs).
|
||||||
|
|
||||||
|
|||||||
7
doc/devdocs/modules/peek/readme.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# PowerToys Peek
|
||||||
|
|
||||||
|
> Documentation is currently under construction
|
||||||
|
|
||||||
|
## Dev file previewer
|
||||||
|
|
||||||
|
The previewer for developer files uses the project in [FileExplorerCommon] common project to render monaco. You can find its documentation here: [/doc/devdocs/common/FilePreviewCommon.md](/doc/devdocs/common/FilePreviewCommon.md).
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
# Developer Preview (Monaco)
|
|
||||||
|
|
||||||
Developer preview is based on [Microsoft's Monaco Editor](https://microsoft.github.io/monaco-editor/) which is maintained by the Visual Studio Code team.
|
|
||||||
|
|
||||||
## Update monaco editor
|
|
||||||
|
|
||||||
1. Download Monaco editor with npm: `npm i monaco-editor`.
|
|
||||||
2. Delete everything except the `min` folder (the minimised code).
|
|
||||||
3. Copy the `min` folder inside the [`monacoSRC`](/src/modules/previewpane/MonacoPreviewHandler/monacoSRC) folder.
|
|
||||||
4. Generate the JSON file (see section below)
|
|
||||||
|
|
||||||
## monaco_languages.json
|
|
||||||
|
|
||||||
[`monaco_languages.json`](/src/modules/previewpane/MonacoPreviewHandler/monaco_languages.json) contains all extensions and Id's for the supported languages of Monaco. The [`FileHandler`](/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs) class and the installer are using this file.
|
|
||||||
|
|
||||||
### Generate monaco_languages.json file
|
|
||||||
|
|
||||||
After you updated monaco editor or adding a new language you should update the [`monaco_languages.json`](/src/modules/previewpane/MonacoPreviewHandler/monaco_languages.json) file.
|
|
||||||
|
|
||||||
You have to run the file on a local webserver!
|
|
||||||
|
|
||||||
1. Build monaco in debug mode.
|
|
||||||
2. Open [generateLanguagesJson.html](/src/modules/previewpane/MonacoPreviewHandler/generateLanguagesJson.html) in a browser.
|
|
||||||
3. Replace the old JSON file.
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#### [`main.cpp`](/src/runner/main.cpp)
|
#### [`main.cpp`](/src/runner/main.cpp)
|
||||||
Contains the executable starting point, initialization code and the list of known PowerToys. All singletones are also initialized here at the start. Loads all the powertoys by scanning the `./modules` folder and `enable()`s those marked as enabled in `%LOCALAPPDATA%\Microsoft\PowerToys\settings.json` config. Then it runs [a message loop](https://learn.microsoft.com/windows/win32/winmsg/using-messages-and-message-queues) for the tray UI. Note that this message loop also [handles lowlevel_keyboard_hook events](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/lowlevel_keyboard_event.cpp#L24).
|
Contains the executable starting point, initialization code and the list of known PowerToys. All singletons are also initialized here at the start. Loads all the powertoys by scanning the `./modules` folder and `enable()`s those marked as enabled in `%LOCALAPPDATA%\Microsoft\PowerToys\settings.json` config. Then it runs [a message loop](https://learn.microsoft.com/windows/win32/winmsg/using-messages-and-message-queues) for the tray UI. Note that this message loop also [handles lowlevel_keyboard_hook events](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/lowlevel_keyboard_event.cpp#L24).
|
||||||
|
|
||||||
#### [`powertoy_module.h`](/src/runner/powertoy_module.h) and [`powertoy_module.cpp`](/src/runner/powertoy_module.cpp)
|
#### [`powertoy_module.h`](/src/runner/powertoy_module.h) and [`powertoy_module.cpp`](/src/runner/powertoy_module.cpp)
|
||||||
Contains code for initializing and managing the PowerToy modules. `PowertoyModule` is a RAII-style holder for the `PowertoyModuleIface` pointer, which we got by [invoking module DLL's `powertoy_create` function](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/powertoy_module.cpp#L13-L24).
|
Contains code for initializing and managing the PowerToy modules. `PowertoyModule` is a RAII-style holder for the `PowertoyModuleIface` pointer, which we got by [invoking module DLL's `powertoy_create` function](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/powertoy_module.cpp#L13-L24).
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ The Settings v2 process uses two way IPC to communicate with the runner process.
|
|||||||
|
|
||||||
## Initialization
|
## Initialization
|
||||||
- On the settings' side, the two way IPC delegates are contained with the [`ShellPage.xaml.cs`](/src/settings-ui/Settings.UI/Views/ShellPage.xaml.cs) file. The delegates are static and the views for all the powerToys send the ipc information to the viewmodels as `ShellPage.DefaultSndMSGCallBack`.
|
- On the settings' side, the two way IPC delegates are contained with the [`ShellPage.xaml.cs`](/src/settings-ui/Settings.UI/Views/ShellPage.xaml.cs) file. The delegates are static and the views for all the powerToys send the ipc information to the viewmodels as `ShellPage.DefaultSndMSGCallBack`.
|
||||||
- These delegates are initialized within the [`Mainwindow.xaml.cs`](/src/settings-ui/Settings.UI/MainWindow.xaml.cs) file in the `Settings.Runner` project.
|
- These delegates are initialized within the [`MainWindow.xaml.cs`](/src/settings-ui/Settings.UI/MainWindow.xaml.cs) file in the `Settings.Runner` project.
|
||||||
|
|
||||||
|
|
||||||
## Types of IPC delegates
|
## Types of IPC delegates
|
||||||
|
|||||||
@@ -22,5 +22,5 @@ The viewmodels are located within the [`Settings.UI.Library`](/src/settings-ui/S
|
|||||||
- Some viewmodels expect the runner to create the file instead of creating the file themselves, like in keyboard manager.
|
- Some viewmodels expect the runner to create the file instead of creating the file themselves, like in keyboard manager.
|
||||||
- The colorpicker powertoy creates the `settings.json` within the module. This must be taken care of when encapsulated within the settingsRepository.
|
- The colorpicker powertoy creates the `settings.json` within the module. This must be taken care of when encapsulated within the settingsRepository.
|
||||||
- Currently, all modules use the `SettingsRepository` to access the General Settings config.
|
- Currently, all modules use the `SettingsRepository` to access the General Settings config.
|
||||||
- However, only Fancyzones, ShortcutGuide and PowerPreview use the `SettingsRepository` to access the module properties.
|
- However, only FancyZones, ShortcutGuide and PowerPreview use the `SettingsRepository` to access the module properties.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# [FancyZone hit test tool](/tools/FancyZone_HitTest/)
|
# [FancyZone hit test tool](/tools/FancyZone_HitTest/)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
This tool tests the FancyZones layout selection logic. It displays a window with 5 zones. By hovering the mouse over the zones, the zone under the mouse cursor is highlighted. The sidebar shows different metrics that are used to determine which zone is under the mouse cursor.
|
This tool tests the FancyZones layout selection logic. It displays a window with 5 zones. By hovering the mouse over the zones, the zone under the mouse cursor is highlighted. The sidebar shows different metrics that are used to determine which zone is under the mouse cursor.
|
||||||
@@ -11,7 +11,7 @@ Following tools are currently available:
|
|||||||
* [BugReportTool](bug-report-tool.md) - A tool to collect logs and system information for bug reports.
|
* [BugReportTool](bug-report-tool.md) - A tool to collect logs and system information for bug reports.
|
||||||
* [Build tools](build-tools.md) - A set of scripts that help building PowerToys.
|
* [Build tools](build-tools.md) - A set of scripts that help building PowerToys.
|
||||||
* [Clean up tool](clean-up-tool.md) - A tool to clean up the PowerToys installation.
|
* [Clean up tool](clean-up-tool.md) - A tool to clean up the PowerToys installation.
|
||||||
* [FancyZones hit test](fancyzone-hit-test.md) - A tool to test FancyZones layout selection logic.
|
* [FancyZones hit test](fancyzones-hit-test.md) - A tool to test FancyZones layout selection logic.
|
||||||
* [FancyZones draw layout test](fancyzones-draw-layout-test.md) - A tool to test FancyZones layout drawing logic.
|
* [FancyZones draw layout test](fancyzones-draw-layout-test.md) - A tool to test FancyZones layout drawing logic.
|
||||||
* [FancyZones zonable tester](fancyzones-zonable-tester.md) - A tool to test if a window is zonable.
|
* [FancyZones zonable tester](fancyzones-zonable-tester.md) - A tool to test if a window is zonable.
|
||||||
* [Monitor info report](monitor-info-report.md) - A small diagnostic tool which helps identifying WinAPI bugs related to the physical monitor detection.
|
* [Monitor info report](monitor-info-report.md) - A small diagnostic tool which helps identifying WinAPI bugs related to the physical monitor detection.
|
||||||
|
|||||||
BIN
doc/images/icons/Command Not Found.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
@@ -33,3 +33,4 @@ Contact the developers of a plugin directly for assistance with a specific plugi
|
|||||||
| [Quick Lookup](https://github.com/GTGalaxi/quick-lookup-ptrun) | [gtgalaxi](https://github.com/GTGalaxi) | Search across multiple cyber security tools |
|
| [Quick Lookup](https://github.com/GTGalaxi/quick-lookup-ptrun) | [gtgalaxi](https://github.com/GTGalaxi) | Search across multiple cyber security tools |
|
||||||
| [Visual Studio](https://github.com/davidegiacometti/PowerToys-Run-VisualStudio) | [davidegiacometti](https://github.com/davidegiacometti) | Open Visual Studio recents |
|
| [Visual Studio](https://github.com/davidegiacometti/PowerToys-Run-VisualStudio) | [davidegiacometti](https://github.com/davidegiacometti) | Open Visual Studio recents |
|
||||||
| [WinGet](https://github.com/bostrot/PowerToysRunPluginWinget) | [bostrot](https://github.com/bostrot) | Search and install packages from WinGet |
|
| [WinGet](https://github.com/bostrot/PowerToysRunPluginWinget) | [bostrot](https://github.com/bostrot) | Search and install packages from WinGet |
|
||||||
|
| [Scoop](https://github.com/Quriz/PowerToysRunScoop) | [Quriz](https://github.com/Quriz) | Search and install packages from Scoop |
|
||||||
|
|||||||
24
installer/PowerToysSetup/CmdNotFound.wxs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
||||||
|
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||||
|
|
||||||
|
<?include $(sys.CURRENTDIR)\Common.wxi?>
|
||||||
|
|
||||||
|
<Fragment>
|
||||||
|
<DirectoryRef Id="INSTALLFOLDER" FileSource="$(var.BinDir)">
|
||||||
|
<!-- !Warning! Make sure to change Component Guid if you update the file list -->
|
||||||
|
<Component Id="Module_CmdNotFound" Win64="yes" Guid="80F648F2-29F6-4685-AED4-04DC1B6EE176">
|
||||||
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
||||||
|
<RegistryValue Type="string" Name="Module_CmdNotFound" Value="" KeyPath="yes"/>
|
||||||
|
</RegistryKey>
|
||||||
|
<File Source="$(var.BinDir)WinGetCommandNotFound.psd1" />
|
||||||
|
<!-- The dll files will be picked up by BaseApplications generateAllFileComponents.ps1-->
|
||||||
|
</Component>
|
||||||
|
</DirectoryRef>
|
||||||
|
|
||||||
|
<ComponentGroup Id="CmdNotFoundComponentGroup">
|
||||||
|
<ComponentRef Id="Module_CmdNotFound" />
|
||||||
|
</ComponentGroup>
|
||||||
|
|
||||||
|
</Fragment>
|
||||||
|
</Wix>
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
<?define PastePlainProjectName="PastePlain"?>
|
<?define PastePlainProjectName="PastePlain"?>
|
||||||
<?define RegistryPreviewProjectName="RegistryPreview"?>
|
<?define RegistryPreviewProjectName="RegistryPreview"?>
|
||||||
<?define PeekProjectName="Peek"?>
|
<?define PeekProjectName="Peek"?>
|
||||||
|
<?define CmdNotFoundProjectName="CmdNotFound"?>
|
||||||
|
|
||||||
<?define RepoDir="$(var.ProjectDir)..\..\" ?>
|
<?define RepoDir="$(var.ProjectDir)..\..\" ?>
|
||||||
<?if $(var.Platform) = x64?>
|
<?if $(var.Platform) = x64?>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureNuGetPackageBuildImports" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureNuGetPackageBuildImports"
|
||||||
|
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\wix.props" Condition="Exists('..\wix.props')" />
|
<Import Project="..\wix.props" Condition="Exists('..\wix.props')" />
|
||||||
<Import Project="..\..\src\Version.props" />
|
<Import Project="..\..\src\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Platform)' == 'x64'">
|
<PropertyGroup Condition="'$(Platform)' == 'x64'">
|
||||||
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\x64\$(Configuration)\Assets\Monaco\monacoSRC</DefineConstants>
|
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\x64\$(Configuration)\Assets\Monaco\monacoSRC</DefineConstants>
|
||||||
<!-- THIS IS AN INNER LOOP OPTIMIZATION
|
<!-- THIS IS AN INNER LOOP OPTIMIZATION
|
||||||
@@ -10,23 +10,23 @@
|
|||||||
using a specific profile. If you're doing local installer builds, this will
|
using a specific profile. If you're doing local installer builds, this will
|
||||||
simulate the build pipeline doing that for you. -->
|
simulate the build pipeline doing that for you. -->
|
||||||
<PreBuildEvent>IF NOT DEFINED IsPipeline (
|
<PreBuildEvent>IF NOT DEFINED IsPipeline (
|
||||||
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.19041.0
|
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.19041.0 -vcvars_ver=$(VCToolsVersion)
|
||||||
SET PTRoot=$(SolutionDir)\..
|
SET PTRoot=$(SolutionDir)\..
|
||||||
call "..\..\..\publish.cmd" x64
|
call "..\..\..\publish.cmd" x64
|
||||||
)
|
)
|
||||||
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
|
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Platform)' != 'x64'">
|
<PropertyGroup Condition="'$(Platform)' != 'x64'">
|
||||||
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\ARM64\$(Configuration)\Assets\Monaco\monacoSRC</DefineConstants>
|
<DefineConstants>Version=$(Version);MonacoSRCHarvestPath=$(ProjectDir)..\..\ARM64\$(Configuration)\Assets\Monaco\monacoSRC</DefineConstants>
|
||||||
<PreBuildEvent>IF NOT DEFINED IsPipeline (
|
<PreBuildEvent>IF NOT DEFINED IsPipeline (
|
||||||
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=arm64 -host_arch=amd64 -winsdk=10.0.19041.0
|
call "$([MSBuild]::GetVsInstallRoot())\Common7\Tools\VsDevCmd.bat" -arch=arm64 -host_arch=amd64 -winsdk=10.0.19041.0 -vcvars_ver=$(VCToolsVersion)
|
||||||
SET PTRoot=$(SolutionDir)\..
|
SET PTRoot=$(SolutionDir)\..
|
||||||
call "..\..\..\publish.cmd" arm64
|
call "..\..\..\publish.cmd" arm64
|
||||||
)
|
)
|
||||||
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
|
call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuildThisFileDirectory)\generateMonacoWxs.ps1 -monacoWxsFile "$(MSBuildThisFileDirectory)\MonacoSRC.wxs"
|
||||||
</PreBuildEvent>
|
</PreBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
||||||
@@ -104,6 +104,7 @@ call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuil
|
|||||||
|
|
||||||
<Compile Include="Awake.wxs" />
|
<Compile Include="Awake.wxs" />
|
||||||
<Compile Include="BaseApplications.wxs" />
|
<Compile Include="BaseApplications.wxs" />
|
||||||
|
<Compile Include="CmdNotFound.wxs" />
|
||||||
<Compile Include="ColorPicker.wxs" />
|
<Compile Include="ColorPicker.wxs" />
|
||||||
<Compile Include="EnvironmentVariables.wxs" />
|
<Compile Include="EnvironmentVariables.wxs" />
|
||||||
<Compile Include="FileExplorerPreview.wxs" />
|
<Compile Include="FileExplorerPreview.wxs" />
|
||||||
@@ -181,18 +182,6 @@ call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuil
|
|||||||
<Target Name="AfterBuild">
|
<Target Name="AfterBuild">
|
||||||
</Target> -->
|
</Target> -->
|
||||||
<Target Name="BeforeBuild">
|
<Target Name="BeforeBuild">
|
||||||
<HeatDirectory Directory="..\..\src\common\FilePreviewCommon\Assets\Monaco\monacoSRC"
|
<HeatDirectory Directory="..\..\src\common\FilePreviewCommon\Assets\Monaco\monacoSRC" PreprocessorVariable="var.MonacoSRCHarvestPath" OutputFile="MonacoSRC.wxs" ComponentGroupName="MonacoSRCHeatGenerated" DirectoryRefId="MonacoPreviewHandlerMonacoSRCFolder" AutogenerateGuids="false" GenerateGuidsNow="true" ToolPath="$(WixToolPath)" RunAsSeparateProcess="true" SuppressFragments="false" SuppressRegistry="false" SuppressRootDirectory="true"/>
|
||||||
PreprocessorVariable="var.MonacoSRCHarvestPath"
|
|
||||||
OutputFile="MonacoSRC.wxs"
|
|
||||||
ComponentGroupName="MonacoSRCHeatGenerated"
|
|
||||||
DirectoryRefId="MonacoPreviewHandlerMonacoSRCFolder"
|
|
||||||
AutogenerateGuids="false"
|
|
||||||
GenerateGuidsNow="true"
|
|
||||||
ToolPath="$(WixToolPath)"
|
|
||||||
RunAsSeparateProcess="true"
|
|
||||||
SuppressFragments="false"
|
|
||||||
SuppressRegistry="false"
|
|
||||||
SuppressRootDirectory="true"/>
|
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -72,6 +72,7 @@
|
|||||||
<ComponentGroupRef Id="VideoConferenceComponentGroup" />
|
<ComponentGroupRef Id="VideoConferenceComponentGroup" />
|
||||||
<ComponentGroupRef Id="MouseWithoutBordersComponentGroup" />
|
<ComponentGroupRef Id="MouseWithoutBordersComponentGroup" />
|
||||||
<ComponentGroupRef Id="EnvironmentVariablesComponentGroup" />
|
<ComponentGroupRef Id="EnvironmentVariablesComponentGroup" />
|
||||||
|
<ComponentGroupRef Id="CmdNotFoundComponentGroup" />
|
||||||
|
|
||||||
<ComponentGroupRef Id="ResourcesComponentGroup" />
|
<ComponentGroupRef Id="ResourcesComponentGroup" />
|
||||||
<ComponentGroupRef Id="WindowsAppSDKComponentGroup" />
|
<ComponentGroupRef Id="WindowsAppSDKComponentGroup" />
|
||||||
@@ -133,6 +134,7 @@
|
|||||||
<InstallExecuteSequence>
|
<InstallExecuteSequence>
|
||||||
<Custom Action="DetectPrevInstallPath" After="AppSearch" />
|
<Custom Action="DetectPrevInstallPath" After="AppSearch" />
|
||||||
<Custom Action="SetLaunchPowerToysParam" Before="LaunchPowerToys" />
|
<Custom Action="SetLaunchPowerToysParam" Before="LaunchPowerToys" />
|
||||||
|
<Custom Action="SetUninstallCommandNotFoundParam" Before="UninstallCommandNotFound" />
|
||||||
<Custom Action="SetApplyModulesRegistryChangeSetsParam" Before="ApplyModulesRegistryChangeSets" />
|
<Custom Action="SetApplyModulesRegistryChangeSetsParam" Before="ApplyModulesRegistryChangeSets" />
|
||||||
<Custom Action="SetUnApplyModulesRegistryChangeSetsParam" Before="UnApplyModulesRegistryChangeSets" />
|
<Custom Action="SetUnApplyModulesRegistryChangeSetsParam" Before="UnApplyModulesRegistryChangeSets" />
|
||||||
<Custom Action="CheckGPO" After="InstallInitialize">
|
<Custom Action="CheckGPO" After="InstallInitialize">
|
||||||
@@ -159,6 +161,9 @@
|
|||||||
<Custom Action="UnRegisterContextMenuPackages" Before="RemoveFiles">
|
<Custom Action="UnRegisterContextMenuPackages" Before="RemoveFiles">
|
||||||
Installed AND (REMOVE="ALL")
|
Installed AND (REMOVE="ALL")
|
||||||
</Custom>
|
</Custom>
|
||||||
|
<Custom Action="UninstallCommandNotFound" Before="RemoveFiles">
|
||||||
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
||||||
|
</Custom>
|
||||||
<Custom Action="UninstallServicesTask" After="InstallFinalize">
|
<Custom Action="UninstallServicesTask" After="InstallFinalize">
|
||||||
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")
|
||||||
</Custom>
|
</Custom>
|
||||||
@@ -200,6 +205,10 @@
|
|||||||
Property="UnApplyModulesRegistryChangeSets"
|
Property="UnApplyModulesRegistryChangeSets"
|
||||||
Value="[INSTALLFOLDER]" />
|
Value="[INSTALLFOLDER]" />
|
||||||
|
|
||||||
|
<CustomAction Id="SetUninstallCommandNotFoundParam"
|
||||||
|
Property="UninstallCommandNotFound"
|
||||||
|
Value="[INSTALLFOLDER]" />
|
||||||
|
|
||||||
<CustomAction Id="SetCreateWinAppSDKHardlinksParam"
|
<CustomAction Id="SetCreateWinAppSDKHardlinksParam"
|
||||||
Property="CreateWinAppSDKHardlinks"
|
Property="CreateWinAppSDKHardlinks"
|
||||||
Value="[INSTALLFOLDER]" />
|
Value="[INSTALLFOLDER]" />
|
||||||
@@ -253,6 +262,14 @@
|
|||||||
DllEntry="UninstallServicesCA"
|
DllEntry="UninstallServicesCA"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<CustomAction Id="UninstallCommandNotFound"
|
||||||
|
Return="ignore"
|
||||||
|
Impersonate="yes"
|
||||||
|
Execute="deferred"
|
||||||
|
BinaryKey="PTCustomActions"
|
||||||
|
DllEntry="UninstallCommandNotFoundModuleCA"
|
||||||
|
/>
|
||||||
|
|
||||||
<CustomAction Id="TelemetryLogInstallSuccess"
|
<CustomAction Id="TelemetryLogInstallSuccess"
|
||||||
Return="ignore"
|
Return="ignore"
|
||||||
Impersonate="yes"
|
Impersonate="yes"
|
||||||
|
|||||||
@@ -411,6 +411,24 @@
|
|||||||
</RegistryKey>
|
</RegistryKey>
|
||||||
<File Id="QoiPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.QoiPreviewHandler.resources.dll" />
|
<File Id="QoiPreviewHandler_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.QoiPreviewHandler.resources.dll" />
|
||||||
</Component>
|
</Component>
|
||||||
|
<Component
|
||||||
|
Id="Awake_$(var.IdSafeLanguage)_Component"
|
||||||
|
Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER"
|
||||||
|
Guid="$(var.CompGUIDPrefix)1F">
|
||||||
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
||||||
|
<RegistryValue Type="string" Name="Awake_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes"/>
|
||||||
|
</RegistryKey>
|
||||||
|
<File Id="Awake_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.Awake.resources.dll" />
|
||||||
|
</Component>
|
||||||
|
<Component
|
||||||
|
Id="PowerOCR_$(var.IdSafeLanguage)_Component"
|
||||||
|
Directory="Resource$(var.IdSafeLanguage)INSTALLFOLDER"
|
||||||
|
Guid="$(var.CompGUIDPrefix)20">
|
||||||
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
||||||
|
<RegistryValue Type="string" Name="PowerOCR_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes"/>
|
||||||
|
</RegistryKey>
|
||||||
|
<File Id="PowerOCR_$(var.IdSafeLanguage)_File" Source="$(var.BinDir)\$(var.Language)\PowerToys.PowerOCR.resources.dll" />
|
||||||
|
</Component>
|
||||||
<?undef IdSafeLanguage?>
|
<?undef IdSafeLanguage?>
|
||||||
<?undef CompGUIDPrefix?>
|
<?undef CompGUIDPrefix?>
|
||||||
<?endforeach?>
|
<?endforeach?>
|
||||||
|
|||||||
@@ -19,12 +19,14 @@
|
|||||||
<Fragment>
|
<Fragment>
|
||||||
<DirectoryRef Id="WinUI3AppsAssetsFolder">
|
<DirectoryRef Id="WinUI3AppsAssetsFolder">
|
||||||
<Directory Id="SettingsV2AssetsInstallFolder" Name="Settings">
|
<Directory Id="SettingsV2AssetsInstallFolder" Name="Settings">
|
||||||
|
<Directory Id="SettingsAppAssetsScriptsFolder" Name="Scripts"/>
|
||||||
<Directory Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" Name="FluentIcons" />
|
<Directory Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" Name="FluentIcons" />
|
||||||
<Directory Id="SettingsV2AssetsModulesInstallFolder" Name="Modules" >
|
<Directory Id="SettingsV2AssetsModulesInstallFolder" Name="Modules" >
|
||||||
<Directory Id="SettingsV2OOBEAssetsModulesInstallFolder" Name="OOBE" />
|
<Directory Id="SettingsV2OOBEAssetsModulesInstallFolder" Name="OOBE" />
|
||||||
</Directory>
|
</Directory>
|
||||||
</Directory>
|
</Directory>
|
||||||
</DirectoryRef>
|
</DirectoryRef>
|
||||||
|
|
||||||
<DirectoryRef Id="SettingsV2AssetsInstallFolder" FileSource="$(var.SettingsV2AssetsFilesPath)">
|
<DirectoryRef Id="SettingsV2AssetsInstallFolder" FileSource="$(var.SettingsV2AssetsFilesPath)">
|
||||||
<!-- Generated by generateFileComponents.ps1 -->
|
<!-- Generated by generateFileComponents.ps1 -->
|
||||||
<!--SettingsV2AssetsFiles_Component_Def-->
|
<!--SettingsV2AssetsFiles_Component_Def-->
|
||||||
@@ -45,6 +47,19 @@
|
|||||||
<!--SettingsV2OOBEAssetsFluentIconsFiles_Component_Def-->
|
<!--SettingsV2OOBEAssetsFluentIconsFiles_Component_Def-->
|
||||||
</DirectoryRef>
|
</DirectoryRef>
|
||||||
|
|
||||||
|
<DirectoryRef Id="SettingsAppAssetsScriptsFolder" FileSource="$(var.SettingsV2AssetsFilesPath)\Scripts\">
|
||||||
|
<Component Id="CommandNotFound_Scripts" Win64="yes" Guid="898EFA1E-EDD3-4F4B-8C7F-4A14B0D05B02">
|
||||||
|
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
||||||
|
<RegistryValue Type="string" Name="CommandNotFound_Scripts" Value="" KeyPath="yes"/>
|
||||||
|
</RegistryKey>
|
||||||
|
<File Id="CommandNotFound_Scripts_EnableModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\EnableModule.ps1" />
|
||||||
|
<File Id="CommandNotFound_Scripts_DisableModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\DisableModule.ps1" />
|
||||||
|
<File Id="CommandNotFound_Scripts_CheckCmdNotFoundRequirements.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\CheckCmdNotFoundRequirements.ps1" />
|
||||||
|
<File Id="CommandNotFound_Scripts_InstallWinGetClientModule.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\InstallWinGetClientModule.ps1" />
|
||||||
|
<File Id="CommandNotFound_Scripts_InstallPowerShell7.ps1" Source="$(var.SettingsV2AssetsFilesPath)\Scripts\InstallPowerShell7.ps1" />
|
||||||
|
</Component>
|
||||||
|
</DirectoryRef>
|
||||||
|
|
||||||
<ComponentGroup Id="SettingsComponentGroup">
|
<ComponentGroup Id="SettingsComponentGroup">
|
||||||
|
|
||||||
<Component Id="RemoveSettingsFolder" Guid="2D3AEF68-4E5A-4FF9-A5C0-9E53391AC754" Directory="SettingsV2AssetsInstallFolder" >
|
<Component Id="RemoveSettingsFolder" Guid="2D3AEF68-4E5A-4FF9-A5C0-9E53391AC754" Directory="SettingsV2AssetsInstallFolder" >
|
||||||
@@ -55,7 +70,9 @@
|
|||||||
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsFluentIconsInstallFolder" Directory="SettingsV2OOBEAssetsFluentIconsInstallFolder" On="uninstall"/>
|
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsFluentIconsInstallFolder" Directory="SettingsV2OOBEAssetsFluentIconsInstallFolder" On="uninstall"/>
|
||||||
<RemoveFolder Id="RemoveFolderSettingsV2AssetsModulesInstallFolder" Directory="SettingsV2AssetsModulesInstallFolder" On="uninstall"/>
|
<RemoveFolder Id="RemoveFolderSettingsV2AssetsModulesInstallFolder" Directory="SettingsV2AssetsModulesInstallFolder" On="uninstall"/>
|
||||||
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsModulesInstallFolder" Directory="SettingsV2OOBEAssetsModulesInstallFolder" On="uninstall"/>
|
<RemoveFolder Id="RemoveFolderSettingsV2OOBEAssetsModulesInstallFolder" Directory="SettingsV2OOBEAssetsModulesInstallFolder" On="uninstall"/>
|
||||||
|
<RemoveFolder Id="RemoveFolderSettingsAppAssetsScriptsFolder" Directory="SettingsAppAssetsScriptsFolder" On="uninstall"/>
|
||||||
</Component>
|
</Component>
|
||||||
|
<ComponentRef Id="CommandNotFound_Scripts"/>
|
||||||
</ComponentGroup>
|
</ComponentGroup>
|
||||||
|
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
|||||||
@@ -4,13 +4,10 @@ IF NOT DEFINED PTRoot (SET PTRoot=..\..)
|
|||||||
|
|
||||||
SET PlatformArg=%1
|
SET PlatformArg=%1
|
||||||
IF NOT DEFINED PlatformArg (SET PlatformArg=x64)
|
IF NOT DEFINED PlatformArg (SET PlatformArg=x64)
|
||||||
|
SET VCToolsVersion=!VCToolsVersion!
|
||||||
|
SET ClearDevCommandPromptEnvVars=false
|
||||||
|
|
||||||
rem In case of Release we should not use Debug CRT in VCRT forwarders
|
rem In case of Release we should not use Debug CRT in VCRT forwarders
|
||||||
msbuild !PTRoot!\src\settings-ui\Settings.UI\PowerToys.Settings.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:PowerToysRoot=!PTRoot! -p:AppxBundle=Never -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
|
||||||
|
|
||||||
rem In case of Release we should not use Debug CRT in VCRT forwarders
|
|
||||||
msbuild !PTRoot!\src\modules\launcher\PowerLauncher\PowerLauncher.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
||||||
@@ -18,5 +15,3 @@ msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewH
|
|||||||
msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\FileLocksmith\FileLocksmithUI\FileLocksmithUI.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
|
||||||
|
|||||||
@@ -433,7 +433,29 @@ UINT __stdcall RemoveWindowsServiceByName(std::wstring serviceName)
|
|||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UINT __stdcall UninstallCommandNotFoundModuleCA(MSIHANDLE hInstall)
|
||||||
|
{
|
||||||
|
HRESULT hr = S_OK;
|
||||||
|
UINT er = ERROR_SUCCESS;
|
||||||
|
std::wstring installationFolder;
|
||||||
|
std::string command;
|
||||||
|
|
||||||
|
hr = WcaInitialize(hInstall, "UninstallCommandNotFoundModule");
|
||||||
|
ExitOnFailure(hr, "Failed to initialize");
|
||||||
|
|
||||||
|
hr = getInstallFolder(hInstall, installationFolder);
|
||||||
|
ExitOnFailure(hr, "Failed to get installFolder.");
|
||||||
|
|
||||||
|
command = "pwsh.exe";
|
||||||
|
command += " ";
|
||||||
|
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(installationFolder) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "\"";
|
||||||
|
|
||||||
|
system(command.c_str());
|
||||||
|
|
||||||
|
LExit:
|
||||||
|
er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
|
||||||
|
return WcaFinalize(er);
|
||||||
|
}
|
||||||
|
|
||||||
UINT __stdcall UninstallServicesCA(MSIHANDLE hInstall)
|
UINT __stdcall UninstallServicesCA(MSIHANDLE hInstall)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,3 +23,4 @@ EXPORTS
|
|||||||
UnRegisterContextMenuPackagesCA
|
UnRegisterContextMenuPackagesCA
|
||||||
UninstallEmbeddedMSIXCA
|
UninstallEmbeddedMSIXCA
|
||||||
UninstallServicesCA
|
UninstallServicesCA
|
||||||
|
UninstallCommandNotFoundModuleCA
|
||||||
@@ -3,5 +3,8 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Version>0.0.1</Version>
|
<Version>0.0.1</Version>
|
||||||
<DevEnvironment>Local</DevEnvironment>
|
<DevEnvironment>Local</DevEnvironment>
|
||||||
|
|
||||||
|
<!-- Forcing for every DLL on by default -->
|
||||||
|
<ChecksumAlgorithm>SHA256</ChecksumAlgorithm>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\..\Version.props" />
|
<Import Project="..\..\Version.props" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
|||||||
@@ -76,9 +76,10 @@ namespace AllExperiments
|
|||||||
|
|
||||||
if (jsonDictionary != null)
|
if (jsonDictionary != null)
|
||||||
{
|
{
|
||||||
if (!jsonDictionary.ContainsKey("dataversion"))
|
if (!jsonDictionary.TryGetValue("dataversion", out object? value))
|
||||||
{
|
{
|
||||||
jsonDictionary.Add("dataversion", dataVersion);
|
value = dataVersion;
|
||||||
|
jsonDictionary.Add("dataversion", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!jsonDictionary.ContainsKey("variantassignment"))
|
if (!jsonDictionary.ContainsKey("variantassignment"))
|
||||||
@@ -87,7 +88,7 @@ namespace AllExperiments
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var jsonDataVersion = jsonDictionary["dataversion"].ToString();
|
var jsonDataVersion = value.ToString();
|
||||||
if (jsonDataVersion != null && int.Parse(jsonDataVersion, CultureInfo.InvariantCulture) < dataVersion)
|
if (jsonDataVersion != null && int.Parse(jsonDataVersion, CultureInfo.InvariantCulture) < dataVersion)
|
||||||
{
|
{
|
||||||
jsonDictionary["dataversion"] = dataVersion;
|
jsonDictionary["dataversion"] = dataVersion;
|
||||||
@@ -116,9 +117,9 @@ namespace AllExperiments
|
|||||||
|
|
||||||
if (jsonDictionary != null)
|
if (jsonDictionary != null)
|
||||||
{
|
{
|
||||||
if (jsonDictionary.ContainsKey("variantassignment"))
|
if (jsonDictionary.TryGetValue("variantassignment", out object? value))
|
||||||
{
|
{
|
||||||
if (jsonDictionary["variantassignment"].ToString() == "alternate" && AssignmentUnit != string.Empty)
|
if (value.ToString() == "alternate" && AssignmentUnit != string.Empty)
|
||||||
{
|
{
|
||||||
IsExperiment = true;
|
IsExperiment = true;
|
||||||
}
|
}
|
||||||
@@ -144,7 +145,7 @@ namespace AllExperiments
|
|||||||
|
|
||||||
private string? AssignmentUnit { get; set; }
|
private string? AssignmentUnit { get; set; }
|
||||||
|
|
||||||
private IVariantAssignmentRequest GetVariantAssignmentRequest()
|
private VariantAssignmentRequest GetVariantAssignmentRequest()
|
||||||
{
|
{
|
||||||
var jsonFilePath = CreateFilePath();
|
var jsonFilePath = CreateFilePath();
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<Import Project="..\..\Version.props" />
|
<Import Project="..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
<AssemblyName>PowerToys.Common.UI</AssemblyName>
|
<AssemblyName>PowerToys.Common.UI</AssemblyName>
|
||||||
|
|||||||
@@ -3,13 +3,16 @@
|
|||||||
<Import Project="..\..\Version.props" />
|
<Import Project="..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<Version>$(Version).0</Version>
|
<Version>$(Version).0</Version>
|
||||||
<Authors>Microsoft Corporation</Authors>
|
<Authors>Microsoft Corporation</Authors>
|
||||||
<Product>PowerToys</Product>
|
<Product>PowerToys</Product>
|
||||||
<Description>PowerToys FilePreviewCommon</Description>
|
<Description>PowerToys FilePreviewCommon</Description>
|
||||||
<AssemblyName>PowerToys.FilePreviewCommon</AssemblyName>
|
<AssemblyName>PowerToys.FilePreviewCommon</AssemblyName>
|
||||||
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -32,7 +35,7 @@
|
|||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<Content Include="Assets\Monaco\monacoSRC\**">
|
<Content Include="Assets\Monaco\monacoSRC\**">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<None Update="Assets\Monaco\monaco_languages.json">
|
<None Update="Assets\Monaco\monaco_languages.json">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
|||||||
@@ -12,6 +12,12 @@ namespace Microsoft.PowerToys.FilePreviewCommon.Monaco.Formatters
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public string LangSet => "json";
|
public string LangSet => "json";
|
||||||
|
|
||||||
|
private static readonly JsonSerializerOptions _serializerOptions = new JsonSerializerOptions
|
||||||
|
{
|
||||||
|
WriteIndented = true,
|
||||||
|
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
||||||
|
};
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public string Format(string value)
|
public string Format(string value)
|
||||||
{
|
{
|
||||||
@@ -22,11 +28,7 @@ namespace Microsoft.PowerToys.FilePreviewCommon.Monaco.Formatters
|
|||||||
|
|
||||||
using (var jDocument = JsonDocument.Parse(value, new JsonDocumentOptions { CommentHandling = JsonCommentHandling.Skip }))
|
using (var jDocument = JsonDocument.Parse(value, new JsonDocumentOptions { CommentHandling = JsonCommentHandling.Skip }))
|
||||||
{
|
{
|
||||||
return JsonSerializer.Serialize(jDocument, new JsonSerializerOptions
|
return JsonSerializer.Serialize(jDocument, _serializerOptions);
|
||||||
{
|
|
||||||
WriteIndented = true,
|
|
||||||
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ namespace Microsoft.PowerToys.FilePreviewCommon.Monaco.Formatters
|
|||||||
var stringBuilder = new StringBuilder();
|
var stringBuilder = new StringBuilder();
|
||||||
var xmlWriterSettings = new XmlWriterSettings()
|
var xmlWriterSettings = new XmlWriterSettings()
|
||||||
{
|
{
|
||||||
OmitXmlDeclaration = xmlDocument.FirstChild.NodeType != XmlNodeType.XmlDeclaration,
|
OmitXmlDeclaration = xmlDocument.FirstChild?.NodeType != XmlNodeType.XmlDeclaration,
|
||||||
Indent = true,
|
Indent = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Common.Utilities
|
namespace Microsoft.PowerToys.FilePreviewCommon
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gcode file helper class.
|
/// Gcode file helper class.
|
||||||
@@ -5,9 +5,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using PreviewHandlerCommon.Utilities;
|
|
||||||
|
|
||||||
namespace Common.Utilities
|
namespace Microsoft.PowerToys.FilePreviewCommon
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a gcode thumbnail.
|
/// Represents a gcode thumbnail.
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
namespace Common.Utilities
|
namespace Microsoft.PowerToys.FilePreviewCommon
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The gcode thumbnail image format.
|
/// The gcode thumbnail image format.
|
||||||
@@ -30,7 +30,7 @@ namespace Microsoft.PowerToys.FilePreviewCommon
|
|||||||
|
|
||||||
// Extension to modify markdown AST.
|
// Extension to modify markdown AST.
|
||||||
HTMLParsingExtension extension = new HTMLParsingExtension(imagesBlockedCallBack);
|
HTMLParsingExtension extension = new HTMLParsingExtension(imagesBlockedCallBack);
|
||||||
extension.FilePath = Path.GetDirectoryName(filePath);
|
extension.FilePath = Path.GetDirectoryName(filePath) ?? string.Empty;
|
||||||
|
|
||||||
// if you have a string with double space, some people view it as a new line.
|
// if you have a string with double space, some people view it as a new line.
|
||||||
// while this is against spec, even GH supports this. Technically looks like GH just trims whitespace
|
// while this is against spec, even GH supports this. Technically looks like GH just trims whitespace
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ namespace Microsoft.PowerToys.FilePreviewCommon
|
|||||||
new XmlFormatter(),
|
new XmlFormatter(),
|
||||||
}.AsReadOnly();
|
}.AsReadOnly();
|
||||||
|
|
||||||
private static string _monacoDirectory;
|
private static string? _monacoDirectory;
|
||||||
|
|
||||||
public static string GetRuntimeMonacoDirectory()
|
public static string GetRuntimeMonacoDirectory()
|
||||||
{
|
{
|
||||||
string codeBase = Assembly.GetExecutingAssembly().Location;
|
string codeBase = Assembly.GetExecutingAssembly().Location;
|
||||||
string path = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(codeBase), "Assets", "Monaco"));
|
string path = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(codeBase) ?? string.Empty, "Assets", "Monaco"));
|
||||||
if (Path.Exists(path))
|
if (Path.Exists(path))
|
||||||
{
|
{
|
||||||
return path;
|
return path;
|
||||||
@@ -41,7 +41,7 @@ namespace Microsoft.PowerToys.FilePreviewCommon
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// We're likely in WinUI3Apps directory and need to go back to the base directory.
|
// We're likely in WinUI3Apps directory and need to go back to the base directory.
|
||||||
return Path.GetFullPath(Path.Combine(Path.GetDirectoryName(codeBase), "..", "Assets", "Monaco"));
|
return Path.GetFullPath(Path.Combine(Path.GetDirectoryName(codeBase) ?? string.Empty, "..", "Assets", "Monaco"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
177
src/common/FilePreviewCommon/QoiImage.cs
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation
|
||||||
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Buffers.Binary;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
//// Based on https://github.com/phoboslab/qoi/blob/master/qoi.h
|
||||||
|
|
||||||
|
namespace Microsoft.PowerToys.FilePreviewCommon
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// QOI Image helper.
|
||||||
|
/// </summary>
|
||||||
|
public static class QoiImage
|
||||||
|
{
|
||||||
|
#pragma warning disable SA1310 // Field names should not contain underscore
|
||||||
|
private const byte QOI_OP_INDEX = 0x00; // 00xxxxxx
|
||||||
|
private const byte QOI_OP_DIFF = 0x40; // 01xxxxxx
|
||||||
|
private const byte QOI_OP_LUMA = 0x80; // 10xxxxxx
|
||||||
|
private const byte QOI_OP_RUN = 0xc0; // 11xxxxxx
|
||||||
|
private const byte QOI_OP_RGB = 0xfe; // 11111110
|
||||||
|
private const byte QOI_OP_RGBA = 0xff; // 11111111
|
||||||
|
|
||||||
|
private const byte QOI_MASK_2 = 0xc0; // 11000000
|
||||||
|
|
||||||
|
private const int QOI_MAGIC = 'q' << 24 | 'o' << 16 | 'i' << 8 | 'f';
|
||||||
|
private const int QOI_HEADER_SIZE = 14;
|
||||||
|
|
||||||
|
private const uint QOI_PIXELS_MAX = 400000000;
|
||||||
|
|
||||||
|
private const byte QOI_PADDING_LENGTH = 8;
|
||||||
|
#pragma warning restore SA1310 // Field names should not contain underscore
|
||||||
|
|
||||||
|
private record struct QoiPixel(byte R, byte G, byte B, byte A)
|
||||||
|
{
|
||||||
|
public readonly int GetColorHash() => (R * 3) + (G * 5) + (B * 7) + (A * 11);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a <see cref="Bitmap"/> from the specified QOI data stream.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="stream">A <see cref="Stream"/> that contains the QOI data.</param>
|
||||||
|
/// <returns>The <see cref="Bitmap"/> this method creates.</returns>
|
||||||
|
/// <exception cref="ArgumentException">The stream does not have a valid QOI image format.</exception>
|
||||||
|
public static Bitmap FromStream(Stream stream)
|
||||||
|
{
|
||||||
|
var fileSize = stream.Length;
|
||||||
|
|
||||||
|
if (fileSize < QOI_HEADER_SIZE + QOI_PADDING_LENGTH)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Not enough data for a QOI file");
|
||||||
|
}
|
||||||
|
|
||||||
|
Bitmap? bitmap = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using var reader = new BinaryReader(stream, Encoding.UTF8, true);
|
||||||
|
|
||||||
|
var headerMagic = ReadUInt32BigEndian(reader);
|
||||||
|
|
||||||
|
if (headerMagic != QOI_MAGIC)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid QOI file header");
|
||||||
|
}
|
||||||
|
|
||||||
|
var width = ReadUInt32BigEndian(reader);
|
||||||
|
var height = ReadUInt32BigEndian(reader);
|
||||||
|
var channels = reader.ReadByte();
|
||||||
|
var colorSpace = reader.ReadByte();
|
||||||
|
|
||||||
|
if (width == 0 || height == 0 || channels < 3 || channels > 4 || colorSpace > 1 || height >= QOI_PIXELS_MAX / width)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Invalid QOI file data");
|
||||||
|
}
|
||||||
|
|
||||||
|
var pixelFormat = channels == 4 ? PixelFormat.Format32bppArgb : PixelFormat.Format24bppRgb;
|
||||||
|
|
||||||
|
bitmap = new Bitmap((int)width, (int)height, pixelFormat);
|
||||||
|
|
||||||
|
var bitmapData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.WriteOnly, pixelFormat);
|
||||||
|
var dataLength = bitmapData.Height * bitmapData.Stride;
|
||||||
|
|
||||||
|
var index = new QoiPixel[64];
|
||||||
|
var pixel = new QoiPixel(0, 0, 0, 255);
|
||||||
|
|
||||||
|
var run = 0;
|
||||||
|
var chunksLen = fileSize - QOI_PADDING_LENGTH;
|
||||||
|
|
||||||
|
for (var dataIndex = 0; dataIndex < dataLength; dataIndex += channels)
|
||||||
|
{
|
||||||
|
if (run > 0)
|
||||||
|
{
|
||||||
|
run--;
|
||||||
|
}
|
||||||
|
else if (stream.Position < chunksLen)
|
||||||
|
{
|
||||||
|
var b1 = reader.ReadByte();
|
||||||
|
|
||||||
|
if (b1 == QOI_OP_RGB)
|
||||||
|
{
|
||||||
|
pixel.R = reader.ReadByte();
|
||||||
|
pixel.G = reader.ReadByte();
|
||||||
|
pixel.B = reader.ReadByte();
|
||||||
|
}
|
||||||
|
else if (b1 == QOI_OP_RGBA)
|
||||||
|
{
|
||||||
|
pixel.R = reader.ReadByte();
|
||||||
|
pixel.G = reader.ReadByte();
|
||||||
|
pixel.B = reader.ReadByte();
|
||||||
|
pixel.A = reader.ReadByte();
|
||||||
|
}
|
||||||
|
else if ((b1 & QOI_MASK_2) == QOI_OP_INDEX)
|
||||||
|
{
|
||||||
|
pixel = index[b1];
|
||||||
|
}
|
||||||
|
else if ((b1 & QOI_MASK_2) == QOI_OP_DIFF)
|
||||||
|
{
|
||||||
|
pixel.R += (byte)(((b1 >> 4) & 0x03) - 2);
|
||||||
|
pixel.G += (byte)(((b1 >> 2) & 0x03) - 2);
|
||||||
|
pixel.B += (byte)((b1 & 0x03) - 2);
|
||||||
|
}
|
||||||
|
else if ((b1 & QOI_MASK_2) == QOI_OP_LUMA)
|
||||||
|
{
|
||||||
|
var b2 = reader.ReadByte();
|
||||||
|
var vg = (b1 & 0x3f) - 32;
|
||||||
|
pixel.R += (byte)(vg - 8 + ((b2 >> 4) & 0x0f));
|
||||||
|
pixel.G += (byte)vg;
|
||||||
|
pixel.B += (byte)(vg - 8 + (b2 & 0x0f));
|
||||||
|
}
|
||||||
|
else if ((b1 & QOI_MASK_2) == QOI_OP_RUN)
|
||||||
|
{
|
||||||
|
run = b1 & 0x3f;
|
||||||
|
}
|
||||||
|
|
||||||
|
index[pixel.GetColorHash() % 64] = pixel;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
var bitmapPixel = (byte*)bitmapData.Scan0 + dataIndex;
|
||||||
|
|
||||||
|
bitmapPixel[0] = pixel.B;
|
||||||
|
bitmapPixel[1] = pixel.G;
|
||||||
|
bitmapPixel[2] = pixel.R;
|
||||||
|
if (channels == 4)
|
||||||
|
{
|
||||||
|
bitmapPixel[3] = pixel.A;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bitmap.UnlockBits(bitmapData);
|
||||||
|
|
||||||
|
return bitmap;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
bitmap?.Dispose();
|
||||||
|
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static uint ReadUInt32BigEndian(BinaryReader reader)
|
||||||
|
{
|
||||||
|
var buffer = reader.ReadBytes(4);
|
||||||
|
|
||||||
|
return BinaryPrimitives.ReadUInt32BigEndian(buffer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,10 @@ namespace winrt::PowerToys::GPOWrapper::implementation
|
|||||||
{
|
{
|
||||||
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredAwakeEnabledValue());
|
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredAwakeEnabledValue());
|
||||||
}
|
}
|
||||||
|
GpoRuleConfigured GPOWrapper::GetConfiguredCmdNotFoundEnabledValue()
|
||||||
|
{
|
||||||
|
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredCmdNotFoundEnabledValue());
|
||||||
|
}
|
||||||
GpoRuleConfigured GPOWrapper::GetConfiguredColorPickerEnabledValue()
|
GpoRuleConfigured GPOWrapper::GetConfiguredColorPickerEnabledValue()
|
||||||
{
|
{
|
||||||
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredColorPickerEnabledValue());
|
return static_cast<GpoRuleConfigured>(powertoys_gpo::getConfiguredColorPickerEnabledValue());
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ namespace winrt::PowerToys::GPOWrapper::implementation
|
|||||||
GPOWrapper() = default;
|
GPOWrapper() = default;
|
||||||
static GpoRuleConfigured GetConfiguredAlwaysOnTopEnabledValue();
|
static GpoRuleConfigured GetConfiguredAlwaysOnTopEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredAwakeEnabledValue();
|
static GpoRuleConfigured GetConfiguredAwakeEnabledValue();
|
||||||
|
static GpoRuleConfigured GetConfiguredCmdNotFoundEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredColorPickerEnabledValue();
|
static GpoRuleConfigured GetConfiguredColorPickerEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredCropAndLockEnabledValue();
|
static GpoRuleConfigured GetConfiguredCropAndLockEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredFancyZonesEnabledValue();
|
static GpoRuleConfigured GetConfiguredFancyZonesEnabledValue();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ namespace PowerToys
|
|||||||
[default_interface] static runtimeclass GPOWrapper {
|
[default_interface] static runtimeclass GPOWrapper {
|
||||||
static GpoRuleConfigured GetConfiguredAlwaysOnTopEnabledValue();
|
static GpoRuleConfigured GetConfiguredAlwaysOnTopEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredAwakeEnabledValue();
|
static GpoRuleConfigured GetConfiguredAwakeEnabledValue();
|
||||||
|
static GpoRuleConfigured GetConfiguredCmdNotFoundEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredColorPickerEnabledValue();
|
static GpoRuleConfigured GetConfiguredColorPickerEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredCropAndLockEnabledValue();
|
static GpoRuleConfigured GetConfiguredCropAndLockEnabledValue();
|
||||||
static GpoRuleConfigured GetConfiguredFancyZonesEnabledValue();
|
static GpoRuleConfigured GetConfiguredFancyZonesEnabledValue();
|
||||||
|
|||||||
@@ -27,6 +27,11 @@ namespace PowerToys.GPOWrapperProjection
|
|||||||
return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredFancyZonesEnabledValue();
|
return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredFancyZonesEnabledValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static GpoRuleConfigured GetConfiguredCmdNotFoundEnabledValue()
|
||||||
|
{
|
||||||
|
return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredCmdNotFoundEnabledValue();
|
||||||
|
}
|
||||||
|
|
||||||
public static GpoRuleConfigured GetConfiguredColorPickerEnabledValue()
|
public static GpoRuleConfigured GetConfiguredColorPickerEnabledValue()
|
||||||
{
|
{
|
||||||
return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredColorPickerEnabledValue();
|
return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredColorPickerEnabledValue();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
<Import Project="..\..\Version.props" />
|
<Import Project="..\..\Version.props" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
|||||||
@@ -328,13 +328,13 @@ namespace ManagedCommon
|
|||||||
char paramFormat;
|
char paramFormat;
|
||||||
string paramType = formatString.Substring(formatterPosition + 1, 2);
|
string paramType = formatString.Substring(formatterPosition + 1, 2);
|
||||||
int paramCount = 3;
|
int paramCount = 3;
|
||||||
if (DefaultFormatTypes.ContainsKey(paramType))
|
if (DefaultFormatTypes.TryGetValue(paramType, out char value))
|
||||||
{
|
{
|
||||||
// check the next char, which could be a formatter
|
// check the next char, which could be a formatter
|
||||||
if (formatterPosition >= formatString.Length - 3)
|
if (formatterPosition >= formatString.Length - 3)
|
||||||
{
|
{
|
||||||
// not enough characters, end of string, no formatter, use the default one
|
// not enough characters, end of string, no formatter, use the default one
|
||||||
paramFormat = DefaultFormatTypes[paramType];
|
paramFormat = value;
|
||||||
paramCount = 2;
|
paramCount = 2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -344,7 +344,7 @@ namespace ManagedCommon
|
|||||||
// check if it a valid formatter
|
// check if it a valid formatter
|
||||||
if (!FormatTypeToStringFormatters.ContainsKey(paramFormat))
|
if (!FormatTypeToStringFormatters.ContainsKey(paramFormat))
|
||||||
{
|
{
|
||||||
paramFormat = DefaultFormatTypes[paramType];
|
paramFormat = value;
|
||||||
paramCount = 2;
|
paramCount = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
<Import Project="..\..\Version.props" />
|
<Import Project="..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<Version>$(Version).0</Version>
|
<Version>$(Version).0</Version>
|
||||||
<Authors>Microsoft Corporation</Authors>
|
<Authors>Microsoft Corporation</Authors>
|
||||||
<Product>PowerToys</Product>
|
<Product>PowerToys</Product>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ namespace ManagedCommon
|
|||||||
AlwaysOnTop,
|
AlwaysOnTop,
|
||||||
Awake,
|
Awake,
|
||||||
ColorPicker,
|
ColorPicker,
|
||||||
|
CmdNotFound,
|
||||||
CropAndLock,
|
CropAndLock,
|
||||||
EnvironmentVariables,
|
EnvironmentVariables,
|
||||||
FancyZones,
|
FancyZones,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<Import Project="..\..\..\Version.props" />
|
<Import Project="..\..\..\Version.props" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<Version>$(Version).0</Version>
|
<Version>$(Version).0</Version>
|
||||||
<Authors>Microsoft Corporation</Authors>
|
<Authors>Microsoft Corporation</Authors>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<VCProjectVersion>16.0</VCProjectVersion>
|
<VCProjectVersion>16.0</VCProjectVersion>
|
||||||
<ProjectGuid>{F055103B-F80B-4D0C-BF48-057C55620033}</ProjectGuid>
|
<ProjectGuid>{F055103B-F80B-4D0C-BF48-057C55620033}</ProjectGuid>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<Keyword>ManagedCProj</Keyword>
|
<Keyword>ManagedCProj</Keyword>
|
||||||
<RootNamespace>PowerToysInterop</RootNamespace>
|
<RootNamespace>PowerToysInterop</RootNamespace>
|
||||||
<ProjectName>PowerToys.Interop</ProjectName>
|
<ProjectName>PowerToys.Interop</ProjectName>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<Import Project="..\..\..\Version.props" />
|
<Import Project="..\..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
|
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ struct LogSettings
|
|||||||
inline const static std::string cropAndLockLoggerName = "crop-and-lock";
|
inline const static std::string cropAndLockLoggerName = "crop-and-lock";
|
||||||
inline const static std::wstring registryPreviewLogPath = L"Logs\\registryPreview-log.txt";
|
inline const static std::wstring registryPreviewLogPath = L"Logs\\registryPreview-log.txt";
|
||||||
inline const static std::string environmentVariablesLoggerName = "environment-variables";
|
inline const static std::string environmentVariablesLoggerName = "environment-variables";
|
||||||
|
inline const static std::wstring cmdNotFoundLogPath = L"Logs\\cmd-not-found-log.txt";
|
||||||
|
inline const static std::string cmdNotFoundLoggerName = "cmd-not-found";
|
||||||
inline const static int retention = 30;
|
inline const static int retention = 30;
|
||||||
std::wstring logLevel;
|
std::wstring logLevel;
|
||||||
LogSettings();
|
LogSettings();
|
||||||
|
|||||||
40
src/common/notifications/NotificationUtil.h
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <common/notifications/notifications.h>
|
||||||
|
#include <common/notifications/dont_show_again.h>
|
||||||
|
#include <common/utils/resources.h>
|
||||||
|
#include <common/SettingsAPI/settings_helpers.h>
|
||||||
|
|
||||||
|
#include "Generated Files/resource.h"
|
||||||
|
|
||||||
|
namespace notifications
|
||||||
|
{
|
||||||
|
// Non-Localizable strings
|
||||||
|
namespace NonLocalizable
|
||||||
|
{
|
||||||
|
const wchar_t RunAsAdminInfoPage[] = L"https://aka.ms/powertoysDetectedElevatedHelp";
|
||||||
|
const wchar_t ToastNotificationButtonUrl[] = L"powertoys://cant_drag_elevated_disable/";
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void WarnIfElevationIsRequired(std::wstring title, std::wstring message, std::wstring button1, std::wstring button2)
|
||||||
|
{
|
||||||
|
using namespace NonLocalizable;
|
||||||
|
|
||||||
|
auto settings = PTSettingsHelper::load_general_settings();
|
||||||
|
auto enableWarningsElevatedApps = settings.GetNamedBoolean(L"enable_warnings_elevated_apps", true);
|
||||||
|
|
||||||
|
static bool warning_shown = false;
|
||||||
|
if (enableWarningsElevatedApps && !warning_shown && !is_toast_disabled(ElevatedDontShowAgainRegistryPath, ElevatedDisableIntervalInDays))
|
||||||
|
{
|
||||||
|
std::vector<action_t> actions = {
|
||||||
|
link_button{ button1, RunAsAdminInfoPage },
|
||||||
|
link_button{ button2, ToastNotificationButtonUrl }
|
||||||
|
};
|
||||||
|
show_toast_with_activations(message,
|
||||||
|
title,
|
||||||
|
{},
|
||||||
|
std::move(actions));
|
||||||
|
warning_shown = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
namespace notifications
|
namespace notifications
|
||||||
{
|
{
|
||||||
const inline wchar_t CantDragElevatedDontShowAgainRegistryPath[] = LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain\{e16ea82f-6d94-4f30-bb02-d6d911588afd})";
|
const inline wchar_t ElevatedDontShowAgainRegistryPath[] = LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain\{e16ea82f-6d94-4f30-bb02-d6d911588afd})";
|
||||||
const inline int64_t CantDragElevatedDisableIntervalInDays = 30;
|
const inline int64_t ElevatedDisableIntervalInDays = 30;
|
||||||
|
|
||||||
const inline wchar_t PreviewModulesDontShowAgainRegistryPath[] = LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain\{7e29e2b2-b31c-4dcd-b7b0-79c078b02430})";
|
const inline wchar_t PreviewModulesDontShowAgainRegistryPath[] = LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DontShowMeThisDialogAgain\{7e29e2b2-b31c-4dcd-b7b0-79c078b02430})";
|
||||||
const inline int64_t PreviewModulesDisableIntervalInDays = 30;
|
const inline int64_t PreviewModulesDisableIntervalInDays = 30;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="notifications.h" />
|
<ClInclude Include="notifications.h" />
|
||||||
|
<ClInclude Include="NotificationUtil.h" />
|
||||||
<ClInclude Include="dont_show_again.h" />
|
<ClInclude Include="dont_show_again.h" />
|
||||||
<ClInclude Include="pch.h" />
|
<ClInclude Include="pch.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -494,3 +494,30 @@ inline bool check_user_is_admin()
|
|||||||
freeMemory(pSID, pGroupInfo);
|
freeMemory(pSID, pGroupInfo);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool IsProcessOfWindowElevated(HWND window)
|
||||||
|
{
|
||||||
|
DWORD pid = 0;
|
||||||
|
GetWindowThreadProcessId(window, &pid);
|
||||||
|
if (!pid)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
wil::unique_handle hProcess{ OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION,
|
||||||
|
FALSE,
|
||||||
|
pid) };
|
||||||
|
|
||||||
|
wil::unique_handle token;
|
||||||
|
|
||||||
|
if (OpenProcessToken(hProcess.get(), TOKEN_QUERY, &token))
|
||||||
|
{
|
||||||
|
TOKEN_ELEVATION elevation;
|
||||||
|
DWORD size;
|
||||||
|
if (GetTokenInformation(token.get(), TokenElevation, &elevation, sizeof(elevation), &size))
|
||||||
|
{
|
||||||
|
return elevation.TokenIsElevated != 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ inline bool find_folder_in_path(const std::wstring& where, const std::vector<std
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_TITLE_LENGTH 255
|
#define MAX_TITLE_LENGTH 255
|
||||||
inline bool check_excluded_app_with_title(const HWND& hwnd, std::wstring& processPath, const std::vector<std::wstring>& excludedApps)
|
inline bool check_excluded_app_with_title(const HWND& hwnd, const std::vector<std::wstring>& excludedApps)
|
||||||
{
|
{
|
||||||
WCHAR title[MAX_TITLE_LENGTH];
|
WCHAR title[MAX_TITLE_LENGTH];
|
||||||
int len = GetWindowTextW(hwnd, title, MAX_TITLE_LENGTH);
|
int len = GetWindowTextW(hwnd, title, MAX_TITLE_LENGTH);
|
||||||
@@ -42,23 +42,25 @@ inline bool check_excluded_app_with_title(const HWND& hwnd, std::wstring& proces
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::wstring titleStr(title);
|
std::wstring titleStr(title);
|
||||||
auto lastBackslashPos = processPath.find_last_of(L'\\');
|
CharUpperBuffW(titleStr.data(), static_cast<DWORD>(titleStr.length()));
|
||||||
if (lastBackslashPos != std::wstring::npos)
|
|
||||||
|
for (const auto& app : excludedApps)
|
||||||
{
|
{
|
||||||
processPath = processPath.substr(0, lastBackslashPos + 1); // retain up to the last backslash
|
if (titleStr.contains(app))
|
||||||
processPath.append(titleStr); // append the title
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CharUpperBuffW(processPath.data(), static_cast<DWORD>(processPath.length()));
|
return false;
|
||||||
return find_app_name_in_path(processPath, excludedApps);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool check_excluded_app(const HWND& hwnd, std::wstring& processPath, const std::vector<std::wstring>& excludedApps)
|
inline bool check_excluded_app(const HWND& hwnd, const std::wstring& processPath, const std::vector<std::wstring>& excludedApps)
|
||||||
{
|
{
|
||||||
bool res = find_app_name_in_path(processPath, excludedApps);
|
bool res = find_app_name_in_path(processPath, excludedApps);
|
||||||
|
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
res = check_excluded_app_with_title(hwnd, processPath, excludedApps);
|
res = check_excluded_app_with_title(hwnd, excludedApps);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ namespace powertoys_gpo {
|
|||||||
const std::wstring POLICY_CONFIGURE_ENABLED_GLOBAL_ALL_UTILITIES = L"ConfigureGlobalUtilityEnabledState";
|
const std::wstring POLICY_CONFIGURE_ENABLED_GLOBAL_ALL_UTILITIES = L"ConfigureGlobalUtilityEnabledState";
|
||||||
const std::wstring POLICY_CONFIGURE_ENABLED_ALWAYS_ON_TOP = L"ConfigureEnabledUtilityAlwaysOnTop";
|
const std::wstring POLICY_CONFIGURE_ENABLED_ALWAYS_ON_TOP = L"ConfigureEnabledUtilityAlwaysOnTop";
|
||||||
const std::wstring POLICY_CONFIGURE_ENABLED_AWAKE = L"ConfigureEnabledUtilityAwake";
|
const std::wstring POLICY_CONFIGURE_ENABLED_AWAKE = L"ConfigureEnabledUtilityAwake";
|
||||||
|
const std::wstring POLICY_CONFIGURE_ENABLED_CMD_NOT_FOUND = L"ConfigureEnabledUtilityCmdNotFound";
|
||||||
const std::wstring POLICY_CONFIGURE_ENABLED_COLOR_PICKER = L"ConfigureEnabledUtilityColorPicker";
|
const std::wstring POLICY_CONFIGURE_ENABLED_COLOR_PICKER = L"ConfigureEnabledUtilityColorPicker";
|
||||||
const std::wstring POLICY_CONFIGURE_ENABLED_CROP_AND_LOCK = L"ConfigureEnabledUtilityCropAndLock";
|
const std::wstring POLICY_CONFIGURE_ENABLED_CROP_AND_LOCK = L"ConfigureEnabledUtilityCropAndLock";
|
||||||
const std::wstring POLICY_CONFIGURE_ENABLED_FANCYZONES = L"ConfigureEnabledUtilityFancyZones";
|
const std::wstring POLICY_CONFIGURE_ENABLED_FANCYZONES = L"ConfigureEnabledUtilityFancyZones";
|
||||||
@@ -224,6 +225,11 @@ namespace powertoys_gpo {
|
|||||||
return getUtilityEnabledValue(POLICY_CONFIGURE_ENABLED_AWAKE);
|
return getUtilityEnabledValue(POLICY_CONFIGURE_ENABLED_AWAKE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline gpo_rule_configured_t getConfiguredCmdNotFoundEnabledValue()
|
||||||
|
{
|
||||||
|
return getUtilityEnabledValue(POLICY_CONFIGURE_ENABLED_CMD_NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
inline gpo_rule_configured_t getConfiguredColorPickerEnabledValue()
|
inline gpo_rule_configured_t getConfiguredColorPickerEnabledValue()
|
||||||
{
|
{
|
||||||
return getUtilityEnabledValue(POLICY_CONFIGURE_ENABLED_COLOR_PICKER);
|
return getUtilityEnabledValue(POLICY_CONFIGURE_ENABLED_COLOR_PICKER);
|
||||||
|
|||||||
@@ -6,9 +6,13 @@
|
|||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
|
#include <functional>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
// Initializes and runs windows message loop
|
// Initializes and runs windows message loop
|
||||||
inline int run_message_loop(const bool until_idle = false, const std::optional<uint32_t> timeout_ms = {})
|
inline int run_message_loop(const bool until_idle = false,
|
||||||
|
const std::optional<uint32_t> timeout_ms = {},
|
||||||
|
std::unordered_map<DWORD, std::function<void()>> wm_app_msg_callbacks = {})
|
||||||
{
|
{
|
||||||
MSG msg{};
|
MSG msg{};
|
||||||
bool stop = false;
|
bool stop = false;
|
||||||
@@ -24,11 +28,16 @@ inline int run_message_loop(const bool until_idle = false, const std::optional<u
|
|||||||
DispatchMessageW(&msg);
|
DispatchMessageW(&msg);
|
||||||
stop = until_idle && !PeekMessageW(&msg, nullptr, 0, 0, PM_NOREMOVE);
|
stop = until_idle && !PeekMessageW(&msg, nullptr, 0, 0, PM_NOREMOVE);
|
||||||
stop = stop || (msg.message == WM_TIMER && msg.wParam == timerId);
|
stop = stop || (msg.message == WM_TIMER && msg.wParam == timerId);
|
||||||
|
|
||||||
|
if (auto it = wm_app_msg_callbacks.find(msg.message); it != end(wm_app_msg_callbacks))
|
||||||
|
it->second();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeout_ms.has_value())
|
if (timeout_ms.has_value())
|
||||||
{
|
{
|
||||||
KillTimer(nullptr, timerId);
|
KillTimer(nullptr, timerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
return static_cast<int>(msg.wParam);
|
return static_cast<int>(msg.wParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +69,7 @@ template<typename T>
|
|||||||
inline T GetWindowCreateParam(LPARAM lparam)
|
inline T GetWindowCreateParam(LPARAM lparam)
|
||||||
{
|
{
|
||||||
static_assert(sizeof(T) <= sizeof(void*));
|
static_assert(sizeof(T) <= sizeof(void*));
|
||||||
T data{ static_cast <T>(reinterpret_cast<CREATESTRUCT*>(lparam)->lpCreateParams) };
|
T data{ static_cast<T>(reinterpret_cast<CREATESTRUCT*>(lparam)->lpCreateParams) };
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,5 +83,5 @@ inline void StoreWindowParam(HWND window, T data)
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
inline T GetWindowParam(HWND window)
|
inline T GetWindowParam(HWND window)
|
||||||
{
|
{
|
||||||
return reinterpret_cast <T>(GetWindowLongPtrW(window, GWLP_USERDATA));
|
return reinterpret_cast<T>(GetWindowLongPtrW(window, GWLP_USERDATA));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
#define PRODUCT_VERSION_STRING FILE_VERSION_STRING
|
#define PRODUCT_VERSION_STRING FILE_VERSION_STRING
|
||||||
|
|
||||||
#define COMPANY_NAME "Microsoft Corporation"
|
#define COMPANY_NAME "Microsoft Corporation"
|
||||||
#define COPYRIGHT_NOTE "Copyright (C) 2023 Microsoft Corporation"
|
#define COPYRIGHT_NOTE "Copyright (C) 2024 Microsoft Corporation"
|
||||||
#define PRODUCT_NAME "PowerToys"
|
#define PRODUCT_NAME "PowerToys"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Copyright (c) Microsoft Corporation.
|
<!-- Copyright (c) Microsoft Corporation.
|
||||||
Licensed under the MIT License. -->
|
Licensed under the MIT License. -->
|
||||||
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.5" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
|
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.7" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
|
||||||
<policyNamespaces>
|
<policyNamespaces>
|
||||||
<target prefix="powertoys" namespace="Microsoft.Policies.PowerToys" />
|
<target prefix="powertoys" namespace="Microsoft.Policies.PowerToys" />
|
||||||
</policyNamespaces>
|
</policyNamespaces>
|
||||||
<resources minRequiredRevision="1.6"/><!-- Last changed with PowerToys v0.76.0 -->
|
<resources minRequiredRevision="1.7"/><!-- Last changed with PowerToys v0.77.0 -->
|
||||||
<supportedOn>
|
<supportedOn>
|
||||||
<definitions>
|
<definitions>
|
||||||
<definition name="SUPPORTED_POWERTOYS_0_64_0" displayName="$(string.SUPPORTED_POWERTOYS_0_64_0)"/>
|
<definition name="SUPPORTED_POWERTOYS_0_64_0" displayName="$(string.SUPPORTED_POWERTOYS_0_64_0)"/>
|
||||||
@@ -15,6 +15,7 @@
|
|||||||
<definition name="SUPPORTED_POWERTOYS_0_73_0" displayName="$(string.SUPPORTED_POWERTOYS_0_73_0)"/>
|
<definition name="SUPPORTED_POWERTOYS_0_73_0" displayName="$(string.SUPPORTED_POWERTOYS_0_73_0)"/>
|
||||||
<definition name="SUPPORTED_POWERTOYS_0_75_0" displayName="$(string.SUPPORTED_POWERTOYS_0_75_0)"/>
|
<definition name="SUPPORTED_POWERTOYS_0_75_0" displayName="$(string.SUPPORTED_POWERTOYS_0_75_0)"/>
|
||||||
<definition name="SUPPORTED_POWERTOYS_0_76_0" displayName="$(string.SUPPORTED_POWERTOYS_0_76_0)"/>
|
<definition name="SUPPORTED_POWERTOYS_0_76_0" displayName="$(string.SUPPORTED_POWERTOYS_0_76_0)"/>
|
||||||
|
<definition name="SUPPORTED_POWERTOYS_0_77_0" displayName="$(string.SUPPORTED_POWERTOYS_0_77_0)"/>
|
||||||
</definitions>
|
</definitions>
|
||||||
</supportedOn>
|
</supportedOn>
|
||||||
<categories>
|
<categories>
|
||||||
@@ -59,6 +60,16 @@
|
|||||||
<decimal value="0" />
|
<decimal value="0" />
|
||||||
</disabledValue>
|
</disabledValue>
|
||||||
</policy>
|
</policy>
|
||||||
|
<policy name="ConfigureEnabledUtilityCmdNotFound" class="Both" displayName="$(string.ConfigureEnabledUtilityCmdNotFound)" explainText="$(string.ConfigureEnabledUtilityDescription)" key="Software\Policies\PowerToys" valueName="ConfigureEnabledUtilityCmdNotFound">
|
||||||
|
<parentCategory ref="PowerToys" />
|
||||||
|
<supportedOn ref="SUPPORTED_POWERTOYS_0_77_0" />
|
||||||
|
<enabledValue>
|
||||||
|
<decimal value="1" />
|
||||||
|
</enabledValue>
|
||||||
|
<disabledValue>
|
||||||
|
<decimal value="0" />
|
||||||
|
</disabledValue>
|
||||||
|
</policy>
|
||||||
<policy name="ConfigureEnabledUtilityColorPicker" class="Both" displayName="$(string.ConfigureEnabledUtilityColorPicker)" explainText="$(string.ConfigureEnabledUtilityDescription)" key="Software\Policies\PowerToys" valueName="ConfigureEnabledUtilityColorPicker">
|
<policy name="ConfigureEnabledUtilityColorPicker" class="Both" displayName="$(string.ConfigureEnabledUtilityColorPicker)" explainText="$(string.ConfigureEnabledUtilityDescription)" key="Software\Policies\PowerToys" valueName="ConfigureEnabledUtilityColorPicker">
|
||||||
<parentCategory ref="PowerToys" />
|
<parentCategory ref="PowerToys" />
|
||||||
<supportedOn ref="SUPPORTED_POWERTOYS_0_64_0" />
|
<supportedOn ref="SUPPORTED_POWERTOYS_0_64_0" />
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!-- Copyright (c) Microsoft Corporation.
|
<!-- Copyright (c) Microsoft Corporation.
|
||||||
Licensed under the MIT License. -->
|
Licensed under the MIT License. -->
|
||||||
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.6" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
|
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.7" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
|
||||||
<displayName>PowerToys</displayName>
|
<displayName>PowerToys</displayName>
|
||||||
<description>PowerToys</description>
|
<description>PowerToys</description>
|
||||||
<resources>
|
<resources>
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
<string id="SUPPORTED_POWERTOYS_0_73_0">PowerToys version 0.73.0 or later</string>
|
<string id="SUPPORTED_POWERTOYS_0_73_0">PowerToys version 0.73.0 or later</string>
|
||||||
<string id="SUPPORTED_POWERTOYS_0_75_0">PowerToys version 0.75.0 or later</string>
|
<string id="SUPPORTED_POWERTOYS_0_75_0">PowerToys version 0.75.0 or later</string>
|
||||||
<string id="SUPPORTED_POWERTOYS_0_76_0">PowerToys version 0.76.0 or later</string>
|
<string id="SUPPORTED_POWERTOYS_0_76_0">PowerToys version 0.76.0 or later</string>
|
||||||
|
<string id="SUPPORTED_POWERTOYS_0_77_0">PowerToys version 0.77.0 or later</string>
|
||||||
|
|
||||||
<string id="ConfigureGlobalUtilityEnabledStateDescription">This policy configures the enabled state for all PowerToys utilities.
|
<string id="ConfigureGlobalUtilityEnabledStateDescription">This policy configures the enabled state for all PowerToys utilities.
|
||||||
|
|
||||||
@@ -112,6 +113,7 @@ Note: Changes require a restart of PowerToys Run.
|
|||||||
<string id="ConfigureEnabledUtilityAlwaysOnTop">Always On Top: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityAlwaysOnTop">Always On Top: Configure enabled state</string>
|
||||||
<string id="ConfigureEnabledUtilityAwake">Awake: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityAwake">Awake: Configure enabled state</string>
|
||||||
<string id="ConfigureEnabledUtilityColorPicker">Color Picker: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityColorPicker">Color Picker: Configure enabled state</string>
|
||||||
|
<string id="ConfigureEnabledUtilityCmdNotFound">Command Not Found: Configure enabled state</string>
|
||||||
<string id="ConfigureEnabledUtilityCropAndLock">Crop And Lock: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityCropAndLock">Crop And Lock: Configure enabled state</string>
|
||||||
<string id="ConfigureEnabledUtilityEnvironmentVariables">Environment Variables: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityEnvironmentVariables">Environment Variables: Configure enabled state</string>
|
||||||
<string id="ConfigureEnabledUtilityFancyZones">FancyZones: Configure enabled state</string>
|
<string id="ConfigureEnabledUtilityFancyZones">FancyZones: Configure enabled state</string>
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<RootNamespace>EnvironmentVariables</RootNamespace>
|
<RootNamespace>EnvironmentVariables</RootNamespace>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<RuntimeIdentifiers>win10-x64;win10-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<UseWinUI>true</UseWinUI>
|
<UseWinUI>true</UseWinUI>
|
||||||
<EnableMsixTooling>true</EnableMsixTooling>
|
<EnableMsixTooling>true</EnableMsixTooling>
|
||||||
<EnablePreviewMsixTooling>true</EnablePreviewMsixTooling>
|
<EnablePreviewMsixTooling>true</EnablePreviewMsixTooling>
|
||||||
@@ -34,10 +34,10 @@
|
|||||||
|
|
||||||
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
||||||
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||||
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
||||||
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using System.Runtime.InteropServices;
|
|||||||
using EnvironmentVariables.Helpers;
|
using EnvironmentVariables.Helpers;
|
||||||
using EnvironmentVariables.Helpers.Win32;
|
using EnvironmentVariables.Helpers.Win32;
|
||||||
using EnvironmentVariables.ViewModels;
|
using EnvironmentVariables.ViewModels;
|
||||||
|
using ManagedCommon;
|
||||||
using Microsoft.UI.Dispatching;
|
using Microsoft.UI.Dispatching;
|
||||||
using WinUIEx;
|
using WinUIEx;
|
||||||
|
|
||||||
@@ -30,19 +31,20 @@ namespace EnvironmentVariables
|
|||||||
Title = title;
|
Title = title;
|
||||||
AppTitleTextBlock.Text = title;
|
AppTitleTextBlock.Text = title;
|
||||||
|
|
||||||
RegisterWindow();
|
var handle = this.GetWindowHandle();
|
||||||
|
RegisterWindow(handle);
|
||||||
|
|
||||||
|
WindowHelpers.BringToForeground(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly DispatcherQueue _dispatcherQueue = DispatcherQueue.GetForCurrentThread();
|
private static readonly DispatcherQueue _dispatcherQueue = DispatcherQueue.GetForCurrentThread();
|
||||||
private static NativeMethods.WinProc newWndProc;
|
private static NativeMethods.WinProc newWndProc;
|
||||||
private static IntPtr oldWndProc = IntPtr.Zero;
|
private static IntPtr oldWndProc = IntPtr.Zero;
|
||||||
|
|
||||||
private void RegisterWindow()
|
private void RegisterWindow(IntPtr handle)
|
||||||
{
|
{
|
||||||
newWndProc = new NativeMethods.WinProc(WndProc);
|
newWndProc = new NativeMethods.WinProc(WndProc);
|
||||||
|
|
||||||
var handle = this.GetWindowHandle();
|
|
||||||
|
|
||||||
oldWndProc = NativeMethods.SetWindowLongPtr(handle, NativeMethods.WindowLongIndexFlags.GWL_WNDPROC, newWndProc);
|
oldWndProc = NativeMethods.SetWindowLongPtr(handle, NativeMethods.WindowLongIndexFlags.GWL_WNDPROC, newWndProc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -209,7 +209,7 @@
|
|||||||
<StackPanel Orientation="Horizontal" Spacing="12">
|
<StackPanel Orientation="Horizontal" Spacing="12">
|
||||||
<ToggleSwitch
|
<ToggleSwitch
|
||||||
x:Uid="ToggleSwitch"
|
x:Uid="ToggleSwitch"
|
||||||
IsOn="{x:Bind Mode=TwoWay, Path=IsEnabled}"
|
IsOn="{x:Bind IsEnabled, Mode=TwoWay}"
|
||||||
Style="{StaticResource RightAlignedCompactToggleSwitchStyle}" />
|
Style="{StaticResource RightAlignedCompactToggleSwitchStyle}" />
|
||||||
<Button Content="{ui:FontIcon Glyph=}" Style="{StaticResource SubtleButtonStyle}">
|
<Button Content="{ui:FontIcon Glyph=}" Style="{StaticResource SubtleButtonStyle}">
|
||||||
<Button.Flyout>
|
<Button.Flyout>
|
||||||
@@ -465,14 +465,13 @@
|
|||||||
TextChanged="EditVariableDialogValueTxtBox_TextChanged"
|
TextChanged="EditVariableDialogValueTxtBox_TextChanged"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
<MenuFlyoutSeparator Visibility="{Binding ShowAsList, Converter={StaticResource BoolToVisibilityConverter}}" />
|
<MenuFlyoutSeparator Visibility="{Binding ShowAsList, Converter={StaticResource BoolToVisibilityConverter}}" />
|
||||||
<ListView
|
<ItemsControl
|
||||||
x:Name="EditVariableValuesList"
|
x:Name="EditVariableValuesList"
|
||||||
Margin="-16,-8,0,12"
|
Margin="0,-8,0,12"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
ItemsSource="{Binding ValuesList, Mode=TwoWay}"
|
ItemsSource="{Binding ValuesList, Mode=TwoWay}"
|
||||||
SelectionMode="None"
|
|
||||||
Visibility="{Binding ShowAsList, Converter={StaticResource BoolToVisibilityConverter}}">
|
Visibility="{Binding ShowAsList, Converter={StaticResource BoolToVisibilityConverter}}">
|
||||||
<ListView.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -523,8 +522,8 @@
|
|||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListView.ItemTemplate>
|
</ItemsControl.ItemTemplate>
|
||||||
</ListView>
|
</ItemsControl>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</ContentDialog>
|
</ContentDialog>
|
||||||
@@ -583,15 +582,14 @@
|
|||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
Visibility="Collapsed" />
|
Visibility="Collapsed" />
|
||||||
|
|
||||||
<ListView
|
<ItemsControl
|
||||||
x:Name="NewProfileVariablesListView"
|
x:Name="NewProfileVariablesListView"
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.ColumnSpan="2"
|
Grid.ColumnSpan="2"
|
||||||
Margin="-16,-8,0,12"
|
Margin="0,-8,0,12"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
ItemsSource="{Binding Variables, Mode=TwoWay}"
|
ItemsSource="{Binding Variables, Mode=TwoWay}">
|
||||||
SelectionMode="None">
|
<ItemsControl.ItemTemplate>
|
||||||
<ListView.ItemTemplate>
|
|
||||||
<DataTemplate x:DataType="models:Variable">
|
<DataTemplate x:DataType="models:Variable">
|
||||||
<Grid Height="48" ColumnSpacing="8">
|
<Grid Height="48" ColumnSpacing="8">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -617,8 +615,8 @@
|
|||||||
Visibility="Collapsed" />
|
Visibility="Collapsed" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListView.ItemTemplate>
|
</ItemsControl.ItemTemplate>
|
||||||
</ListView>
|
</ItemsControl>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<ProjectGuid>{c604b37e-9d0e-4484-8778-e8b31b0e1b3a}</ProjectGuid>
|
<ProjectGuid>{c604b37e-9d0e-4484-8778-e8b31b0e1b3a}</ProjectGuid>
|
||||||
<RootNamespace>FileLocksmithLibInterop</RootNamespace>
|
<RootNamespace>FileLocksmithLibInterop</RootNamespace>
|
||||||
<TargetFramework>net7.0-windows</TargetFramework>
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
<OutDir>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
|
<OutDir>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
|
||||||
<TargetName>PowerToys.FileLocksmithLib.Interop</TargetName>
|
<TargetName>PowerToys.FileLocksmithLib.Interop</TargetName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
<AssemblyTitle>PowerToys.FileLocksmith</AssemblyTitle>
|
<AssemblyTitle>PowerToys.FileLocksmith</AssemblyTitle>
|
||||||
<AssemblyDescription>PowerToys File Locksmith</AssemblyDescription>
|
<AssemblyDescription>PowerToys File Locksmith</AssemblyDescription>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
|
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
|
||||||
<RootNamespace>PowerToys.FileLocksmithUI</RootNamespace>
|
<RootNamespace>PowerToys.FileLocksmithUI</RootNamespace>
|
||||||
<AssemblyName>PowerToys.FileLocksmithUI</AssemblyName>
|
<AssemblyName>PowerToys.FileLocksmithUI</AssemblyName>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<RuntimeIdentifiers>win10-x64;win10-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<UseWinUI>true</UseWinUI>
|
<UseWinUI>true</UseWinUI>
|
||||||
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
|
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
@@ -35,10 +35,10 @@
|
|||||||
|
|
||||||
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
||||||
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||||
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
||||||
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PublishProtocol>FileSystem</PublishProtocol>
|
<PublishProtocol>FileSystem</PublishProtocol>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<PublishDir>$(PowerToysRoot)\$(Platform)\$(Configuration)\WinUI3Apps</PublishDir>
|
<PublishDir>$(PowerToysRoot)\$(Platform)\$(Configuration)\WinUI3Apps</PublishDir>
|
||||||
<RuntimeIdentifier>win10-$(Platform)</RuntimeIdentifier>
|
<RuntimeIdentifier>win-$(Platform)</RuntimeIdentifier>
|
||||||
<SelfContained>true</SelfContained>
|
<SelfContained>true</SelfContained>
|
||||||
<PublishSingleFile>False</PublishSingleFile>
|
<PublishSingleFile>False</PublishSingleFile>
|
||||||
<PublishReadyToRun>False</PublishReadyToRun>
|
<PublishReadyToRun>False</PublishReadyToRun>
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<Import Project="..\..\..\Version.props" />
|
<Import Project="..\..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<RuntimeIdentifiers>win10-x64;win10-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<RootNamespace>Hosts</RootNamespace>
|
<RootNamespace>Hosts</RootNamespace>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<RuntimeIdentifiers>win10-x64;win10-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<UseWinUI>true</UseWinUI>
|
<UseWinUI>true</UseWinUI>
|
||||||
<EnablePreviewMsixTooling>true</EnablePreviewMsixTooling>
|
<EnablePreviewMsixTooling>true</EnablePreviewMsixTooling>
|
||||||
<WindowsPackageType>None</WindowsPackageType>
|
<WindowsPackageType>None</WindowsPackageType>
|
||||||
@@ -34,10 +34,10 @@
|
|||||||
|
|
||||||
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
||||||
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||||
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
||||||
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ namespace Hosts.Settings
|
|||||||
private const string HostsModuleName = "Hosts";
|
private const string HostsModuleName = "Hosts";
|
||||||
private const int MaxNumberOfRetry = 5;
|
private const int MaxNumberOfRetry = 5;
|
||||||
|
|
||||||
private readonly ISettingsUtils _settingsUtils;
|
private readonly SettingsUtils _settingsUtils;
|
||||||
private readonly IFileSystemWatcher _watcher;
|
private readonly IFileSystemWatcher _watcher;
|
||||||
private readonly object _loadingSettingsLock = new object();
|
private readonly object _loadingSettingsLock = new object();
|
||||||
|
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ namespace Hosts.ViewModels
|
|||||||
Entries.RefreshFilter();
|
Entries.RefreshFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ping and duplicate should't trigger a file save
|
// Ping and duplicate should not trigger a file save
|
||||||
if (e.PropertyName == nameof(Entry.Ping)
|
if (e.PropertyName == nameof(Entry.Ping)
|
||||||
|| e.PropertyName == nameof(Entry.Pinging)
|
|| e.PropertyName == nameof(Entry.Pinging)
|
||||||
|| e.PropertyName == nameof(Entry.Duplicate))
|
|| e.PropertyName == nameof(Entry.Duplicate))
|
||||||
|
|||||||
@@ -51,9 +51,9 @@ private:
|
|||||||
|
|
||||||
HANDLE m_hProcess = nullptr;
|
HANDLE m_hProcess = nullptr;
|
||||||
|
|
||||||
HANDLE m_hShowEvent;
|
HANDLE m_hShowEvent{};
|
||||||
|
|
||||||
HANDLE m_hShowAdminEvent;
|
HANDLE m_hShowAdminEvent{};
|
||||||
|
|
||||||
bool is_process_running()
|
bool is_process_running()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props')" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<CppWinRTOptimized>true</CppWinRTOptimized>
|
<CppWinRTOptimized>true</CppWinRTOptimized>
|
||||||
@@ -146,8 +146,8 @@
|
|||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
@@ -156,9 +156,9 @@
|
|||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220914.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.221104.6\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.755\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.231115000\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.4.230913002\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.756\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -2,6 +2,6 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.221104.6" targetFramework="native" />
|
<package id="Microsoft.Windows.CppWinRT" version="2.0.221104.6" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
|
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.22621.755" targetFramework="native" />
|
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.22621.756" targetFramework="native" />
|
||||||
<package id="Microsoft.WindowsAppSDK" version="1.4.230913002" targetFramework="native" />
|
<package id="Microsoft.WindowsAppSDK" version="1.4.231115000" targetFramework="native" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -5,14 +5,14 @@
|
|||||||
<AssemblyTitle>PowerToys.MeasureTool</AssemblyTitle>
|
<AssemblyTitle>PowerToys.MeasureTool</AssemblyTitle>
|
||||||
<AssemblyDescription>PowerToys MeasureTool</AssemblyDescription>
|
<AssemblyDescription>PowerToys MeasureTool</AssemblyDescription>
|
||||||
<OutputType>WinExe</OutputType>
|
<OutputType>WinExe</OutputType>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
|
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
|
||||||
<RootNamespace>PowerToys.MeasureToolUI</RootNamespace>
|
<RootNamespace>PowerToys.MeasureToolUI</RootNamespace>
|
||||||
<AssemblyName>PowerToys.MeasureToolUI</AssemblyName>
|
<AssemblyName>PowerToys.MeasureToolUI</AssemblyName>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
<Platforms>x86;x64;arm64</Platforms>
|
<Platforms>x86;x64;arm64</Platforms>
|
||||||
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
<UseWinUI>true</UseWinUI>
|
<UseWinUI>true</UseWinUI>
|
||||||
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
|
<GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
|
||||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||||
@@ -35,10 +35,10 @@
|
|||||||
|
|
||||||
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
<!-- SelfContained=true requires RuntimeIdentifier to be set -->
|
||||||
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||||
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
<PropertyGroup Condition="'$(Platform)'=='ARM64'">
|
||||||
<RuntimeIdentifier>win10-arm64</RuntimeIdentifier>
|
<RuntimeIdentifier>win-arm64</RuntimeIdentifier>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
<!-- See https://learn.microsoft.com/windows/apps/develop/platform/csharp-winrt/net-projection-from-cppwinrt-component for more info -->
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<Import Project="..\..\..\Version.props" />
|
<Import Project="..\..\..\Version.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0-windows10.0.20348.0</TargetFramework>
|
<TargetFramework>net8.0-windows10.0.20348.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<ProjectGuid>{D9C5DE64-6849-4278-91AD-9660AECF2876}</ProjectGuid>
|
<ProjectGuid>{D9C5DE64-6849-4278-91AD-9660AECF2876}</ProjectGuid>
|
||||||
|
|||||||
@@ -16,10 +16,7 @@ internal static class LayoutHelper
|
|||||||
public static LayoutInfo CalculateLayoutInfo(
|
public static LayoutInfo CalculateLayoutInfo(
|
||||||
LayoutConfig layoutConfig)
|
LayoutConfig layoutConfig)
|
||||||
{
|
{
|
||||||
if (layoutConfig is null)
|
ArgumentNullException.ThrowIfNull(layoutConfig);
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(layoutConfig));
|
|
||||||
}
|
|
||||||
|
|
||||||
var builder = new LayoutInfo.Builder
|
var builder = new LayoutInfo.Builder
|
||||||
{
|
{
|
||||||
|
|||||||