Compare commits

...

157 Commits

Author SHA1 Message Date
Enrico Giordani
5de2c3dc22 [msi] add FancyZonesEditor.deps.json (#10519) 2021-03-31 21:45:23 +02:00
Mykhailo Pylyp
a91f74d648 fix glitch (#10517) 2021-03-31 21:54:10 +03:00
Ivan Stošić
9cf3b9f91d Disable forwarding the scroll event (#10513) 2021-03-31 14:54:32 +02:00
dependabot[bot]
667e38fea0 Bump y18n from 4.0.0 to 4.0.1 in /src/settings-web (#10508)
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-31 09:58:38 +02:00
Enrico Giordani
1728857ca1 [CI build] exclude WebcamReportTool from build (#10510) 2021-03-31 09:37:18 +02:00
Seraphima Zykova
38b9ce3aa2 [FZ Editor] Crash with malformed layout data fix. (#10500)
* check values on json parsing

* comments

* invalidate malformed canvas layouts

* changed error message

* simplify error message

* removed exception message
2021-03-30 20:42:10 +02:00
Clint Rutkas
fba4fd91a1 Updating nugets (#10493)
* Update System.Text.Json and Newtsoft.json

* update newtson.json

* Updating testing only items.
2021-03-30 09:52:00 -07:00
Andrey Nekrasov
ffda6a51bb [Tools] Add DShow webcam report tool (#10502) 2021-03-30 18:27:42 +03:00
csigs
49fb838175 LEGO: check in for master to temporary branch. (#10480) 2021-03-29 15:46:38 +02:00
Ivan Stošić
31fa9475da [FancyZones] Fix deadlocks in ZoneWindowDrawing (#10461)
* Fixed deadlocks in ZoneWindowDrawing

Moved all possibly reentrant or blocking calls to ShowWindow out of critical sections.

* Initialize bools

* Tune flashing visuals

* Address PR comments

* Use  = true; to initialize bools
* Remove tracing from GetAnimationAlpha
* Use member initialization when constructing AnimationInfo

* Refactor rendering

* Whitespace

* Hide window on render failure
2021-03-29 13:39:16 +02:00
Enrico Giordani
ccc380f11c [telemetry][ColorPicker] add event name support (#10476)
Allow to set a custom name for the event instead of just using the
class name.
2021-03-29 11:20:49 +02:00
Mykhailo Pylyp
9a3896f48a logs (#10462) 2021-03-26 19:17:26 +02:00
Ivan Stošić
5baf11dada Fix a vector<bool> subscript out of range crash (#10458) 2021-03-26 14:44:03 +01:00
Mykhailo Pylyp
1c46e6b72b Added more logging (#10445) 2021-03-26 14:21:29 +02:00
Clint Rutkas
ccaa98513c Update bug_report.yml 2021-03-25 13:16:57 -07:00
Andrey Nekrasov
aac479f58c [Log] Remove log_settings.json during installation and set default level to trace (#10438) 2021-03-25 17:28:29 +03:00
Mykhailo Pylyp
718289c115 Settings telemetry for ColorPicker (#10417) 2021-03-25 16:04:56 +02:00
Seraphima Zykova
13c4c188fa [FancyZones Editor] Quick layout switch hotkeys (#10437)
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2021-03-25 15:44:55 +03:00
Mykhailo Pylyp
7ba03ed24f Add telemetry to ColorPicker (#10413) 2021-03-25 13:11:36 +02:00
Andrey Nekrasov
6229ea4559 [Runner] verify the existence of Launcher assets (#10416) 2021-03-25 12:26:11 +03:00
Seraphima Zykova
fd55026fba [ColorPicker] Order colors with up/down buttons. (#10392) 2021-03-24 19:36:25 +03:00
Clint Rutkas
3ae5135f67 GitHub issue template (#10401)
* Create bug_report.yml

adding in yml version for bug report

* Update bug_report.yml

* Update bug_report.yml

* Delete bug_report.md

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2021-03-24 09:03:30 -07:00
Mykhailo Pylyp
aba97a419c Don't update view if settings were not changed (#10407) 2021-03-24 16:13:33 +02:00
Andrey Nekrasov
3601492ce1 [PowerLauncher] Immediately releases AppxManifest stream objects (#10394) 2021-03-23 18:32:33 +03:00
ricardosantos9521
55cfaaf929 add tooltips to vscode workspaces plugin (#10348) 2021-03-23 10:32:55 +01:00
Mykhailo Pylyp
730e5f299f fix null reference exception (#10372) 2021-03-22 17:47:23 +02:00
csigs
2698585018 LEGO: check in for master to temporary branch. (#10374) 2021-03-22 16:45:56 +01:00
Mykhailo Pylyp
acbabbe13d Color picker logs path (#10375) 2021-03-22 17:23:39 +02:00
Ben Constable
77d67f3599 [Color Picker] Use escape key to exit colour editor UI (#10325)
* Use escape key to exit color editor UI

* Logic handling formatting
2021-03-22 10:15:47 +01:00
Mykhailo Pylyp
612e9f8b99 Settings telemetry for PT Run (#10328) 2021-03-19 19:03:12 +02:00
Andrey Nekrasov
057e92afb8 [Old Settings] Warn the user on Windows < 1903 that next version won't be supported (#10313) 2021-03-19 12:39:18 +03:00
Mykhailo Pylyp
3a15276668 "Clear the previous query on launch" has a flicker (#10291) 2021-03-18 20:04:04 +02:00
Mykhailo Pylyp
5e9a31eaa7 fix versions for registry and vscode workspaces plugins (#10314) 2021-03-18 18:19:09 +02:00
Enrico Giordani
69d293790a [msi] add version number in telemetry events (#10312) 2021-03-18 16:55:01 +01:00
Andrey Nekrasov
7c28459673 [Settings] Fix HTML settings build (#10307) 2021-03-18 17:14:37 +03:00
Enrico Giordani
fa5ce634e1 [msi] enable telemetry on build farm (#10309) 2021-03-18 14:24:48 +01:00
Clint Rutkas
cc38d42bf9 Adjustments for editor to make langauge more clear for how to interact with editor. (#10298) 2021-03-17 15:45:12 -07:00
Josh Soref
72d92413a2 Upgrade check-spelling to 0.0.17-alpha (#10173)
* spelling: snapped

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: split

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* ci: update to Spell check to 0.0.17a

In the past, plurals `foo`+`s` and past tenses `foo`+`ed` were
automatically tolerated. This turned out to be a bad design choice on my
part.

The basic example is that `potatos` would sometimes be treated as a
mistake and sometimes not (depending on the presence of `potato`).

You can see in this PR, that this logic resulted in `SNAPED` being
accepted as a word along with `actioned` -- there's nothing
intrinsically wrong w/ the latter, but unfortunately in order to screen
out the former, my shortcut just couldn't stick around. This means that
the `expect` files will grow perhaps by a tiny bit, but as
you can see, not really by much.

When GitHub initially introduced GitHub Actions, the event for
`pull_request` was created without enough permission for a tool like
this to work properly. I worked around that by using the `schedule`
event. In 2020, they introduced a replacement event
`pull_request_target` which has enough permission. This means that I can
stop relying on the `schedule` event.
2021-03-17 19:27:30 +01:00
Andrey Nekrasov
535cd1f9ac [Auto-update] Turn off on Windows < 1903 (#10240) 2021-03-17 16:49:07 +03:00
Andrey Nekrasov
7c8ed9e2bb [MSI installer] fix WIX build warnings (#10241) 2021-03-17 12:16:47 +03:00
Clint Rutkas
013be4bbb8 adding vsconfig to main solution (#10169)
* adding vsconfig

* Update readme.md

Tweaking instructions to remove script

* docs tweak

docs tweak

* Update .vsconfig

My machine was in a weird state because of this

Co-authored-by: Deondre Davis <dedavis@microsoft.com>
2021-03-16 14:28:55 -07:00
Andrey Nekrasov
81c19b4749 [MSI] Do not use advertised icon (#10246) 2021-03-16 19:40:57 +03:00
Mykhailo Pylyp
1d2aeaf147 Tests on pipeline (#10244) 2021-03-16 17:29:20 +02:00
Niels Laute
0413fe944f Updated accent color (#10257)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-16 15:32:43 +01:00
Niels Laute
79eafee59a [Docs] Remove unused images (#10251)
* Removed images

* Added aka.ms redirect

* Revert "Added aka.ms redirect"

This reverts commit f176d6ffa5.

* Added image and updated readme

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-16 15:18:27 +01:00
Niels Laute
6e14e86e4b [ColorPicker] UX fixes (#10220)
* Added tooltip

* Added edit icon

* NumberBoxes

* [spelling] add terms

* Update ColorPickerControl.xaml

* use variable to reduce casting

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-03-15 21:32:54 +01:00
csigs
885c7c4e50 LEGO: check in for master to temporary branch. (#10252) 2021-03-15 18:49:55 +01:00
Ivan Stošić
7377ef5606 [FancyZones] Trace various function calls (#10183)
* Implement CallTracer

* Add CallTracer to various places

* Newline

* Fix unit tests not compiling for some reason

* Add macro
remove some trace calls

* Add indentation

* Add semicolon

* Update src/modules/fancyzones/lib/CallTracer.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Actually indent/unindent output

* Fix initial indent level

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-15 13:58:25 +01:00
Mykhailo Pylyp
9a061d74b3 Update PowerToys Run page on settings.json change (#10204) 2021-03-15 14:52:03 +02:00
Andrey Nekrasov
d872be4310 [Updating] Install dotnet 3.1.13 and bump min required version (#10180) 2021-03-11 14:43:26 +03:00
Ivan Stošić
acb8595a50 [FancyZones] Fix taskbar size issues (#9856)
* Fix taskbar size issues

* Fix issue with DPI unaware apps
2021-03-11 12:31:29 +01:00
Ivan Stošić
488ee19f93 [FancyZones editor] Fix CanvasRect not being initialized (#10163)
* Fix CanvasRect not being initialized

* No need to use workArea height if it's set in CanvasLayoutModel
2021-03-11 10:50:53 +01:00
Ivan Stošić
72da703f0e [FancyZones] Use a window pool for zone windows (#9625)
* Implemented and tested WindowPool

* Added mutex

* Add logs to WindowPool

* Fix a potential thread safety bug
2021-03-10 14:50:40 +01:00
Ivan Stošić
e586a7ad64 [FancyZones] Rework grid editor (#10116)
* Started rewriting

* Making progress

* Fix resizers not moving around

* Implemented splitting, fixed some bugs

* Removed more code, renamed methods

* Merging zones works

* Fix Shift key behavior

* Added spacing (has bugs)

* Implement minimum size restriction

* Match preview and editor visuals

* Snapping works

* Show when splitting is not possible

* Fix spell checker complaining

* Tweak FZ Lib function computing grid zones

* Fix potential crash when loading old zone layouts

* Fix dead objects talking

* Fix splitters being shown when they shouldn't be

* Fix index numbering

* Fix small glitch with the shift key

* Do not snap to borders outside the zone
2021-03-10 13:22:19 +01:00
Enrico Giordani
9a2c195f5f [chore] cleanup 'using' statements (#10144)
fix typo in comment
2021-03-10 13:16:46 +01:00
Mykhailo Pylyp
b9397157ab initialize logger (#10152) 2021-03-10 13:57:06 +02:00
Enrico Giordani
2e3473bbfd [FZ Editor] Light & Dark colors adjustments (#10115)
* [FZ Editor] Light & Dark colors adjustments

* Reduce dark theme background transparency
2021-03-09 19:39:01 +01:00
Adam Short
5c45f2c7b8 [PT Run] Run dialog now has monitor positioning options (#9492)
* Run dialog now has monitor positioning options

* add monitor index validation in window position calculation

* correct path in page

* change how radio buttons are declared to resolve them not being set based on setting

* Change "follow mouse" wording

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>

* PowerLauncher -> PowerToysRun for new variables/resources

* correct header label id and update wording to PowerToys Run

* only enable custom index if BOTH custom position radio checked and Run is enabled

* retrieve list count of detected monitors to limit selection of MonitorToDisplayOn

* add a link to Windows Display settings

* fix display settings link

* change how we get the number of connected monitors so we're not relying on presentation core, windowsbase etc which seem to fail the build

* combine position and appearance headers

* change references for custom position to "focus"

* restore accidentally removed files

* remove unused directives

* hook up "active window" position with the launcher window

* remove left overs

* remove uneeded itemgroup

* make resource prefixes consistent; using "Run_"

* add etcoreapp to spell check

* undo change to file not modified in the end

* remove unused checkbox post rebase

* remove change to reduce diff size

* changes according to review

* revert whitespace changes post rebase

* revert resources

* add changes back

* Update src/settings-ui/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw

Add comment

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* remove unneeded resource string

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-09 18:20:49 +01:00
Mykhailo Pylyp
964286ab99 Makes AllPlugins single tone thread safe (#10121) 2021-03-09 18:31:30 +02:00
csigs
38eb6ad062 LEGO: check in for master to temporary branch. (#10125) 2021-03-09 10:06:21 +01:00
Mykhailo Pylyp
34882073c9 change directory name to the name used in build farm (#10117) 2021-03-08 18:03:50 +01:00
Mykhailo Pylyp
c36b202fe7 VSCode to full name, disable Visual Studio Code plugin by default (#10071) 2021-03-08 13:57:32 +02:00
Niels Laute
5214df42a6 FZ disabled fix (#10100)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-08 12:34:31 +01:00
Mykhailo Pylyp
0c3f8af4d9 update plugins settings with changes (#10064) 2021-03-05 15:43:08 +02:00
Mykhailo Pylyp
e66db5cc10 fix path to resources.resx file (#10059) 2021-03-05 14:51:44 +02:00
Niels Laute
f09b3e2dae [Run] Add Fluent icon for PT Run (#9962)
* Add run ico

* Updated ico

* Add icon as resource and also as asset

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-03-05 12:01:36 +01:00
Seraphima Zykova
11c622afca PowerToys Settings and OOBE title localization (#10054) 2021-03-05 13:51:34 +03:00
Enrico Giordani
22429b2407 [chore] remove unused functions (#10051) 2021-03-05 11:48:19 +01:00
Enrico Giordani
026630df74 [chore] remove reference to non existant file (#10029) 2021-03-04 20:31:51 +01:00
Enrico Giordani
4ce0c91ea7 [chore] remove unused telemetry events (#10030) 2021-03-04 20:31:23 +01:00
Seraphima Zykova
0dfc9b540f [PT Settings] Rename the OOBE opening button and 'File Explorer' section (#10023) 2021-03-04 21:33:14 +03:00
Clint Rutkas
28bbc8089e Readme 0.33 (#9979)
* Update README.md

* Update README.md

* Update README.md

* Update expect.txt

* Update README.md

adding in HTC and jay for helping out a ton as well, gotta figure out a better way to scan on top of just who opened something

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-04 09:31:05 -08:00
ricardosantos9521
7e5fb876bb [Run][New Plugin] VSCode Workspaces/Remote machines (#9050)
* vscode workspaces plugin for Powertoys Run

* reduce score

* make vscode workspaces dynamic instead of string to prevent exceptions

* change icons again

* remove unused images and PreserveNewest during build

* code refactoring

* show vscode ssh remote machines

* update score workspaces

* vscode workspaces plugin for Powertoys Run

* remove unused images and PreserveNewest during build

* code refactoring

* remove unused packages

* get ExecutablePath from AppData and use shell to vscode process

* ' instead of \"

* try using ((char)34) instead of '

* add comments

* translate windows paths

* remove unused code

* add vscodeworkspace to installer

* use the new naming convention for plugins

* sign VSCodeWorkspaces.dll

* reimplement ssh-config parser

* update spell-check

* use the new naming convention for community plugins

* minor adjustments

* add actionKeyword {

* prevent copyright

* add localization

* add github link

* bug fix after localization

* --new-window --enable-proposed-api ms-vscode-remote.remote-ssh

* change order by

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* fix powertoys run settings not working

* update plugin description

Co-authored-by: ricar <ricar@ASUS>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-04 18:15:49 +01:00
Sean Lin
f648ac44b2 Save raw command instead of resolved command in shell history (#10000) 2021-03-04 18:04:31 +01:00
Enrico Giordani
8f3e0517ca [Settings, OOBE] set location to center screen (#10022)
and ensure the window is inside the screen work area
2021-03-04 17:58:01 +01:00
Enrico Giordani
f7e2fa5263 [FZ Editor] hide tool windows from alt-tab (#10011) 2021-03-04 13:49:29 +01:00
Seraphima Zykova
b5ca691e69 [OOBE] Changed modules order (#10020) 2021-03-04 15:33:50 +03:00
Enrico Giordani
283d0a352e [OOBE] add PT hero image (#10016)
* [OOBE] add PT hero image

* spell checker
2021-03-03 22:48:36 +01:00
Clint Rutkas
0446c27df1 making the image not be based on a URL but on actual local image for instant loading (#10014) 2021-03-03 21:44:49 +01:00
Seraphima Zykova
de7f8c4a3a [PT Settings] Crash on restart with OOBE window opened fix (#10005) 2021-03-03 14:03:37 +03:00
Andrey Nekrasov
571e7f2c2c [ShortcutGuide] make SCG launching behavior a bit more deterministic (#10007) 2021-03-03 13:53:41 +03:00
Niels Laute
a2fcc14e8b Updated assets and margins (#9998)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-02 16:24:05 -08:00
Seraphima Zykova
078aa3d89b [OOBE] Out of box experience window (#9973) 2021-03-02 20:56:37 +03:00
Clint Rutkas
a12350274b Goign t from OOBE to this, this Additional Options was null and crashed. (#9975) 2021-03-02 08:04:08 -08:00
csigs
b9ee317ab9 LEGO: check in for master to temporary branch. (#9965) 2021-03-01 14:59:05 +01:00
Niels Laute
bb228c73ab [Settings] UI fixes (#9949)
* Adding period to warnings

* Increased font size to default

* Fixes

* PowerLauncher display setting fix

* Added the correct brush

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-01 14:56:30 +01:00
Mykhailo Pylyp
4a9e920a1c [PowerToys Run] Plugin manager (#9872) 2021-02-26 13:21:58 +02:00
Ivan Stošić
f839a408de [FancyZones] Overlapping zones selection algorithm - settings (#9874)
* Started work

* Removed bools in favor of an enum, renamed some

* Done something but it still doesn't work

* Settings are now correctly saved

* I'm getting a crash, I need to rebuild from scratch

* Settings page looks alright

* Completed work. Unit tests?

* Use ComboBox instead

* Add telemetry

* Update text
2021-02-25 16:23:05 +01:00
Clint Rutkas
889360b5e4 Update README.md 2021-02-24 14:29:52 -08:00
Davide Giacometti
571bceb386 common helper for execute shell process from run plugins (#9538) 2021-02-23 09:53:08 +01:00
Enrico Giordani
20a922ce21 [KBM] Rewording for completion dialog warning (#9851) 2021-02-23 09:38:41 +01:00
Enrico Giordani
060fff6d2f [FZ Editor] Update description for 'merge zones' (#9850) 2021-02-23 09:37:55 +01:00
Clint Rutkas
e27d892d74 remove highlight keyword (#9845) 2021-02-23 06:15:04 +01:00
Drakula44
2b0e32916d Svg image preview is displayed unscaled and uncentered (#8996)
* Fixed screen centering and scaling problem with SVG files

* Little shorter code.

* Improved exception caching

* typo

* fixed upscaling problem

* add CSS that IE6 can support it

* typo

* adding in spelling

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-02-22 09:35:41 -08:00
csigs
a786fd308a LEGO: check in for master to temporary branch. (#9835) 2021-02-22 18:20:25 +01:00
Niels Laute
ed25ae64e5 [FZ Editor] Updated (preview) zone colors (#9799)
* Updated colors

* Updated border colors

* Updated borderbrush

* Updated background colors

* Added DropShadow
2021-02-22 10:50:33 +01:00
Niels Laute
072638ab73 [Docs] Adding file explorer preview icon to docs (#9812)
* Added FEP icon

* Removed image

* Added new image
2021-02-21 00:11:05 +01:00
Aaron Junker
6580eb4bef Updated link for .calng-format (#9816) 2021-02-21 00:09:02 +01:00
Davide Giacometti
ff4a78a7f9 PT Run Service notification improvements (#9772) 2021-02-19 18:17:52 +01:00
Niels Laute
a29b3aa500 [FZ editor] UX update for edit dialog (#9709)
* Layout title label fix

* Updated formatting for resolution textlabel

* Updated UX

* Added tooltip to layout title textblock

* Updated icon button styles

* Moved buttons around

* Updated margin

* Updated strings

* Revert "Updated strings"

This reverts commit cc4e1764b7.

* [spell checker] add terms

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-19 14:17:13 +01:00
Niels Laute
5dae51e12e Adding icons (#9785)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-19 14:12:35 +01:00
Seraphima Zykova
7fcf2bbdb3 [Settings] Settings window arguments revision (#9760) 2021-02-18 16:11:57 +03:00
csigs
7f15755edc LEGO: check in for master to temporary branch. (#9773) 2021-02-18 12:46:20 +01:00
csigs
bb1681e40c LEGO: check in for master to temporary branch. (#9751) 2021-02-18 12:45:47 +01:00
Andrey Nekrasov
5e75c0fc6e [Bootstrapper] improve logging (#9765) 2021-02-18 09:54:24 +03:00
Ivan Stošić
ee45c39d65 Fix Runner stealing shortcuts on older Win10 (#9744) 2021-02-17 11:36:39 +01:00
csigs
666b4e5964 LEGO: check in for master to temporary branch. (#9701) 2021-02-16 20:07:53 +01:00
Niels Laute
df5f5ba1b5 [Run] Fix context menu (#9712)
* Added modern context menu

* Context menu fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-15 20:27:39 +01:00
csigs
2d39bb8cd2 LEGO: check in for master to temporary branch. (#9697) 2021-02-13 09:43:23 +01:00
csigs
d740ac57c7 LEGO: Pull request from lego/hb_a13bbffa-1136-4930-9ebe-33895240f846_20210212115256196 to master (#9682)
* LEGO: check in for master to temporary branch.

* [spell checker] add new terms

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-12 22:48:15 +01:00
csigs
204beaca11 LEGO: Pull request from lego/hb_a13bbffa-1136-4930-9ebe-33895240f846_20210211235251698 to master (#9666)
* LEGO: check in for master to temporary branch.

* [spell checker] add new terms

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-12 18:38:11 +01:00
Enrico Giordani
8fcb9e2b63 [bootstrapper] change newer version detected action (#9679)
* [bootstrapper] change new version detected action
when a new version is detected, don't run the new version MSI
instead show an error dialog and exit
improve the error dialog logic
add more logging

* [spell checker] add new terms
2021-02-12 16:56:15 +01:00
Ivan Stošić
419a143bf2 [Installer] Remove NGen step for ImageResizer (#9651)
* Removed NGen step in installer for ImageResizer

* Removed unused extension
2021-02-12 13:59:29 +01:00
Mykhailo Pylyp
916ff4a3ad documented changes to PT Run (#9683) 2021-02-12 14:49:54 +02:00
Seraphima Zykova
15dab02e75 [PT Settings] Rename "Microsoft.PowerToys.Setting.UI.Runner" to "PowerToys.Settings" (#9637) 2021-02-11 19:29:56 +03:00
Enrico Giordani
687b281b47 [bootstrapper] progress bar UI polishing (#9644)
* Formatting, coding style, variable & function name

* Progress dialog: label position and background
2021-02-11 17:18:19 +01:00
Enrico Giordani
d190e33313 [msi] PowerToysSetupCustomActions intermediate dir (#9641) 2021-02-11 17:12:31 +01:00
Davide Giacometti
3715b8c5f2 [Runner] Open settings when restarted as admin (#9463)
* open settings from runner

* Update src/runner/main.cpp

* Update src/runner/main.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-02-10 14:48:43 +01:00
Mykhailo Pylyp
d92ff6d45d tweak plugin settings (#9522) 2021-02-10 15:12:42 +02:00
Davide Giacometti
ec6b9acad9 [FanzyZones] Common ThemeManager (#9576)
* common ThemeManager in FancyZones editor

* fix high contrast theme
2021-02-10 14:10:42 +01:00
Davide Giacometti
d2902440d2 PT Run tile as user home (#9579) 2021-02-10 14:02:29 +01:00
Niels Laute
6793f74b3b Updated FZ images for docs (#9593)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-10 13:50:05 +01:00
Niels Laute
34e2a86f1a Updated FZ image (#9596)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-10 09:58:52 +01:00
Clint Rutkas
068027e23b Update pipeline.user.windows.yml (#9616) 2021-02-10 00:55:37 -08:00
csigs
c20f501175 LEGO: check in for master to temporary branch. (#9611) 2021-02-10 09:35:41 +01:00
Ivan Stošić
c8f0492353 [PT Run] Improve logs (#9518)
* Improved some aspects, more work left

* Fix Log being called instead of building a string

* Address PR comments

* Okay, spell checker
2021-02-09 14:54:39 +01:00
csigs
9c6dfd493c LEGO: check in for master to temporary branch. (#9594) 2021-02-09 13:20:02 +01:00
Seraphima Zykova
21abb6fd09 [PT Settings] Opening windows color settings from inside PT (#9589) 2021-02-09 14:11:51 +03:00
Devagya Awasthi
6213e0a116 Update runner.md (#9586)
remove broken link, general_settings.cpp already defined on line 22
2021-02-09 10:39:59 +01:00
csigs
006ba60071 LEGO: check in for master to temporary branch. (#9581) 2021-02-09 10:32:19 +01:00
csigs
531a502c53 LEGO: check in for master to temporary branch. (#9562) 2021-02-09 10:31:43 +01:00
Ivan Stošić
47e288da4c [FancyZones] Improve zone selection (#9447)
* Improve zone selection algorithm

* Thanks, spell checker

* Fix failing test case

* Add error logging

* Added support for different zone selection algorithms

* Revert "Fix failing test case"

This reverts commit 9f31a8a7e6.
2021-02-08 10:48:11 +01:00
csigs
1899d017dc LEGO: check in for master to temporary branch. (#9555) 2021-02-08 09:40:55 +01:00
csigs
1be227b07b LEGO: check in for master to temporary branch. (#9546) 2021-02-08 09:40:07 +01:00
csigs
4195fa481b LEGO: check in for master to temporary branch. (#9542) 2021-02-07 10:41:45 +01:00
csigs
2e3345d2ce LEGO: check in for master to temporary branch. (#9528) 2021-02-07 10:40:50 +01:00
Clint Rutkas
8f14226ab4 Update README.md
tweaking installer version
2021-02-05 09:32:19 -08:00
Enrico Giordani
77d84982c2 [FanzyZones] app history and zone settings granular saving (#9489) (#9494)
move DeleteFancyZonesRegistryData to proper place
add logging
2021-02-04 21:02:24 +01:00
Enrico Giordani
e0e53fcf69 [FZ Editor][loc] remove duplicated id(s) (#9498) 2021-02-04 20:32:01 +01:00
Clint Rutkas
fffb26f558 small tweak but helps boost build time locally. https://github.com/mrlacey/DontCopyAlways/blob/main/explanation.md (#9475) 2021-02-04 04:18:50 -08:00
Clint Rutkas
2b449e0850 Consolidate nuget packages (#9458)
* TestFramework to 2.1.2

* TestAdapter to 2.1.2

* ModernUI to 0.9.3 which is used by FancyZones
2021-02-04 04:18:24 -08:00
Clint Rutkas
2caee2a0dc Update README.md 2021-02-03 13:32:14 -08:00
Deondre Davis
75116b43b4 Moving OOBE to wiki (#9459) 2021-02-03 11:08:16 -08:00
Deondre Davis
f0e887ca33 Adding OOBE Dialog spec for review (#9225)
* Adding OOBE Dialog spec for review

* Typo

* Update OOBE-Dialog.md

* Updating OOBE spec

* Update OOBE-Dialog.md

* Update expect.txt

* Update OOBE spec

* Update OOBE-Dialog.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-02-03 10:22:58 -08:00
Seraphima Zykova
c7b6e51eba [FZ Editor] Show zone size below the zone index (#9449) 2021-02-03 20:15:16 +03:00
Seraphima Zykova
4bba8bc173 [FZEditor] Create new custom layout with one zone by default (#9440) 2021-02-03 15:56:08 +03:00
csigs
f4f12b7dcb LEGO: check in for master to temporary branch. (#9424) 2021-02-03 12:20:48 +01:00
Seraphima Zykova
32d164a786 [FZ Settings] replaced checkbox with radiobuttons (#9438) 2021-02-03 14:12:53 +03:00
Clint Rutkas
4cffc825c8 0.31 release notes (#9306)
* Update README.md

* Update expect.txt

* Update README.md

* adding EOF

adding EOF

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Apply suggestions from code review

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Deondre Davis <dedavis@microsoft.com>

* Apply suggestions from code review

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>

* Update README.md

* Update README.md

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Deondre Davis <dedavis@microsoft.com>
2021-02-02 09:40:01 -08:00
Mykhailo Pylyp
700e1a1c6f Deleted unused resources (#9392) 2021-02-02 17:20:28 +02:00
csigs
3f6bc35ec6 LEGO: check in for master to temporary branch. (#9411) 2021-02-02 13:35:36 +01:00
Seraphima Zykova
e4963d65ff [FZ Editor] Editor window size overflow (#9389) 2021-02-02 11:16:03 +03:00
Seraphima Zykova
612f3e20ac [FZ Editor] Update the small layout preview after canceling zone editing. (#9391) 2021-02-02 11:15:05 +03:00
Enrico Giordani
f309f48ae2 LEGO: check in for master to temporary branch. (#9401) (#9405)
Co-authored-by: csigs <csigs@users.noreply.github.com>
2021-02-02 08:54:43 +01:00
csigs
d5764fd387 LEGO: check in for master to temporary branch. (#9374) 2021-02-02 08:20:06 +01:00
Enrico Giordani
6fe36c9d1c Revert "LEGO: check in for master to temporary branch. (#9401)" (#9402)
This reverts commit 245bd302d7.
2021-02-02 08:18:55 +01:00
csigs
245bd302d7 LEGO: check in for master to temporary branch. (#9401) 2021-02-02 06:38:30 +01:00
788 changed files with 36723 additions and 8482 deletions

View File

@@ -1,38 +0,0 @@
---
name: 🐛 Bug report
about: Report errors or unexpected behavior
title: ''
labels: Issue-Bug,Triage-Needed
assignees: ''
---
<!--
**Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**.
Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue.
-->
## Computer information
- PowerToys version:
- PowerToy Utility:
- Running PowerToys as Admin:
- Windows build number: [run "winver"]
## 📝 Provide detailed reproduction steps (if any)
1.
2.
3.
### ✔️ Expected result
_What is the expected result of the above steps?_
### ❌ Actual result
_What is the actual result of the above steps?_
## 📷 Screenshots
_Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form_

90
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,90 @@
name: "Bug report 🐛"
description: Report errors or unexpected behavior
title: ''
labels:
- Issue-Bug
- Triage-Needed
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
value: |
Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
We highly suggest including a screenshots and a bug report log (System tray->Report bug). To include, paste them into the markdown editor below the form or follow up with a separate comment.
- type: input
attributes:
label: Microsoft PowerToys version
placeholder: |
"0.33.1"
description: |
Hover over system tray icon or look at Settings
validations:
required: true
- type: dropdown
attributes:
label: Running as admin
description: Are you running PowerToys as Admin?
options:
- 'No'
- 'Yes'
validations:
required: true
- type: dropdown
attributes:
label: Area(s) with issue?
description: What things had an issue? Check all that apply.
multiple: true
options:
- General
- ColorPicker
- FancyZones
- FancyZones Editor
- Image Resizer
- Keyboard Manager
- MD Preview
- PowerRename
- PowerToys Run
- Shortcut Guide
- SVG Preview
- SVG Thumbnail
- Installer
- System tray interaction
- Settings window
validations:
required: true
- type: textarea
attributes:
label: Other Software
description: If you're reporting a bug about our interaction with other software, what software? What versions?
placeholder: |
vim 8.2 (inside WSL)
OpenSSH_for_Windows_8.1p1
My Cool Application v0.3 (include a code snippet if it would help!)
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
placeholder: Tell us the steps required to trigger your bug.
validations:
required: true
- type: textarea
attributes:
label: ✔️ Expected Behavior
placeholder: What were you expecting?
validations:
required: false
- type: textarea
attributes:
label: ❌ Actual Behavior
placeholder: What happened instead?
validations:
required: true

View File

@@ -1,3 +1,13 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)package(?:-lock)\.json$
(?:^|/)vendor/
/package(?:-lock|)\.json$
/pinyindb/
/settings-html/
ignore$
[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\.
\.ai$
\.bmp$
\.dat$
@@ -7,13 +17,13 @@
\.ico$
\.jpg$
\.lcl$
\.lock$
\.min\.
\.mod$
\.pdf$
\.png$
\.PNG$
\.woff$
\.zip$
^\.github/
^\.github/actions/spell-check/
/package(?:-lock|)\.json$
/pinyindb/
/settings-html/
[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\.

View File

@@ -3,32 +3,28 @@ AAD
abcd
abcdef
abcdefgh
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abgr
ABlocked
Abug
acb
accctrl
accd
Acceleratorkeys
ACCEPTFILES
accessibile
accessibilityinsights
acf
Acl
aclapi
AColumn
acos
acrt
Actioncenter
Actionkeyword
actioned
activatable
ACTIVATEAPP
activationaction
Addavirtualdesktop
Addins
ADDUNDORECORD
ADifferent
ADMINS
adopsinsider
advapi
advfirewall
@@ -53,9 +49,10 @@ amd
Amicrosoft
AMirror
AModifier
AMPROPERTY
AMPROPSETID
anges
ansicolor
ansicpg
antialiased
ANull
AOC
@@ -123,7 +120,6 @@ aumid
AUTHN
AUTOAPPEND
autocomplete
autogenerated
autogenerates
AUTOHIDE
AUTOMATIONPROPERTIES
@@ -133,21 +129,15 @@ autoupdate
AValid
azurecr
azurewebsites
baae
baccda
backend
backtracer
bak
bbe
bbwe
bc
bcc
bck
Bcl
bdaa
bddac
BEGINLABELEDIT
benjamhooper
betadele
betsegaw
BGR
@@ -173,8 +163,10 @@ BLURREGION
bmi
bmp
bms
BNumber
Bokm
BOKMAL
Bools
bootstrapper
BOTTOMALIGN
BPBF
@@ -184,10 +176,7 @@ bricelam
BRIGHTGREEN
Browsable
bsd
bsearch
BSODs
bstr
BText
bti
Btn
BTNFACE
@@ -207,7 +196,6 @@ Captureascreenshot
CAPTURECHANGED
CASESENSITIVE
CAtl
cbfbad
CCDDEE
ccf
cch
@@ -215,15 +203,14 @@ CCom
CContext
CDATA
CDBECF
cde
cdecl
CDeclaration
CDEF
cdpx
cdpxwin
CENTERALIGN
cfg
changecursor
Changemove
cguid
charconv
charset
chdir
@@ -242,7 +229,6 @@ chrono
chrzan
CHT
CImage
cimv
cinttypes
cla
clangformat
@@ -266,12 +252,12 @@ CMDARG
cmder
Cmdlet
cmdline
Cmds
CMIC
CMINVOKECOMMANDINFO
CMINVOKECOMMANDINFOEX
CMock
CMONITORS
cmpr
cmyk
cn
cnt
@@ -279,12 +265,10 @@ coclass
codebase
codecvt
codeofconduct
codeql
codereview
Codespaces
COINIT
colorconv
colorhistory
colorhistorylimit
colorpicker
colorpickerref
COLORREF
@@ -321,7 +305,6 @@ CONTROLL
CONTROLPARENT
Controlz
coords
copiedcolorrepresentation
COPYDATASTRUCT
corehr
cortana
@@ -351,7 +334,6 @@ critsec
crlf
CRM
crmcustomerinsightsapp
cron
CRSEL
crutkas
CSearch
@@ -371,14 +353,15 @@ CSY
CTAB
CTest
ctime
CTLCOLORSTATIC
ctor
CTRLALTDEL
Ctrls
Ctx
CUI
currentculture
CURSORINFO
cursorpos
customaction
CUSTOMACTIONTEST
cvd
cw
@@ -430,8 +413,6 @@ DEFAULTTONEAREST
DEFAULTTONULL
DEFAULTTOPRIMARY
DEFERERASE
deff
deflang
DEFPUSHBUTTON
deinitialization
DELA
@@ -453,9 +434,11 @@ desktopshorcutinstalled
desktopwindowxamlsource
dest
DEU
Devagya
devblogs
devdocs
devenv
devenum
DEVMON
df
DFactory
Dialpad
@@ -500,6 +483,7 @@ DPolicy
DPopup
DPSAPI
Draggen
Drakula
DRAWFRAME
drawingcolor
dreamsofameaningfullife
@@ -507,6 +491,7 @@ drivedetectionwarning
DRM
dropdown
dropref
dshow
dst
DSVG
DText
@@ -555,7 +540,7 @@ EBE
EBEC
EBEE
EBEF
ebf
EBF
EBFC
ECAA
ECAB
@@ -568,6 +553,7 @@ ECDC
ECDE
ECDF
ECEB
ECED
ECEE
ecef
ECFE
@@ -628,14 +614,13 @@ EFBA
EFC
EFDA
EFDE
efe
EFE
EFEB
EFFC
EFFE
efgh
EFile
egistry
Elems
ELogo
elseif
Emoji
@@ -648,6 +633,7 @@ endregion
Enque
ENTERSIZEMOVE
Entireitemname
Entitlements
entrypoint
ENU
enum
@@ -658,7 +644,6 @@ epicgames
ERASEBKGND
EREOF
EResize
eriawan
errc
errorlevel
ERRORMESSAGE
@@ -712,14 +697,9 @@ FANCYZONESEDITOR
Farbraum
FARPROC
Favicon
fcharset
fd
fda
FDFC
feimage
FFB
ffcd
ffd
FFDDDDDD
fff
figcaption
@@ -729,7 +709,6 @@ FILEFLAGS
FILEFLAGSMASK
FILEOP
FILEOS
filesfolder
FILESUBTYPE
FILESYSPATH
filesystem
@@ -741,17 +720,16 @@ finalizer
findstr
FIXEDFILEINFO
FLASHZONES
FLASHZONESONQUICKSWITCH
Fle
fluentui
flyout
fmtlib
fnil
fody
FOF
FOFX
FOLDERID
folderpath
fonttbl
FORCEOFFLINE
foreach
formatetc
@@ -780,8 +758,6 @@ gdi
gdiplus
GDISCALED
generatesqlfromuserquery
getancestor
getasynckeystate
GETDISPINFO
GETDLGCODE
GETEMPTYMARKUP
@@ -797,25 +773,22 @@ Giftbox
github
githubusercontent
gitignore
globalplugins
globals
gmx
GNumber
google
GPTR
grayscale
GText
gui
guiddef
GUITHREADINFO
GValue
gwl
GWLP
gwmi
HACCEL
hangeul
hanja
hanselman
happlebao
hardcoded
HARDWAREINPUT
hashcode
@@ -851,9 +824,8 @@ hitinfo
HIWORD
hk
HKCC
HKCU
HKCR
HKE
HKCU
hkey
HKL
HKLM
@@ -913,6 +885,7 @@ IAppx
IAsync
IAuto
IBackground
IBase
IBeam
IBind
icase
@@ -931,6 +904,7 @@ Iconset
IContext
ICONWARNING
ICore
ICreate
IData
IDCANCEL
IDD
@@ -976,20 +950,20 @@ Iindex
IInitialize
IInput
IInspectable
IIO
IItem
IJson
IKs
IList
ILogon
IMAGEHLP
imageresizer
IMAGERESIZEREXT
imageresizersettings
IMain
IMarkdown
ime
imeutil
img
IMoniker
IMonitor
IMouse
impl
@@ -1005,7 +979,7 @@ inheritdoc
ini
INITCOMMONCONTROLSEX
INITDIALOG
INITGUID
initguid
inl
Inlines
inorder
@@ -1015,7 +989,6 @@ inout
INPC
inprivate
inproc
inputdev
INPUTHARDWARE
INPUTKEYBOARD
INPUTLANGCHANGED
@@ -1028,7 +1001,6 @@ INSTALLLOCATION
INSTALLLOGATTRIBUTES
INSTALLLOGMODE
INSTALLMESSAGE
installpath
INSTALLPROPERTY
INSTALLSTARTMENUSHORTCUT
INSTALLSTATE
@@ -1055,15 +1027,16 @@ ipc
ipcmanager
ipconfig
IPersist
IPin
IPlugin
IPower
ipp
IPreview
ipreviewhandler
ipreviewhandlertranslateaccelerator
ipreviewhandlervisualssetfont
IPrincipal
IProgram
IProperty
IPublic
IQuery
IRead
@@ -1084,7 +1057,6 @@ IShell
ISingle
ismethod
isocpp
issuecomment
IStorage
IStream
istreambuf
@@ -1116,10 +1088,8 @@ IZoom
JArray
jarro
Jarryd
javascript
jfif
jgeosdfsdsgmkedfgdfgdfgbkmhcgcflmi
jhutchings
jjw
jobject
jp
@@ -1128,9 +1098,7 @@ jpeg
jpg
JPN
json
JSONOf
jsonval
jsoref
jsx
junja
jxr
@@ -1226,6 +1194,7 @@ LOGMSG
logon
LOGPIXELSX
LOn
longdate
lookbehind
lowlevel
LOWORD
@@ -1273,6 +1242,7 @@ LVHT
LVIF
LVIS
LVN
LVS
LVSIL
LWA
lwin
@@ -1281,6 +1251,7 @@ lzw
mailto
MAINICON
Mainwindow
majortype
makeappx
MAKEINTRESOURCE
MAKEINTRESOURCEW
@@ -1307,6 +1278,8 @@ Mdb
MDICHILD
MDL
mdpreviewhandler
MEDIASUBTYPE
MEDIATYPE
Melman
memcpy
memset
@@ -1314,7 +1287,6 @@ Mensching
menuitem
MENUITEMINFO
MENUITEMINFOW
menurc
messagebox
messageboxes
METACHARSET
@@ -1334,6 +1306,7 @@ miniz
MINMAXINFO
Miracast
mixin
MJPG
mkdir
MLogo
MMI
@@ -1362,16 +1335,14 @@ moz
mozilla
mpmc
mru
msazure
msbuild
msc
msclr
mscoree
mscorlib
msdata
msdn
MSDN
msedge
MSGBOX
mshtmdid
msi
MSIHANDLE
@@ -1422,7 +1393,7 @@ NCMBUTTONDOWN
NCMBUTTONUP
NCMOUSELEAVE
NCMOUSEMOVE
ncol
NCol
NCPAINT
NCRBUTTONDBLCLK
NCRBUTTONDOWN
@@ -1434,7 +1405,6 @@ NESW
netcore
netcoreapp
netframework
netfx
netsh
netstandard
Neue
@@ -1442,8 +1412,7 @@ newcolor
newitem
newpath
newrow
newtonsoft
nf
Newtonsoft
niels
nielslaute
NIF
@@ -1504,7 +1473,6 @@ npmjs
npos
NResize
ntdll
NTFS
NTSTATUS
nuget
nullopt
@@ -1535,9 +1503,7 @@ oldpath
oldtheme
oleaut
OLECHAR
oledb
oledbcommand
oledbconnection
OLEDB
OLIVEGREEN
OLogo
Onboarding
@@ -1546,7 +1512,8 @@ onedrive
onedrivelogo
ONITEM
onstd
OOBE
oobe
OOBEPT
opencode
opensource
Openthe
@@ -1561,15 +1528,12 @@ ostringstream
OSVERSIONINFOEXW
osx
otating
ouicompat
OUTOFCONTEXT
OUTOFMEMORY
Outptr
outro
outsettings
OVERLAPPEDWINDOW
overlaywindow
owidctlpar
OWNDC
PACL
PAINTSTRUCT
@@ -1618,6 +1582,7 @@ phwnd
pici
pid
pidl
PINDIR
pinfo
pinvoke
Pipelinhttps
@@ -1676,7 +1641,7 @@ PREMULTIPLIED
prevhost
previewer
PREVIEWGROUP
previewhandlerframeinfo
PREVIEWHANDLERFRAMEINFO
previewpane
PREVIOUSVERSIONSINSTALLED
prevpane
@@ -1686,7 +1651,6 @@ PRINTCLIENT
printf
Printfax
prm
proactively
PROCESSKEY
PRODUCTVERSION
Progman
@@ -1733,14 +1697,13 @@ qianlifeng
qit
QITAB
QITABENT
qryidx
Queryable
QUERYENDSESSION
queryfocus
QUERYOPEN
QUEUESYNC
QUICKLAYOUTSWITCH
qwertyuiopasdfghjklzxcvbnm
QWORD
qword
qwrtyuiopsghjklzxvnm
Radiobuttons
RAII
@@ -1764,6 +1727,7 @@ READWRITE
RECTDESTINATION
RECTL
rectp
rects
recyclebin
redirectedfrom
refactor
@@ -1786,7 +1750,6 @@ REMAPUNSUCCESSFUL
Remotable
REMOTEDISPLAY
REMOTESESSION
removefolder
Removelnk
renamable
RENAMEONCOLLISION
@@ -1800,16 +1763,15 @@ rescap
resgen
resheader
Resizable
resizers
resmimetype
RESOURCEID
resourcemanager
RESTORESIZE
RESTORETOMAXIMIZED
restrictedcapabilities
resultlist
resw
resx
returnvalue
retval
rexit
rfind
@@ -1820,26 +1782,26 @@ rgelt
Rgn
rgs
rhs
Riched
ricardosantos
Richtext
RIGHTSCROLLBAR
riid
riverar
RKey
RMENU
RNumber
roadmap
Roboto
roslyn
royvou
rpc
RRF
rshift
RSHIFT
rshift
Rsp
rst
Rstrtmgr
RTB
RText
rtf
Rtl
RTLREADING
@@ -1853,8 +1815,7 @@ RUNLEVEL
runsettings
runtimeclass
runtimeconfig
Runtimes
Rutkas
runtimes
rv
rvalue
rvm
@@ -1869,7 +1830,6 @@ SAMESHORTCUTPREVIOUSLYMAPPED
SAVEFAILED
scancode
scanled
Schd
Scn
SCOPEID
screenshot
@@ -1881,16 +1841,12 @@ sdk
SDKDDK
searchbox
SEARCHFOR
searchqueryhelper
SEARCHREPLACEGROUP
searchterm
Searcn
Secur
securityoverview
Segoe
Sekan
SENDCHANGE
sendinput
sendvirtualinput
serializationexception
serializer
@@ -1902,7 +1858,6 @@ SETFOCUS
SETFOREGROUND
SETICON
setlocal
setnt
SETRANGE
Setrect
SETREDRAW
@@ -1911,10 +1866,8 @@ SETTEXT
SETTINGCHANGE
settingsheader
settingshotkeycontrol
settingsui
settingsv
Setttings
setwindowpos
SETWORKAREA
sfgao
SFGAOF
@@ -1947,18 +1900,15 @@ SHORTCUTSTARTWITHMODIFIER
Shortcuttool
shortdate
SHORTPATH
showcolorname
SHOWDEFAULT
SHOWELEVATIONPROMPT
SHOWMAXIMIZED
SHOWMINIMIZED
SHOWNA
SHOWNORMAL
showwindow
SHOWWINDOW
shtypes
sid
sideload
sideloading
sidepanel
siex
SIGABRT
@@ -1989,8 +1939,7 @@ sln
SLogo
SMALLICON
SMTO
snd
snickler
Snd
somil
SORTDOWN
SOURCECLIENTAREAONLY
@@ -2001,7 +1950,6 @@ spdth
spec'ing
spesi
spinbuttonref
splitee
splitwstring
spoprod
spsi
@@ -2020,6 +1968,7 @@ srre
srw
srwlock
ssf
ssh
sstream
STACKFRAME
stackoverflow
@@ -2034,7 +1983,7 @@ STARTUPINFOEX
STARTUPINFOW
startupscreen
STATEIMAGEMASK
statflag
STATFLAG
STATICEDGE
STATSTG
stdafx
@@ -2064,6 +2013,7 @@ stringify
STRINGIZE
stringtable
stringval
Strmiids
strsafe
strutil
sttngs
@@ -2101,15 +2051,13 @@ SYSCOLORCHANGE
SYSCOMMAND
SYSDEADCHAR
SYSICONINDEX
sysinfo
SYSKEY
syskeydown
syskeyup
SYSKEYUP
syslog
SYSMENU
systemd
SYSTEMTIME
systray
sz
tadele
Tahoma
@@ -2137,7 +2085,6 @@ tcscpy
TCustom
td
TDevice
technet
Telemarketer
Templated
templatenamespace
@@ -2152,7 +2099,6 @@ textblock
textbox
TEXTINCLUDE
textref
tf
TFVC
tga
thead
@@ -2166,6 +2112,7 @@ Timeline
timeunion
timeutil
titlecase
TLayout
tlb
tlbimp
tmp
@@ -2178,7 +2125,6 @@ toggleref
toggleright
toggleswitch
toolbar
Toolchain
toolset
tooltip
toolwindow
@@ -2191,7 +2137,6 @@ towupper
tracelogging
traies
TRAYMOUSEMESSAGE
TRCA
TRK
trl
truetype
@@ -2217,10 +2162,8 @@ Tz
UAC
UAL
uap
ubuntu
udit
UIA
uiauto
Uid
uifabric
uifabricicons
@@ -2228,6 +2171,7 @@ uint
uintptr
UIPI
UIs
UITo
ul
ULARGE
ULLONG
@@ -2239,6 +2183,7 @@ uncompilable
UNCPRIORITY
undef
UNDNAME
unescape
Ungroup
unicode
Unindent
@@ -2266,7 +2211,6 @@ unremapped
unsubscribe
Unsync
Untag
upd
Updatelayout
UPDOWNKEYDROPSLIST
UPGRADINGPRODUCTCODE
@@ -2309,39 +2253,41 @@ VDId
vec
VERBSONLY
VERBW
verifybothfolderfilesequal
verrsrc
VERSIONINFO
Versioning
VFT
vh
vid
VIDEOINFOHEADER
viewbox
viewkind
viewmodel
virtualization
visiblecolorformats
Visibletrue
Visio
visualbrush
visualstudio
vk
VKey
VKTAB
vm
vmax
vmin
Voicemail
VOS
VREDRAW
VSC
VSCBD
vscode
VSCROLL
vse
vsonline
vstemplate
VSTHRD
VSTS
VSTT
VTABLE
Vtbl
vw
Vx
watsonportal
wav
@@ -2360,11 +2306,10 @@ wcslen
wcsncmp
wcsnicmp
wdp
wds
wdupenv
weakme
webapp
Webcam
webcam
webclient
webkit
webp
@@ -2384,7 +2329,6 @@ wikipedia
wil
wildcards
winapi
winauto
wincolor
windef
windevbuildagents
@@ -2409,7 +2353,6 @@ Winhook
winkey
WINL
winmd
winmsg
winnt
winres
winrt
@@ -2418,9 +2361,8 @@ winsdkver
winspool
winstore
winui
winuser
winver
winxamlmanager
wistd
withinrafael
Withscript
wix
@@ -2445,6 +2387,7 @@ wofstream
wordpad
workaround
workflow
workspaces
wostream
wox
wparam
@@ -2454,9 +2397,9 @@ wprintf
wprp
wregex
WResize
wrl
wsf
wsh
wsl
wss
wstr
wstring
@@ -2464,7 +2407,6 @@ wstringstream
wsz
WTS
WTSAT
wtypes
wu
Wwan
www
@@ -2473,8 +2415,8 @@ xa
xamarin
xaml
XAngle
XAttribute
xbf
XBind
XBUTTON
XBUTTONDBLCLK
XBUTTONDOWN
@@ -2486,7 +2428,6 @@ XElement
XFile
XIncrement
XInstance
XJson
xlink
XLoc
xml
@@ -2501,17 +2442,18 @@ XStr
XToolset
xunit
XY
yaml
Yaml
YAngle
YDiff
YESNO
YIncrement
yinwang
YJson
YLogo
yml
YOffset
YStr
YUY
YUYV
yy
Zc
ZEROINIT

View File

@@ -1,11 +1,25 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
https?://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]*
# GitHub SHAs
\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b
://github\.(?:com|blog)/[^\w")]+
(?:\[[0-9a-f]+\]\(https:/|)/github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b
# githubusercontent
://githubusercontent\.com/[^\w")]+
# gist github
/gist\.github\.com/[^/]+/[0-9a-f]+
# msdn
\b(?:download\.visualstudio|docs|msdn)\.microsoft\.com/[-_a-zA-Z0-9()=./]*
data:[a-zA-Z=;,/0-9+-]+
0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
(?:0[Xx]|U\+|#)[a-f0-9A-FGgRr]{2,}[Uu]?[Ll]{0,2}\b
[{"][0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}"]
\b([A-Za-z])\1{3,}\b
# uuid:
[-<({"'>][0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[<'"})>]
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
(?:L"[abAB]+", ){3}L"[abAB]+"
"Lorem[^"]+?\."
TestCase\("[^"]+"
@@ -44,4 +58,6 @@ TestCase\("[^"]+"
# marker for ignoring a comment to the end of the line
^.*/\* #no-spell-check-line \*/.*$
// #no-spell-check.*$
// #no-spell-check.*$
http://tes/

View File

@@ -1,20 +1,24 @@
name: Spell checking
on:
pull_request_target:
push:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '15 * * * *'
jobs:
build:
name: Spell checking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.0.0
- name: checkout-merge
if: "contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: checkout
if: "!contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
with:
fetch-depth: 5
- uses: check-spelling/check-spelling@0.0.16-alpha
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
bucket: .github/actions
project: spell-check
- uses: check-spelling/check-spelling@0.0.17-alpha
with:
config: .github/actions/spell-check

View File

@@ -7,4 +7,3 @@ set SolutionDir=%cd%
popd
SET IsPipeline=1
call msbuild ../tools/BugReportTool/BugReportTool.sln /p:Configuration=Release /p:Platform=x64 /p:CIBuild=true || exit /b 1

View File

@@ -55,6 +55,25 @@ steps:
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for WebcamReportTool.sln
inputs:
command: restore
feedsToUse: config
configPath: NuGet.config
restoreSolution: tools\WebcamReportTool\WebcamReportTool.sln
restoreDirectory: '$(Build.SourcesDirectory)\tools\WebcamReportTool\packages'
- task: VSBuild@1
displayName: 'Build WebcamReportTool.sln'
inputs:
solution: '**\WebcamReportTool.sln'
vsVersion: 16.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for PowerToysSetup.sln
inputs:
@@ -93,40 +112,52 @@ steps:
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
# directly not doing WinAppDriver testing
- task: VSTest@2
displayName: 'Run .Net Core Tests 1'
displayName: 'MS Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\Microsoft.Plugin.Folder.UnitTest.dll
**\UnitTests-SvgThumbnailProvider.dll
**\Microsoft.PowerToys.Settings.UI.UnitTests.dll
**\UnitTests-SvgPreviewHandler.dll
**\UnitTests-PreviewHandlerCommon.dll
**\PreviewPaneUnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.dll
**\UnitTest-ColorPickerUI.dll
**\Microsoft.Interop.Tests.dll
!**\obj\**
- task: VSTest@2
displayName: 'XUnit Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\ImageResizer.Test.dll
!**\obj\**
- task: VSTest@2
displayName: 'NUnit Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\Microsoft.Plugin.Folder.UnitTests.dll
**\Microsoft.Plugin.Program.UnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest.dll
**\Microsoft.Plugin.Uri.UnitTests.dll
**\Wox.Test.dll
**\Microsoft.PowerToys.Settings.UI.UnitTests.dll
**\UnitTest-ColorPickerUI.dll
**\Microsoft.Interop.Tests.dll
!**\obj\**
- task: VSTest@2
displayName: 'Run .Net Core Tests 2'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\PreviewPaneUnitTests.dll #this is the markdown tests
**\UnitTests-PreviewHandlerCommon.dll
**\UnitTests-SvgPreviewHandler.dll
**\ImageResizer.Test.dll
**\powerpreviewTest.dll
**\Microsoft.PowerToys.Run.Plugin.System.UnitTests.dll
!**\obj\**
# Native dlls
- task: VSTest@2
displayName: 'Run Native Tests'
displayName: 'Native Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
@@ -135,4 +166,5 @@ steps:
**\KeyboardManagerTest.dll
**\UnitTests-CommonLib.dll
**\PowerRenameUnitTests.dll
**\powerpreviewTest.dll
!**\obj\**

View File

@@ -20,10 +20,7 @@ signing_options:
package_sources:
nuget:
feeds:
'Nuget': 'https://api.nuget.org/v3/index.json'
'Toolset': 'https://msazure.pkgs.visualstudio.com/_packaging/Toolset/nuget/v3/index.json'
'PipelineBuildSupplement': 'https://msazure.pkgs.visualstudio.com/_packaging/PipelineBuildSupplement/nuget/v3/index.json'
'PowerToysCDPX_Feed': 'https://github-private.pkgs.visualstudio.com/microsoft/_packaging/PowerToysCDPX_Feed/nuget/v3/index.json'
restore:
commands:
- !!defaultcommand
@@ -83,6 +80,7 @@ build:
- 'modules\FancyZones\FancyZonesEditor.dll'
- 'modules\FancyZones\ManagedCommon.dll'
- 'modules\FancyZones\Telemetry.dll'
- 'modules\FancyZones\Microsoft.PowerToys.Common.UI.dll'
- 'modules\FileExplorerPreview\MarkdownPreviewHandler.dll'
- 'modules\FileExplorerPreview\MarkdownPreviewHandler.comhost.dll'
- 'modules\FileExplorerPreview\powerpreview.dll'
@@ -133,6 +131,7 @@ build:
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Plugin.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Telemetry.dll'
- 'modules\launcher\Plugins\VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll'
- 'modules\launcher\Plugins\Service\Microsoft.PowerToys.Run.Plugin.Service.dll'
- 'modules\launcher\Plugins\System\Microsoft.PowerToys.Run.Plugin.System.dll'
- 'modules\launcher\PowerLauncher.dll'
@@ -152,13 +151,13 @@ build:
- 'PowerToys.exe'
- 'PowerToysInterop.dll'
- 'PowerToysSettings.exe'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.exe'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.dll'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.exe'
- 'SettingsUIRunner\PowerToysInterop.dll'
- 'SettingsUIRunner\Telemetry.dll'
- 'SettingsUIRunner\ManagedCommon.dll'
- 'Settings\Microsoft.PowerToys.Settings.UI.exe'
- 'Settings\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'Settings\PowerToys.Settings.dll'
- 'Settings\PowerToys.Settings.exe'
- 'Settings\PowerToysInterop.dll'
- 'Settings\Telemetry.dll'
- 'Settings\ManagedCommon.dll'
signing_options:
sign_inline: true # This does signing a soon as this command completes
- !!buildcommand

15
.vsconfig Normal file
View File

@@ -0,0 +1,15 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.CoreEditor",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Component.Windows10SDK.17134",
"Microsoft.VisualStudio.Component.Windows10SDK.18362",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre"
]
}

View File

@@ -21,7 +21,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "runner", "src\runner\runner
{A7D5099E-F0FD-4BF3-8522-5A682759F915} = {A7D5099E-F0FD-4BF3-8522-5A682759F915}
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B} = {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}
{B25AC7A5-FB9F-4789-B392-D5C85E948670} = {B25AC7A5-FB9F-4789-B392-D5C85E948670}
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F} = {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}
{AF2349B8-E5B6-4004-9502-687C1C7730B1} = {AF2349B8-E5B6-4004-9502-687C1C7730B1}
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA} = {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}
{17DA04DF-E393-4397-9CF0-84DABE11032E} = {17DA04DF-E393-4397-9CF0-84DABE11032E}
@@ -129,6 +128,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{4AFC
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Calculator", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.csproj", "{59BD9891-3837-438A-958D-ADC7F91F6F7E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Community.PowerToys.Run.Plugin.VSCodeWorkspaces", "src\modules\launcher\Plugins\Community.PowerToys.Run.Plugin.VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj", "{4D971245-7A70-41D5-BAA0-DDB5684CAF51}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.WindowWalker", "src\modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Microsoft.Plugin.WindowWalker.csproj", "{74F1B9ED-F59C-4FE7-B473-7B453E30837E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Program", "src\modules\launcher\Plugins\Microsoft.Plugin.Program\Microsoft.Plugin.Program.csproj", "{FDB3555B-58EF-4AE6-B5F1-904719637AB4}"
@@ -188,8 +189,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreviewTest", "src\mod
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "settings-ui", "settings-ui", "{C3081D9A-1586-441A-B5F4-ED815B3719C1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.Runner", "src\settings-ui\Microsoft.PowerToys.Settings.UI.Runner\Microsoft.PowerToys.Settings.UI.Runner.csproj", "{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UI", "src\settings-ui\Microsoft.PowerToys.Settings.UI\Microsoft.PowerToys.Settings.UI.csproj", "{A7D5099E-F0FD-4BF3-8522-5A682759F915}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4981CCD1-4CD9-4A49-B240-00AA46493FF8}"
@@ -309,6 +308,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plu
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Registry.UnitTests", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry.UnitTest\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.csproj", "{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerToys.Settings", "src\settings-ui\PowerToys.Settings\PowerToys.Settings.csproj", "{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -419,6 +420,10 @@ Global
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|x64.Build.0 = Debug|x64
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.ActiveCfg = Release|x64
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.Build.0 = Release|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Debug|x64.ActiveCfg = Debug|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Debug|x64.Build.0 = Debug|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Release|x64.ActiveCfg = Release|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Release|x64.Build.0 = Release|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.ActiveCfg = Debug|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.Build.0 = Debug|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|x64.ActiveCfg = Release|x64
@@ -475,10 +480,6 @@ Global
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|x64.Build.0 = Debug|x64
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.ActiveCfg = Release|x64
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.Build.0 = Release|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.ActiveCfg = Debug|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.Build.0 = Debug|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.ActiveCfg = Release|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.Build.0 = Release|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.ActiveCfg = Debug|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.Build.0 = Debug|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|x64.ActiveCfg = Release|x64
@@ -631,6 +632,10 @@ Global
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Debug|x64.Build.0 = Debug|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Release|x64.ActiveCfg = Release|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Release|x64.Build.0 = Release|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Debug|x64.ActiveCfg = Debug|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Debug|x64.Build.0 = Debug|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Release|x64.ActiveCfg = Release|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -666,6 +671,7 @@ Global
{FF742965-9A80-41A5-B042-D6C7D3A21708} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{4AFC9975-2456-4C70-94A4-84073C1CED93} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{59BD9891-3837-438A-958D-ADC7F91F6F7E} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{4D971245-7A70-41D5-BAA0-DDB5684CAF51} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{74F1B9ED-F59C-4FE7-B473-7B453E30837E} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{FDB3555B-58EF-4AE6-B5F1-904719637AB4} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
@@ -681,7 +687,6 @@ Global
{748417CA-F17E-487F-9411-CAFB6D3F4877} = {2F305555-C296-497E-AC20-5FA1B237996A}
{217DF501-135C-4E38-BFC8-99D4821032EA} = {2F305555-C296-497E-AC20-5FA1B237996A}
{47310AB4-9034-4BD1-8D8B-E88AD21A171B} = {2F305555-C296-497E-AC20-5FA1B237996A}
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{A7D5099E-F0FD-4BF3-8522-5A682759F915} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{F055103B-F80B-4D0C-BF48-057C55620033} = {5A7818A8-109C-4E1C-850D-1A654E234B0E}
@@ -725,6 +730,7 @@ Global
{C3A17DCA-217B-462C-BB0C-BE086AF80081} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{4BABF3FE-3451-42FD-873F-3C332E18DCEF} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}

View File

@@ -1,8 +1,8 @@
# Welcome to the Microsoft PowerToys repo
# Microsoft PowerToys
<img src="./doc/images/overview/PT%20hero%20image.png"/>
[Downloads & Release notes][github-release-link] | [Contributing to PowerToys](#contributing) | [What's Happening](#whats-happening) | [Roadmap](#powertoys-roadmap) | [Known issues](#known-issues)
[Downloads & Release notes][github-release-link] | [Contributing to PowerToys](#contributing) | [What's Happening](#whats-happening) | [Roadmap](#powertoys-roadmap)
## Build status
@@ -14,8 +14,8 @@
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows 10 experience for greater productivity. For more info on [PowerToys overviews and guides][usingPowerToys-docs-link], or any other tools and resources for [Windows development environments](https://docs.microsoft.com/windows/dev-environment/overview), head over to [docs.microsoft.com][usingPowerToys-docs-link]!
| | Current utilities: | |
|--------------|--------|--------|
| | Current utilities: | |
|--------------|--------------------|--------------|
| [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) | [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) | [File Explorer Add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) |
| [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) | [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) | [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) |
| [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) | [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) | [Video Conference Mute (Experimental)](https://aka.ms/PowerToysOverview_VideoConference) |
@@ -25,19 +25,21 @@ Microsoft PowerToys is a set of utilities for power users to tune and streamline
### Requirements
- Windows 10 v1903 (build 18362) or better preferred, Windows 10 v1803 (build 17134) minimum.
- Have [.NET Core 3.1 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.10-windows-x64-installer). The installer should handle this but we want to directly make people aware.
- Have [.NET Core 3.1 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.11-windows-x64-installer). The installer should handle this but we want to directly make people aware.
### Via GitHub with EXE [Recommended]
#### Stable version
Install from the [Microsoft PowerToys GitHub releases page][github-release-link]. Click on `Assets` to show the files available in the release and then click on `PowerToysSetup-0.29.3-x64.exe` to download the PowerToys installer.
Install from the [Microsoft PowerToys GitHub releases page][github-release-link]. Click on `Assets` to show the files available in the release and then click on `PowerToysSetup-0.33.1-x64.exe` to download the PowerToys installer.
This is our preferred method.
#### Experimental version
To install the Video Conference mute, please use the [v0.28 pre-release experimental version of PowerToys][github-prerelease-link] to try out this version. It includes all improvements from v0.27 in addition to the Video conference utility. Click on `Assets` to show the files available in the release and then download the .exe installer.
We hope to have an updated version in February 2021 with the new DirectShow driver.
### Via WinGet (Preview)
Download PowerToys from [WinGet](https://github.com/microsoft/winget-cli/releases). To install PowerToys, run the following command from the command line / PowerShell:
@@ -73,65 +75,65 @@ 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.
### 0.29 - December 2020 Update
### 0.33 - February 2021 Update
Our goals for [v0.29 release cycle][github-release-link] were to focus on adding on end-user experience, stability, accessibility, localization and quality of life improvements for both the development team and our end users. Due to the short dev cycle due to the holidays this month, larger work items will show up next release such as FZ editor improvements and three new plug-ins for PowerToys Run (service, regkey, system commands).
Our goals for [v0.33 release cycle][github-release-link] was to add in some critical new functionality into the new user experience as well as a plug-in manager for PowerToys Run. In addition, we feel we are near ready to add in Video Conference mute into the stable release pending feedback from the pending 0.34 experimental release. The 0.34 experimental release will happen week of March 8th toward the end of the week pending testing.
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on for the near future. We fixed a lot of localization issues from our initial release but we may not still be perfect. If you find an issue, please file a [localization bug][loc-bug].
#### Highlights from v0.29
#### Highlights from v0.33 Stable/0.34 Experimental
**General**
- Bug report tool and improved logging.
- Various localization improvements.
- CodeQL added. Triggered via a cron timer twice a day.
- "How to use" docs moved to https://docs.microsoft.com/windows/powertoys/
- This will allow the community to do direct PRs against those documents
**ARM64 Progress**
- .NET Core upgrade for code bases the PowerToys team controls is complete. We still have two external dependencies that are .NET Framework that need to be updated.
**Color Picker**
- General bug fixes
- Added ability to provide the name of the color at parity with Office and WinUI Color Picker.
- Updated overview links to be language agnostic to the docs site.
- 'First time load' experience. The hope is a quick, light way to learn about basic functionality. We have some more work to do and want to also use the same framework for teaching about updates as well.
- Localization corrections
**FancyZones**
- Allows to use Windows Snap on desktops that don't have a layout applied and for apps that are in the excluded list.
- Bug fixes
- Adjusted editor UX based on feedback. Thanks [@niels9001](https://github.com/niels9001)!
- New options to change zone activation algorithm.
**File Explorer**
- Improved how SVG images are previewed in the preview pane, thanks[@Drakula44](https://github.com/Drakula44)!
- [@Aaron-Junker](Aaron-Junker) has created a proof of concept for using [Monaco editor](https://github.com/microsoft/monaco-editor) for previewing dev files. This will enable over 125+ file types.
**PowerToys Run**
- Improved performance
- PT Run now supports accented characters.
- Plugin Manager now is in settings. You can directly turn on / off, include items in general search, and change the action key! Thanks [@htcfreek](https://github.com/htcfreek) for the great feedback!
- Improved support for additional window managers by abstracting out shell process calls. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- Fix for PT Run registering the hotkey on non-supported OS versions.
- `~` will now act as the user home directory in Folder plugin. Thanks [@davidegiacometti](https://github.com/davidegiacometti)
- Service plugin has adjusted status messages
**Installer**
- Option to extract the MSI from the .exe for enterprise scenarios and more options to do unattended installations.
- Removed toast notifications during installation.
**Video Conference Mute (Experimental)**
- Adjust video muting to leverage DirectShow.
- Goal is to have 0.34 experimental release week of March 8th.
**Settings**
- When restarting as admin, the settings now will reopen. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
**ARM64 Progress**
- Investigation on how we'll accomplish Settings with the XAML Island and WPF app.
#### Community contributions
We'd like to directly mention (in alphabetical order) for their continued community support this month and helping directly make PowerToys a better piece of software.
[@Aaron-Junker](https://github.com/Aaron-Junker),
[@benjamhooper](https://github.com/benjamhooper),
[@davidegiacometti](https://github.com/davidegiacometti),
[@eriawan](https://github.com/eriawan),
[@htcfreek](https://github.com/htcfreek),
[@jay-o-way](https://github.com/jay-o-way),
[@jhutchings1](https://github.com/jhutchings1),
[@jsoref](https://github.com/jsoref),
[@martinchrzan](https://github.com/martinchrzan),
[@niels9001](https://github.com/niels9001),
[@riverar](https://github.com/riverar),
[@snickler](https://github.com/snickler),
[@Drakula44](https://github.com/Drakula44),
[@htcfreek](https://github.com/htcfreek),
[@Jay-o-Way](https://github.com/Jay-o-Way),
[@niels9001](https://github.com/niels9001),
and
[@TobiasSekan](https://github.com/TobiasSekan)
[@notDevagya](https://github.com/notDevagya)
#### What is being planned for v0.31 - January 2021
#### What is being planned for v0.35 - March 2021
For [v0.31][github-next-release-work], we are proactively working on:
For [v0.35][github-next-release-work], we are planning to work on:
- Stability
- ARM64 work
- Video conference mute investigation toward a DirectShow filter versus a driver
- OOBE work
- Stability and bug fixes
- FZ Editor hotkey layout swap support
- Integrating VCM in main release
- Start process for removal support for old settings system and migrating our minimum OS version to Windows 10 1903.
## PowerToys Community
@@ -156,5 +158,5 @@ The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has
[usingPowerToys-docs-link]: https://docs.microsoft.com/windows/powertoys/
<!-- items that need to be updated release to release -->
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F16
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F18
[github-prerelease-link]: https://github.com/microsoft/PowerToys/releases/tag/v0.28.0

View File

@@ -32,4 +32,7 @@ Each plugin implements the `IPlugin` interface which comprises of the `Init()` a
### Score
- The user query is executed against each of the plugins and the result list view is updated with results from each of the plugins.
- The ordering of the results is based on the `Score` of each Result.
- Each plugin assigns a score to a result based on it's relevance. The results with higher scores are displayed higher in the list view and vice versa.
- Each plugin assigns a score to a result based on it's relevance. The results with higher scores are displayed higher in the list view and vice versa.
## Plugin settings
Plugin settings that are editable from the settings are stored in `PowerToys Run\settings.json`. In the very first run, those settings are populated from plugin' `plugin.json` file. Unlike Wox we do not support multiple action keywords. Instead, we have `ActionKeyword` and `IsGlobal` options.

View File

@@ -64,28 +64,7 @@ Various tools used by PowerToys. Includes the Visual Studio 2019 project templat
1. Windows 10 April 2018 Update (version 1803) or newer
2. Visual Studio Community/Professional/Enterprise 2019
3. Run the command below in cmd/terminal to install all the workloads and components for VS.
```shell
cd "%ProgramFiles(x86)%\Microsoft Visual Studio\2019"
SET targetFolder="\"
IF EXIST Preview\NUL (SET targetFolder=Preview)
IF EXIST Enterprise\NUL (SET targetFolder=Enterprise)
IF EXIST Professional\NUL (SET targetFolder=Professional)
IF EXIST Community\NUL (SET targetFolder=Community)
ECHO %targetFolder%
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" ^
modify --installpath "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\%targetFolder%" ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Microsoft.VisualStudio.Workload.Universal ^
--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ^
--add Microsoft.VisualStudio.ComponentGroup.UWP.VC ^
--add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre ^
--add Microsoft.VisualStudio.Component.VC.ATL.Spectre
```
3. Once you've cloned and started the `PowerToys.sln`, in the solution explorer, if you see a dialog that says `install extra components`, click `install`
### Compile source code
@@ -101,25 +80,37 @@ Our installer is two parts, an EXE and an MSI. The EXE (Bootstrapper) contains
The installer can only be compiled in `Release` mode, step 1 and 2 must be done before the MSI will be able to be compiled.
1. Compile PowerToys.sln. Instructions are listed above.
2. Compile Bug reporting tool. Path from root: `tools\BugReportTool\BugReportTool.sln` (details listed below)
3. Compile PowerToysSetup.sln Path from root: `installer\PowerToysSetup.sln` (details listed below)
1. Compile `PowerToys.sln`. Instructions are listed above.
2. Compile `BugReportTool.sln` tool. Path from root: `tools\BugReportTool\BugReportTool.sln` (details listed below)
3. Compile `PowerToysSetup.sln` Path from root: `installer\PowerToysSetup.sln` (details listed below)
4. Compile `PowerToysBootstrapper.sln` Path from root: `installer\PowerToysBootstrapper\PowerToysBootstrapper.sln` (details listed below)
### Prerequisites for building the MSI installer
1. Build `tools\BugReportTool\BugReportTool.sln`: in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`, from the `Build` menu choose `Build Solution`.
2. Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
3. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
1. Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
2. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
### Locally compiling the Bug reporting tool
1. Open `tools\BugReportTool\BugReportTool.sln`
1. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
2. From the `Build` menu, choose `Build Solution`.
### Locally compiling the .MSI installer
- Open `installer\PowerToysSetup.sln`: in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`, from the `Build` menu choose `Build Solution`.
- The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
1. Open `installer\PowerToysSetup.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu choose `Build Solution`.
The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
### Locally compiling the .EXE Bootstrapper installer
- Open `installer\PowerToysBootstrapper\PowerToysBootstrapper.sln`: in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`, from the `Build` menu choose `Build Solution`.
- The `PowerToysSetup-0.0.1-x64.exe` binary is created in the `installer\PowerToysBootstrapper\x64\Release\` folder.
1. Open `installer\PowerToysBootstrapper\PowerToysBootstrapper.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu choose `Build Solution`.
The `PowerToysSetup-0.0.1-x64.exe` binary is created in the `installer\PowerToysBootstrapper\x64\Release\` folder.
#### Supported arguments for the .EXE Bootstrapper installer

View File

@@ -1,7 +1,6 @@
#### [`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://docs.microsoft.com/en-us/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).
#### [`general_settings.cpp`](./general_settings.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).

View File

@@ -11,7 +11,7 @@ The Settings.UI project contains the xaml files for each of the UI components. I
#### [Viewmodels:](/src/core/Microsoft.PowerToys.Settings.UI.Library)
The Settings.UI.Library project contains the data that is to be rendered by the UI components.
#### [Settings Runner:](/src/core/Microsoft.PowerToys.Settings.UI.Runner)
#### [Settings Runner:](/src/core/PowerToys.Settings)
The function of the settings runner project is to communicate all changes that the user makes in the user interface, to the runner so that it can be dispatched and reflected in all the modules.
[MVVM]: https://docs.microsoft.com/en-us/windows/uwp/data-binding/data-binding-and-mvvm

View File

@@ -4,7 +4,7 @@ The Settings v2 process uses two way IPC to communicate with the runner process.
## Initialization
- On the settings' side, the two way IPC delegates are contained with the [`ShellPage.xaml.cs`](/src/core/Microsoft.PowerToys.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/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml.cs) file in the `Settings.Runner` project.
- These delegates are initialized within the [`Mainwindow.xaml.cs`](/src/core/PowerToys.Settings/MainWindow.xaml.cs) file in the `Settings.Runner` project.
## Types of IPC delegates

View File

@@ -1,8 +1,8 @@
# UI Architecture
The UI code is distributed between two projects: [`Microsoft.PowerToys.Settings.UI.Runner`](/src/core/Microsoft.PowerToys.Settings.UI.Runner) and [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library). [`Microsoft.PowerToys.Settings.UI.Runner`](/src/core/Microsoft.PowerToys.Settings.UI.Runner) is a WPF .net core application. It contains the parent display window and corresponding code is present in [`MainWindow.xaml.`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library) is UWP applications and contains views for base navigation and modules. Fig 1 provides a description of the UI controls hierarchy and each of the controls have been summarized below :
- [`MainWindow.xaml`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) is the parent WPF control.
- `WindowsXamlHost` control is used to host UWP control to [`MainWindow.xaml`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) parent control.
The UI code is distributed between two projects: [`PowerToys.Settings`](/src/core/PowerToys.Settings) and [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library). [`PowerToys.Settings`](/src/core/PowerToys.Settings) is a WPF .net core application. It contains the parent display window and corresponding code is present in [`MainWindow.xaml.`](/src/core/PowerToys.Settings/MainWindow.xaml) [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library) is UWP applications and contains views for base navigation and modules. Fig 1 provides a description of the UI controls hierarchy and each of the controls have been summarized below :
- [`MainWindow.xaml`](/src/core/PowerToys.Settings/MainWindow.xaml) is the parent WPF control.
- `WindowsXamlHost` control is used to host UWP control to [`MainWindow.xaml`](/src/core/PowerToys.Settings/MainWindow.xaml) parent control.
- [`ShellPage.xaml`](/src/core/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml) is a UWP control, consisting of a side navigation panel with an icon for each module. Clicking on a module icon loads the corresponding `setting.json` file and displays the data in the UI.
![Settings UI architecture](/doc/images/settingsv2/ui-architecture.png)

View File

@@ -6,7 +6,7 @@
## Formatting
- We use [`.clang-format`](https://github.com/microsoft/PowerToys/blob/master/.clang-format) style file to enable automatic code formatting. You can [easily format source files from Visual Studio](https://devblogs.microsoft.com/cppblog/clangformat-support-in-visual-studio-2017-15-7-preview-1/). For example, `CTRL+K CTRL+D` formats the current document.
- We use [`.clang-format`](https://github.com/microsoft/PowerToys/blob/master/src/.clang-format) style file to enable automatic code formatting. You can [easily format source files from Visual Studio](https://devblogs.microsoft.com/cppblog/clangformat-support-in-visual-studio-2017-15-7-preview-1/). For example, `CTRL+K CTRL+D` formats the current document.
- If you prefer another text editor or have ClangFormat disabled in Visual Studio, you could invoke [`format_sources`](https://github.com/microsoft/PowerToys/blob/master/src/codeAnalysis/format_sources.ps1) powershell script from command line. It gets a list of all currently modified files from `git` and invokes clang-format on them.
Please note that you should also have `clang-format.exe` in `%PATH%` for it to work. The script can infer the path of `clang-format.exe` version which is shipped with Visual Studio at `%VCINSTALLDIR%\Tools\Llvm\bin\`, if you launch it from the *Native Tools Command Prompt for VS*.
- CI doesn't enforce code formatting yet, since we're gradually applying code formatting to the codebase, but please adhere to our formatting style for any new code.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

View File

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 514 B

View File

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 637 B

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 728 B

After

Width:  |  Height:  |  Size: 728 B

View File

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

View File

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 812 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -10,21 +10,25 @@ std::optional<RcResource> RcResource::create(int resource_id, const std::wstring
{
return std::nullopt;
}
const HGLOBAL memHandle = LoadResource(nullptr, resHandle);
if (!memHandle)
{
return std::nullopt;
}
const size_t resSize = SizeofResource(nullptr, resHandle);
if (!resSize)
{
return std::nullopt;
}
auto res = static_cast<const std::byte*>(LockResource(memHandle));
if (!res)
{
return std::nullopt;
}
return RcResource{ res, resSize };
}
@@ -35,6 +39,7 @@ bool RcResource::saveAsFile(const std::filesystem::path destination)
{
return false;
}
installerFile.write(reinterpret_cast<const char*>(_memory), _size);
return true;
}

View File

@@ -59,7 +59,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BOOTSTRAPPER_PROGRESS_TITLE" xml:space="preserve">
<value>PowerToys installer</value>
<value>PowerToys Installer</value>
</data>
<data name="DOTNET_CORE_DOWNLOAD_FAILURE" xml:space="preserve">
<value>Couldn't download .NET Core Desktop Runtime 3.1, please install it manually.</value>
@@ -128,19 +128,19 @@
<value>PowerToys: uninstall previous version?</value>
</data>
<data name="INSTALLER_EXTRACT_ERROR" xml:space="preserve">
<value>Couldn't extract MSI installer!</value>
<value>Couldn't extract MSI installer.</value>
</data>
<data name="EXTRACTING_INSTALLER" xml:space="preserve">
<value>Extracting PowerToys MSI...</value>
</data>
<data name="UNINSTALL_PREVIOUS_VERSION_ERROR" xml:space="preserve">
<value>Couldn't uninstall previous PowerToys version!</value>
<value>Couldn't uninstall previous PowerToys version.</value>
</data>
<data name="DOWNLOADING_DOTNET" xml:space="preserve">
<value>Downloading .NET Core Runtime...</value>
<value>Downloading .NET Core...</value>
</data>
<data name="DOTNET_INSTALL_ERROR" xml:space="preserve">
<value>Couldn't install dotnet!</value>
<value>Couldn't install .NET Core.</value>
</data>
<data name="NEW_VERSION_INSTALLATION_ERROR" xml:space="preserve">
<value>Couldn't install new PowerToys version.</value>
@@ -155,4 +155,10 @@
<data name="GITHUB_NEW_VERSION_CHECK_ERROR" xml:space="preserve">
<value>Failed to connect to the server. Check your network connection or retry later.</value>
</data>
<data name="NEWER_VERSION_ERROR" xml:space="preserve">
<value>A newer version is already installed.</value>
</data>
<data name="OLD_WINDOWS_ERROR" xml:space="preserve">
<value>PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.</value>
</data>
</root>

View File

@@ -12,12 +12,14 @@
#include <common/utils/resources.h>
#include <common/utils/window.h>
#include <common/utils/winapi_error.h>
#include <common/SettingsAPI/settings_helpers.h>
#include <runner/action_runner_utils.h>
#include "progressbar_window.h"
auto Strings = create_notifications_strings();
static bool g_Silent = false;
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
@@ -25,36 +27,36 @@ auto Strings = create_notifications_strings();
namespace // Strings in this namespace should not be localized
{
const wchar_t APPLICATION_ID[] = L"PowerToysInstaller";
const wchar_t INSTALLATION_MSGBOX_TITLE[] = L"PowerToys Installation";
const wchar_t TOAST_TAG[] = L"PowerToysInstallerProgress";
const char LOG_FILENAME[] = "powertoys-bootstrapper-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
const char EXE_LOG_FILENAME[] = "powertoys-bootstrapper-exe-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
const char MSI_LOG_FILENAME[] = "powertoys-bootstrapper-msi-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
}
#undef STR
#undef STR_HELPER
namespace fs = std::filesystem;
std::optional<fs::path> extractEmbeddedInstaller(const fs::path extractPath)
std::optional<fs::path> ExtractEmbeddedInstaller(const fs::path extractPath)
{
auto executableRes = RcResource::create(IDR_BIN_MSIINSTALLER, L"BIN");
if (!executableRes)
{
return std::nullopt;
}
auto installerPath = extractPath / L"PowerToysBootstrappedInstaller-" PRODUCT_VERSION_STRING L".msi";
return executableRes->saveAsFile(installerPath) ? std::make_optional(std::move(installerPath)) : std::nullopt;
}
void setup_log(fs::path directory, const spdlog::level::level_enum severity)
void SetupLogger(fs::path directory, const spdlog::level::level_enum severity)
{
std::shared_ptr<spdlog::logger> logger;
auto nullLogger = spdlog::null_logger_mt("null");
try
{
std::shared_ptr<spdlog::logger> logger;
if (severity != spdlog::level::off)
{
logger = spdlog::basic_logger_mt("file", (directory / LOG_FILENAME).wstring());
logger = spdlog::basic_logger_mt("file", (directory / EXE_LOG_FILENAME).wstring());
std::error_code _;
const DWORD msiSev = severity == spdlog::level::debug ? INSTALLLOGMODE_VERBOSE : INSTALLLOGMODE_ERROR;
@@ -63,8 +65,9 @@ void setup_log(fs::path directory, const spdlog::level::level_enum severity)
}
else
{
logger = spdlog::null_logger_mt("null");
logger = nullLogger;
}
logger->set_pattern("[%L][%d-%m-%C-%T] %v");
logger->set_level(severity);
spdlog::set_default_logger(std::move(logger));
@@ -73,29 +76,62 @@ void setup_log(fs::path directory, const spdlog::level::level_enum severity)
}
catch (...)
{
spdlog::set_default_logger(nullLogger);
}
}
void show_error_box(const wchar_t* message, const wchar_t* title)
void CleanupSettingsFromOlderVersions()
{
MessageBoxW(nullptr,
message,
title,
MB_OK | MB_ICONERROR);
try
{
const auto logSettingsFile = fs::path{ PTSettingsHelper::get_root_save_folder_location() } / PTSettingsHelper::log_settings_filename;
if (fs::is_regular_file(logSettingsFile))
{
fs::remove(logSettingsFile);
spdlog::info("Removed old log settings file");
}
else
{
spdlog::info("Old log settings file wasn't found");
}
}
catch(...)
{
spdlog::error("Failed to cleanup old log settings");
}
}
int bootstrapper(HINSTANCE hInstance)
void ShowMessageBoxError(const wchar_t* message)
{
if (!g_Silent)
{
MessageBoxW(nullptr,
message,
GET_RESOURCE_STRING(IDS_BOOTSTRAPPER_PROGRESS_TITLE).c_str(),
MB_OK | MB_ICONERROR);
}
}
void ShowMessageBoxError(const UINT messageId)
{
ShowMessageBoxError(GET_RESOURCE_STRING(messageId).c_str());
}
int Bootstrapper(HINSTANCE hInstance)
{
winrt::init_apartment();
char* programFilesDir = nullptr;
size_t size = 0;
std::string defaultInstallDir;
if (!_dupenv_s(&programFilesDir, &size, "PROGRAMFILES"))
{
defaultInstallDir += programFilesDir;
defaultInstallDir += "\\PowerToys";
}
cxxopts::Options options{ "PowerToysBootstrapper" };
// clang-format off
options.add_options()
("h,help", "Show help")
@@ -108,6 +144,7 @@ int bootstrapper(HINSTANCE hInstance)
("install_dir", "Installation directory", cxxopts::value<std::string>()->default_value(defaultInstallDir))
("extract_msi", "Extract MSI to the working directory and exit. Use only if you must access MSI directly.");
// clang-format on
cxxopts::ParseResult cmdArgs;
bool showHelp = false;
try
@@ -128,8 +165,8 @@ int bootstrapper(HINSTANCE hInstance)
return 0;
}
g_Silent = cmdArgs["silent"].as<bool>();
const bool noFullUI = cmdArgs["no_full_ui"].as<bool>();
const bool silent = cmdArgs["silent"].as<bool>();
const bool skipDotnetInstall = cmdArgs["skip_dotnet_install"].as<bool>();
const bool noStartPT = cmdArgs["no_start_pt"].as<bool>();
const auto logLevel = cmdArgs["log_level"].as<std::string>();
@@ -137,8 +174,6 @@ int bootstrapper(HINSTANCE hInstance)
const auto installDirArg = cmdArgs["install_dir"].as<std::string>();
const bool extract_msi_only = cmdArgs["extract_msi"].as<bool>();
spdlog::level::level_enum severity = spdlog::level::off;
std::wstring installFolderProp;
if (!installDirArg.empty())
{
@@ -170,6 +205,7 @@ int bootstrapper(HINSTANCE hInstance)
{
}
spdlog::level::level_enum severity = spdlog::level::off;
if (logLevel == "debug")
{
severity = spdlog::level::debug;
@@ -178,15 +214,26 @@ int bootstrapper(HINSTANCE hInstance)
{
severity = spdlog::level::err;
}
setup_log(logDir, severity);
spdlog::debug("PowerToys Bootstrapper is launched!\nnoFullUI: {}\nsilent: {}\nno_start_pt: {}\nskip_dotnet_install: {}\nlog_level: {}\ninstall_dir: {}\nextract_msi: {}\n", noFullUI, silent, noStartPT, skipDotnetInstall, logLevel, installDirArg, extract_msi_only);
SetupLogger(logDir, severity);
spdlog::debug("PowerToys Bootstrapper is launched\nnoFullUI: {}\nsilent: {}\nno_start_pt: {}\nskip_dotnet_install: {}\nlog_level: {}\ninstall_dir: {}\nextract_msi: {}\n", noFullUI, g_Silent, noStartPT, skipDotnetInstall, logLevel, installDirArg, extract_msi_only);
const VersionHelper myVersion(VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION);
// Do not support installing on Windows < 1903
if (myVersion >= VersionHelper{0, 36, 0} && updating::is_old_windows_version())
{
ShowMessageBoxError(IDS_OLD_WINDOWS_ERROR);
spdlog::error("PowerToys {} requires at least Windows 1903 to run.", myVersion.toString());
return 1;
}
// If a user requested an MSI -> extract it and exit
if (extract_msi_only)
{
if (const auto installerPath = extractEmbeddedInstaller(fs::current_path()))
if (const auto installerPath = ExtractEmbeddedInstaller(fs::current_path()))
{
spdlog::info("MSI installer was extracted to {}", installerPath->string());
spdlog::debug("MSI installer extracted to {}", installerPath->string());
}
else
{
@@ -195,12 +242,22 @@ int bootstrapper(HINSTANCE hInstance)
return 0;
}
// Check if there's a newer version installed
const auto installedVersion = updating::get_installed_powertoys_version();
if (installedVersion && *installedVersion >= myVersion)
{
spdlog::error(L"Detected a newer version {} vs {}", (*installedVersion).toWstring(), myVersion.toWstring());
ShowMessageBoxError(IDS_NEWER_VERSION_ERROR);
return 0;
}
// Setup MSI UI visibility and restart as elevated if required
if (!noFullUI)
{
MsiSetInternalUI(INSTALLUILEVEL_FULL, nullptr);
}
if (silent)
if (g_Silent)
{
if (is_process_elevated())
{
@@ -232,12 +289,14 @@ int bootstrapper(HINSTANCE hInstance)
params += L' ';
}
}
const auto processHandle = run_elevated(argList[0], params.c_str());
if (!processHandle)
{
spdlog::error("Couldn't restart elevated to enable silent mode! ({})", GetLastError());
return 1;
}
if (WaitForSingleObject(processHandle, 3600000) == WAIT_OBJECT_0)
{
DWORD exitCode = 0;
@@ -259,65 +318,50 @@ int bootstrapper(HINSTANCE hInstance)
{
TerminateProcess(handle.get(), 0);
}
auto powerToysMutex = createAppMutex(POWERTOYS_MSI_MUTEX_NAME);
auto instanceMutex = createAppMutex(POWERTOYS_BOOTSTRAPPER_MUTEX_NAME);
if (!instanceMutex)
{
spdlog::error("Couldn't acquire PowerToys global mutex. That means setup couldn't kill PowerToys.exe process");
spdlog::error("Couldn't acquire PowerToys global mutex. Setup couldn't terminate PowerToys.exe process");
return 1;
}
// Check if there's a newer version installed, and launch its installer if so.
const VersionHelper myVersion(VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION);
if (const auto installedVersion = updating::get_installed_powertoys_version(); installedVersion && *installedVersion >= myVersion)
{
auto msi_path = updating::get_msi_package_path();
if (!msi_path.empty())
{
spdlog::error(L"Detected a newer {} version => launching its installer", installedVersion->toWstring());
MsiInstallProductW(msi_path.c_str(), nullptr);
return 0;
}
}
spdlog::debug("Extracting embedded MSI installer");
const auto installerPath = extractEmbeddedInstaller(fs::temp_directory_path());
const auto installerPath = ExtractEmbeddedInstaller(fs::temp_directory_path());
if (!installerPath)
{
if (!silent)
{
show_error_box(GET_RESOURCE_STRING(IDS_INSTALLER_EXTRACT_ERROR).c_str(), INSTALLATION_MSGBOX_TITLE);
}
ShowMessageBoxError(IDS_INSTALLER_EXTRACT_ERROR);
spdlog::error("Couldn't install the MSI installer ({})", GetLastError());
return 1;
}
auto removeExtractedInstaller = wil::scope_exit([&] {
std::error_code _;
fs::remove(*installerPath, _);
});
spdlog::debug("Acquiring existing MSI package path");
spdlog::debug("Acquiring existing MSI package path if exists");
const auto package_path = updating::get_msi_package_path();
if (!package_path.empty())
{
spdlog::debug(L"Existing MSI package path: {}", package_path);
spdlog::debug(L"Existing MSI package path found: {}", package_path);
}
else
{
spdlog::debug("Existing MSI package path not found");
}
if (!package_path.empty() && !updating::uninstall_msi_version(package_path, Strings))
{
spdlog::error("Couldn't install the existing MSI package ({})", GetLastError());
if (!silent)
{
show_error_box(GET_RESOURCE_STRING(IDS_UNINSTALL_PREVIOUS_VERSION_ERROR).c_str(), INSTALLATION_MSGBOX_TITLE);
}
ShowMessageBoxError(IDS_UNINSTALL_PREVIOUS_VERSION_ERROR);
}
const bool installDotnet = !skipDotnetInstall;
if (!silent)
if (!g_Silent)
{
open_progressbar_window(hInstance, 0, GET_RESOURCE_STRING(IDS_BOOTSTRAPPER_PROGRESS_TITLE).c_str(), GET_RESOURCE_STRING(IDS_DOWNLOADING_DOTNET).c_str());
OpenProgressBarDialog(hInstance, 0, GET_RESOURCE_STRING(IDS_BOOTSTRAPPER_PROGRESS_TITLE).c_str(), GET_RESOURCE_STRING(IDS_DOWNLOADING_DOTNET).c_str());
}
try
@@ -329,13 +373,13 @@ int bootstrapper(HINSTANCE hInstance)
spdlog::debug("Dotnet is already installed: {}", dotnetInstalled);
if (!dotnetInstalled)
{
bool installed_successfully = false;
bool installedSuccessfully = false;
if (const auto dotnet_installer_path = updating::download_dotnet())
{
// Dotnet installer has its own progress bar
close_progressbar_window();
installed_successfully = updating::install_dotnet(*dotnet_installer_path, silent);
if (!installed_successfully)
CloseProgressBarDialog();
installedSuccessfully = updating::install_dotnet(*dotnet_installer_path, g_Silent);
if (!installedSuccessfully)
{
spdlog::error("Couldn't install dotnet");
}
@@ -345,12 +389,9 @@ int bootstrapper(HINSTANCE hInstance)
spdlog::error("Couldn't download dotnet");
}
if (!installed_successfully)
if (!installedSuccessfully)
{
if (!silent)
{
show_error_box(GET_RESOURCE_STRING(IDS_DOTNET_INSTALL_ERROR).c_str(), INSTALLATION_MSGBOX_TITLE);
}
ShowMessageBoxError(IDS_DOTNET_INSTALL_ERROR);
}
}
}
@@ -358,11 +399,13 @@ int bootstrapper(HINSTANCE hInstance)
catch (...)
{
spdlog::error("Unknown exception during dotnet installation");
MessageBoxW(nullptr, L".NET Core installation", L"Unknown exception encountered!", MB_OK | MB_ICONERROR);
ShowMessageBoxError(IDS_DOTNET_INSTALL_ERROR);
}
CleanupSettingsFromOlderVersions();
// At this point, there's no reason to show progress bar window, since MSI installers have their own
close_progressbar_window();
CloseProgressBarDialog();
const std::wstring msiProps = installFolderProp;
spdlog::debug("Launching MSI installation for new package {}", installerPath->string());
@@ -375,7 +418,7 @@ int bootstrapper(HINSTANCE hInstance)
spdlog::debug("Installation completed");
if (!noStartPT && !silent)
if (!noStartPT && !g_Silent)
{
spdlog::debug("Starting the newly installed PowerToys.exe");
auto newPTPath = updating::get_msi_package_installed_path();
@@ -384,6 +427,7 @@ int bootstrapper(HINSTANCE hInstance)
spdlog::error("Couldn't determine new MSI package install location ({})", GetLastError());
return 1;
}
*newPTPath += L"\\PowerToys.exe";
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_FLAG_NO_UI | SEE_MASK_NOASYNC | SEE_MASK_NO_CONSOLE };
@@ -399,22 +443,37 @@ int WINAPI WinMain(HINSTANCE hi, HINSTANCE, LPSTR, int)
{
try
{
return bootstrapper(hi);
return Bootstrapper(hi);
}
catch (const std::exception& ex)
{
MessageBoxA(nullptr, ex.what(), "Unhandled std exception encountered!", MB_OK | MB_ICONERROR);
std::string messageA{ "Unhandled std exception encountered\n" };
messageA.append(ex.what());
spdlog::error(messageA.c_str());
std::wstring messageW{};
std::copy(messageA.begin(), messageA.end(), messageW.begin());
ShowMessageBoxError(messageW.c_str());
}
catch (winrt::hresult_error const& ex)
{
winrt::hstring message = ex.message();
MessageBoxW(nullptr, message.c_str(), L"Unhandled winrt exception encountered!", MB_OK | MB_ICONERROR);
std::wstring message{ L"Unhandled winrt exception encountered\n" };
message.append(ex.message().c_str());
spdlog::error(message.c_str());
ShowMessageBoxError(message.c_str());
}
catch (...)
{
auto lastErrorMessage = get_last_error_message(GetLastError());
std::wstring message = lastErrorMessage ? std::move(*lastErrorMessage) : L"";
MessageBoxW(nullptr, message.c_str(), L"Unknown exception encountered!", MB_OK | MB_ICONERROR);
std::wstring message{ L"Unknown exception encountered\n" };
message.append(lastErrorMessage ? std::move(*lastErrorMessage) : L"");
spdlog::error(message.c_str());
ShowMessageBoxError(message.c_str());
}
return 0;
}

View File

@@ -119,7 +119,6 @@
<ClCompile Include="RcResource.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\runner\updating.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="progressbar_window.h" />
</ItemGroup>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalační program PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se nainstalovat .NET.]]></Val>
<Val><![CDATA[Nepovedlo se nainstalovat .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Stahuje se modul runtime .NET Core...]]></Val>
<Val><![CDATA[Stahuje se .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se rozbalit Instalační program MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Už je nainstalovaná novější verze.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aby se sada PowerToys dala spustit, vyžaduje Windows 10 verze 1903 (aktualizace z května 2019) nebo novější.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se odinstalovat předchozí verzi PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-Installer]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET konnte nicht installiert werden.]]></Val>
<Val><![CDATA[.NET Core konnte nicht installiert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core-Runtime wird heruntergeladen...]]></Val>
<Val><![CDATA[.NET Core wird heruntergeladen...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI-Installer konnte nicht extrahiert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Es ist bereits eine neuere Version installiert.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys erfordert zur Ausführung Windows 10, Version 1903 (May 2019 Update) oder höher.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die vorherige PowerToys-Version konnte nicht deinstalliert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalador de PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[No se pudo instalar dotnet.]]></Val>
<Val><![CDATA[No se pudo instalar .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Descargando el runtime de .NET Core...]]></Val>
<Val><![CDATA[Descargando .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[No se pudo extraer el instalador MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ya hay instalada una versión más reciente.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys requiere Windows 10 versión 1903 (actualización de mayo de 2019) o posterior para ejecutarse.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[No se pudo desinstalar la versión anterior de PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Programme d'installation de PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible d'installer dotnet !]]></Val>
<Val><![CDATA[Impossible d'installer .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Téléchargement du runtime .NET Core...]]></Val>
<Val><![CDATA[Téléchargement de .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible d'extraire le programme d'installation de MSI !]]></Val>
<Val><![CDATA[Impossible d'extraire le programme d'installation MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Une version plus récente est déjà installée.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys nécessite Windows 10 version 1903 (mise à jour de mai 2019) ou plus récent pour s'exécuter.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible de désinstaller la version précédente de PowerToys !]]></Val>
<Val><![CDATA[Impossible de désinstaller la version précédente de PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-telepítő]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nem sikerült telepíteni a dotnetet!]]></Val>
<Val><![CDATA[Nem sikerült telepíteni a .NET Core-t.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[A .NET Core futtatókörnyezet letöltése...]]></Val>
<Val><![CDATA[A .NET Core letöltése...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nem sikerült kicsomagolni az MSI-telepítőt!]]></Val>
<Val><![CDATA[Nem sikerült kicsomagolni az MSI-telepítőt.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Már telepítve van egy újabb verzió.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[A PowerToys futtatásához a Windows 10 legalább 1903-as verziója (2019. májusi frissítés) szükséges.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nem sikerült eltávolítani az előző PowerToys-verziót!]]></Val>
<Val><![CDATA[Nem sikerült eltávolítani az előző PowerToys-verziót.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Programma di installazione di PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Non è stato possibile installare .NET.]]></Val>
<Val><![CDATA[Non è stato possibile installare .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Download del runtime di .NET Core...]]></Val>
<Val><![CDATA[Download di .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Non è stato possibile estrarre il programma di installazione MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[È già installata una versione più recente.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys richiede Windows 10 versione 1903 (aggiornamento di maggio 2019) o versione successiva.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Non è stato possibile disinstallare la versione precedente di PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys インストーラー]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[dotnet をインストールできませんでした。]]></Val>
<Val><![CDATA[.NET Core をインストールできませんでした。]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core ランタイムをダウンロードしています...]]></Val>
<Val><![CDATA[.NET Core をダウンロードしています...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI インストーラーを展開できませんでした。]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[新しいバージョンが既にインストールされています。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Powertoy を実行するには、Windows 10 バージョン 1903 (2019 年 5 月の更新プログラム) 以降が必要です。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys の以前のバージョンをアンインストールできませんでした。]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 설치 관리자]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[dotnet을 설치할 수 없습니다.]]></Val>
<Val><![CDATA[.NET Core를 설치할 수 없습니다.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core 런타임 다운로드 중...]]></Val>
<Val><![CDATA[.NET Core 다운로드 중...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI 설치 관리자를 추출할 수 없습니다.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[최신 버전이 이미 설치되어 있습니다.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys를 사용하려면 Windows 10 버전 1903(2019년 5월 업데이트) 이상을 실행해야 합니다.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[이전 PowerToys 버전을 제거할 수 없습니다.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Installatieprogramma voor PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan dotnet niet installeren.]]></Val>
<Val><![CDATA[Kan .NET Core niet installeren.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core Runtime downloaden...]]></Val>
<Val><![CDATA[.NET Core downloaden...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan het MSI-installatieprogramma niet uitpakken.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Er is al een nieuwere versie geïnstalleerd.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Windows 10 versie 1903 (update van mei 2019) of nieuwer is vereist om PowerToys te kunnen uitvoeren.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan de vorige PowerToys-versie niet verwijderen.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalator narzędzia PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nie można było zainstalować programu dotnet.]]></Val>
<Val><![CDATA[Nie można zainstalować oprogramowania .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Trwa pobieranie środowiska uruchomieniowego platformy .NET Core...]]></Val>
<Val><![CDATA[Trwa pobieranie oprogramowania .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nie można było wyodrębnić Instalatora MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nowsza wersja jest już zainstalowana.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Program PowerToys wymaga do działania systemu Windows 10 w wersji 1903 (aktualizacja z maja 2019 r.) lub nowszej.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nie można było odinstalować poprzedniej wersji programu PowerToys.]]></Val>
<Val><![CDATA[Nie można odinstalować poprzedniej wersji programu PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalador do PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível instalar o dotnet!]]></Val>
<Val><![CDATA[Não foi possível instalar o .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Baixando o Runtime do .NET Core...]]></Val>
<Val><![CDATA[Baixando o .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível extrair o instalador do MSI!]]></Val>
<Val><![CDATA[Não foi possível extrair o instalador do MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Uma versão mais recente já está instalada.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Os PowerToys exigem o Windows 10 versão 1903 (Atualização de maio de 2019) ou mais recente para serem executados.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível desinstalar a versão anterior do PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalador do PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível instalar o dotnet!]]></Val>
<Val><![CDATA[Não foi possível instalar o .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[A transferir .NET Core Runtime...]]></Val>
<Val><![CDATA[A transferir .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível extrair o instalador da MSI!]]></Val>
<Val><![CDATA[Não foi possível extrair o instalador MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Já se encontra instalada uma versão mais recente.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[O PowerToys requer a versão 1903 do Windows 10 (Atualização de maio de 2019) ou mais recente para ser executado.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Não foi possível desinstalar a versão anterior do PowerToys!]]></Val>
<Val><![CDATA[Não foi possível desinstalar a versão anterior do PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Установщик PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Не удалось установить .Net.]]></Val>
<Val><![CDATA[Не удалось установить .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Скачивание среды выполнения .NET Core…]]></Val>
<Val><![CDATA[Скачивание .NET Core…]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,10 +237,22 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Не удалось извлечь установщик MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Более новая версия уже установлена.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Для запуска PowerToys требуется Windows 10 версии 1903 (обновление за май 2019 года) или более поздней.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удалить предыдущую версию PowerToys не удалось.]]></Val>
<Val><![CDATA[Не удалось удалить предыдущую версию PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Installationsprogram för PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Det gick inte att installera dotnet!]]></Val>
<Val><![CDATA[Det gick inte att installera .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Laddar ned .NET Core-körning...]]></Val>
<Val><![CDATA[Laddar ned .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Det gick inte att extrahera MSI-installationsprogrammet!]]></Val>
<Val><![CDATA[Det gick inte att extrahera MSI-installationsprogrammet.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[En nyare version är redan installerad.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys kräver Windows 10 version 1903 (uppdateringen från maj 2019) eller senare för att köras.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Det gick inte att avinstallera föregående PowerToy-version!]]></Val>
<Val><![CDATA[Det gick inte att avinstallera föregående PowerToy-version.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys yükleyicisi]]></Val>
<Val><![CDATA[PowerToys Yükleyicisi]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Dotnet yüklenemedi!]]></Val>
<Val><![CDATA[.NET Core yüklenemedi.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core Çalışma Zamanı indiriliyor...]]></Val>
<Val><![CDATA[.NET Core indiriliyor...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI yükleyicisi ayıklanamadı!]]></Val>
<Val><![CDATA[MSI yükleyicisi ayıklanamadı.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Zaten daha yeni bir sürüm yüklü.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys'un çalışabilmesi için Windows 10 sürüm 1903 (Mayıs 2019 Güncelleştirmesi) veya daha yeni bir sürümü gereklidir.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Önceki PowerToys sürümü kaldırılamadı!]]></Val>
<Val><![CDATA[Önceki PowerToys sürümü kaldırılamadı.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 安装程序]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[无法安装 .NET!]]></Val>
<Val><![CDATA[无法安装 .NET Core。]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在下载 .NET Core 运行时...]]></Val>
<Val><![CDATA[正在下载 .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[无法提取 MSI 安装程序!]]></Val>
<Val><![CDATA[无法提取 MSI 安装程序]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[已安装更新的版本。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -291,10 +312,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[无法卸载旧版 PowerToys!]]></Val>
<Val><![CDATA[无法卸载旧版 PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -12,10 +12,13 @@
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 安裝程式]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -39,19 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法安裝 dotnet!]]></Val>
<Val><![CDATA[無法安裝 .NET Core。]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在下載 .NET Core 執行階段...]]></Val>
<Val><![CDATA[正在下載 .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -228,9 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法解壓縮 MSI 安裝程式!]]></Val>
<Val><![CDATA[無法解壓縮 MSI 安裝程式]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[已安裝較新版本。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -262,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 需要 Windows 10 1903 版 (2019 年 5 月更新) 或更新版本才能執行。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -291,10 +321,13 @@
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法解除安裝舊的 PowerToys 版本!]]></Val>
<Val><![CDATA[無法解除安裝舊的 PowerToys 版本]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -6,28 +6,29 @@
#include "progressbar_window.h"
#include "Generated Files/resource.h"
const int label_height = 20;
const int labelHeight = 18;
const int progress_bar_height = 15;
const int progress_bar_margin = 10;
const int progressBarHeight = 20;
const int margin = 10;
const int window_width = 450;
const int title_bar_height = 32;
const int window_height = progress_bar_margin * 3 + progress_bar_height + label_height + title_bar_height;
const int windowWidth = 480;
const int titleBarHeight = 32;
const int windowHeight = margin * 4 + progressBarHeight + labelHeight + titleBarHeight;
int progressbar_steps = 0;
int progressBarSteps = 0;
HWND progress_bar;
HWND main_window;
HWND label;
HWND hDialog = nullptr;
HWND hLabel = nullptr;
HWND hProgressBar = nullptr;
HBRUSH hBrush = nullptr;
std::wstring initial_label;
std::mutex ui_thread_is_running;
std::wstring labelText;
std::mutex uiThreadIsRunning;
namespace nonlocalized
{
const wchar_t window_class[] = L"PTBProgressBarWnd";
const wchar_t label_class[] = L"static";
const wchar_t windowClass[] = L"PTBProgressBarWnd";
const wchar_t labelClass[] = L"static";
}
#pragma comment(linker, "\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
@@ -38,55 +39,87 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
case WM_CREATE:
{
ui_thread_is_running.lock();
label = CreateWindowW(nonlocalized::label_class, initial_label.c_str(), WS_CHILD | WS_VISIBLE | WS_TABSTOP, progress_bar_margin, 0, window_width - progress_bar_margin * 4, label_height, hWnd, (HMENU)(501), (HINSTANCE)GetWindowLongPtrW(hWnd, GWLP_HINSTANCE), nullptr);
uiThreadIsRunning.lock();
progress_bar = CreateWindowExW(0,
PROGRESS_CLASS,
nullptr,
WS_VISIBLE | WS_CHILD | PBS_SMOOTH,
progress_bar_margin,
progress_bar_margin + label_height,
window_width - progress_bar_margin * 4,
progress_bar_height,
hWnd,
(HMENU)(IDR_PROGRESS_BAR),
(HINSTANCE)GetWindowLongPtrW(hWnd, GWLP_HINSTANCE),
nullptr);
hLabel = CreateWindowW(nonlocalized::labelClass,
labelText.c_str(),
WS_CHILD | WS_VISIBLE | WS_TABSTOP,
margin,
margin,
windowWidth - (margin * 4),
labelHeight,
hWnd,
(HMENU)(501),
(HINSTANCE)GetWindowLongPtrW(hWnd, GWLP_HINSTANCE), nullptr);
bool filled_on_start = false;
if (progressbar_steps == 0)
hProgressBar = CreateWindowExW(0,
PROGRESS_CLASS,
nullptr,
WS_VISIBLE | WS_CHILD | PBS_SMOOTH,
margin,
(margin * 2) + labelHeight,
windowWidth - (margin * 4),
progressBarHeight,
hWnd,
(HMENU)(IDR_PROGRESS_BAR),
(HINSTANCE)GetWindowLongPtrW(hWnd, GWLP_HINSTANCE),
nullptr);
bool filledOnStart = false;
if (progressBarSteps == 0)
{
progressbar_steps = 1;
filled_on_start = true;
progressBarSteps = 1;
filledOnStart = true;
}
SendMessageW(progress_bar, PBM_SETRANGE, 0, MAKELPARAM(0, progressbar_steps));
SendMessageW(progress_bar, PBM_SETSTEP, 1, 0);
if (filled_on_start)
SendMessageW(hProgressBar, PBM_SETRANGE, 0, MAKELPARAM(0, progressBarSteps));
SendMessageW(hProgressBar, PBM_SETSTEP, 1, 0);
if (filledOnStart)
{
SendMessageW(progress_bar, PBM_STEPIT, 0, 0);
SendMessageW(hProgressBar, PBM_STEPIT, 0, 0);
}
break;
}
case WM_CTLCOLORSTATIC:
{
if (lParam == (LPARAM)hLabel)
{
if (!hBrush)
{
HDC hdcStatic = (HDC)wParam;
SetTextColor(hdcStatic, RGB(0, 0, 0));
SetBkColor(hdcStatic, RGB(255, 255, 255));
hBrush = CreateSolidBrush(RGB(255, 255, 255));
}
return (LRESULT)hBrush;
}
break;
}
case WM_CLOSE:
{
DestroyWindow(hWnd);
PostQuitMessage(0);
break;
}
default:
{
return DefWindowProcW(hWnd, Msg, wParam, lParam);
}
}
return 0;
}
void open_progressbar_window(HINSTANCE hInstance, const int n_progressbar_steps, const wchar_t* title, const wchar_t* init_label)
void OpenProgressBarDialog(HINSTANCE hInstance, const int nProgressbarSteps, const wchar_t* title, const wchar_t* label)
{
initial_label = init_label;
progressbar_steps = n_progressbar_steps;
labelText = label;
progressBarSteps = nProgressbarSteps;
std::wstring window_title{ title };
std::thread{
[hInstance, window_title = std::move(window_title)] {
INITCOMMONCONTROLSEX iccex{ .dwSize = sizeof(iccex), .dwICC = ICC_NATIVEFNTCTL_CLASS | ICC_PROGRESS_CLASS };
INITCOMMONCONTROLSEX iccex{.dwSize = sizeof(iccex), .dwICC = ICC_NATIVEFNTCTL_CLASS | ICC_PROGRESS_CLASS };
InitCommonControlsEx(&iccex);
WNDCLASSEX wc{};
@@ -95,54 +128,58 @@ void open_progressbar_window(HINSTANCE hInstance, const int n_progressbar_steps,
wc.hInstance = hInstance;
wc.hIcon = LoadIconW(hInstance, MAKEINTRESOURCE(IDR_BIN_ICON));
wc.hIconSm = LoadIconW(hInstance, MAKEINTRESOURCE(IDR_BIN_ICON));
wc.lpszClassName = nonlocalized::window_class;
wc.lpszClassName = nonlocalized::windowClass;
if (!RegisterClassExW(&wc))
{
spdlog::warn("Couldn't register main_window class for progress bar.");
return;
}
RECT rect{};
GetClientRect(GetDesktopWindow(), &rect);
rect.left = rect.right / 2 - window_width / 2;
rect.top = rect.bottom / 4 - window_height / 2;
main_window = CreateWindowExW(WS_EX_CLIENTEDGE,
nonlocalized::window_class,
window_title.c_str(),
WS_OVERLAPPED | WS_CAPTION | WS_MINIMIZEBOX,
rect.left,
rect.top,
window_width,
window_height,
nullptr,
nullptr,
hInstance,
nullptr);
rect.left = rect.right / 2 - windowWidth / 2;
rect.top = rect.bottom / 4 - windowHeight / 2;
hDialog = CreateWindowExW(WS_EX_CLIENTEDGE,
nonlocalized::windowClass,
window_title.c_str(),
WS_OVERLAPPED | WS_CAPTION | WS_MINIMIZEBOX,
rect.left,
rect.top,
windowWidth,
windowHeight,
nullptr,
nullptr,
hInstance,
nullptr);
if (!main_window)
if (!hDialog)
{
spdlog::warn("Couldn't create progress bar main_window");
return;
}
ShowWindow(main_window, SW_SHOW);
UpdateWindow(main_window);
ShowWindow(hDialog, SW_SHOW);
UpdateWindow(hDialog);
run_message_loop();
ui_thread_is_running.unlock();
uiThreadIsRunning.unlock();
}
}.detach();
}
void tick_progressbar_window(const wchar_t* new_status)
void UpdateProgressBarDialog(const wchar_t* label)
{
SetWindowTextW(label, new_status);
SendMessageW(progress_bar, PBM_STEPIT, 0, 0);
SetWindowTextW(hLabel, label);
SendMessageW(hProgressBar, PBM_STEPIT, 0, 0);
}
void close_progressbar_window()
void CloseProgressBarDialog()
{
SendMessageW(main_window, WM_CLOSE, {}, {});
SendMessageW(hDialog, WM_CLOSE, {}, {});
{
std::unique_lock wait_for_ui_to_exit{ui_thread_is_running};
std::unique_lock waitForUIToExit{ uiThreadIsRunning };
}
// Return focus to the current process, since it was lost due to progress bar closing (?)
INPUT i = {INPUT_MOUSE, {}};
SendInput(1, &i, sizeof(i));

View File

@@ -4,6 +4,6 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
void open_progressbar_window(HINSTANCE hInstance, const int n_progressbar_steps, const wchar_t* title, const wchar_t* init_label);
void tick_progressbar_window(const wchar_t* new_status);
void close_progressbar_window();
void OpenProgressBarDialog(HINSTANCE hInstance, const int nProgressbarSteps, const wchar_t* title, const wchar_t* label);
void UpdateProgressBarDialog(const wchar_t* label);
void CloseProgressBarDialog();

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension" >
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
<?define FancyZonesProjectName="FancyZones"?>
<?define ImageResizerProjectName="ImageResizer"?>
@@ -104,7 +103,6 @@
<CustomAction
Id="TerminateProcesses"
Return="ignore"
Impersonate="no"
Execute="immediate"
BinaryKey="PTCustomActions"
DllEntry="TerminateProcessesCA" />
@@ -246,6 +244,10 @@
<Directory Id="UriImagesFolder" Name="Images" />
<Directory Id="UriLanguagesFolder" Name="Languages" />
</Directory>
<Directory Id="VSCodeWorkspacesPluginFolder" Name="VSCodeWorkspace">
<Directory Id="VSCodeWorkspaceImagesFolder" Name="Images" />
<Directory Id="VSCodeWorkspaceLanguagesFolder" Name="Languages" />
</Directory>
<Directory Id="WindowWalkerPluginFolder" Name="Microsoft.Plugin.WindowWalker">
<Directory Id="WindowWalkerImagesFolder" Name="Images" />
<Directory Id="WindowWalkerLanguagesFolder" Name="Languages" />
@@ -264,12 +266,15 @@
<Directory Id="LauncherPropertiesFolder" Name="Properties" />
</Directory>
</Directory>
<Directory Id="SettingsV2InstallFolder" Name="SettingsUIRunner">
<Directory Id="SettingsV2InstallFolder" Name="Settings">
<Directory Id="SettingsV2ViewsInstallFolder" Name="Views"/>
<Directory Id="SettingsV2StylesInstallFolder" Name="Styles"/>
<Directory Id="SettingsV2PropertiesInstallFolder" Name="Properties"/>
<Directory Id="SettingsV2AssetsInstallFolder" Name="Assets">
<Directory Id="SettingsV2AssetsModulesInstallFolder" Name="Modules" />
<Directory Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" Name="FluentIcons" />
<Directory Id="SettingsV2AssetsModulesInstallFolder" Name="Modules" >
<Directory Id="SettingsV2OOBEAssetsModulesInstallFolder" Name="OOBE" />
</Directory>
</Directory>
<Directory Id="SettingsV2ControlsInstallFolder" Name="Controls"/>
<Directory Id="SettingsV2XamlInstallFolder" Name="Microsoft.UI.Xaml">
@@ -281,8 +286,10 @@
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder"/>
<Directory Id="DesktopFolder" Name="Desktop"/>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="PowerToys (Preview)"/>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
</Fragment>
@@ -296,20 +303,7 @@
</RegistryKey>
</Component>
<Component Id="powertoys_exe" Guid="A2C66D91-3485-4D00-B04D-91844E6B345B" Win64="yes">
<File Id="PowerToys.exe" KeyPath="yes" Checksum="yes">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="PowerToys (Preview)"
Description="PowerToys - Windows system utilities to maximize productivity"
Directory="ProgramMenuFolder"
Icon="powertoys.exe"
IconIndex="0"
Advertise="yes">
<ShortcutProperty Key="System.AppUserModel.ID" Value="Microsoft.PowerToysWin32"/>
<!-- ToastActivatorCLSID is used only by toast background activation, which currently isn't used, but causes MSI warning 1946 to display for a small share of users -->
<!-- <ShortcutProperty Key="System.AppUserModel.ToastActivatorCLSID" Value="{DD5CACDA-7C2E-4997-A62A-04A597B58F76}"/> -->
</Shortcut>
</File>
<File Id="PowerToys.exe" KeyPath="yes" Checksum="yes" />
<RegistryKey Root="HKCR" Key="powertoys">
<RegistryValue Type="string" Name="URL Protocol" Value=""/>
<RegistryValue Type="string" Value="URL:PowerToys custom internal URI protocol"/>
@@ -320,11 +314,7 @@
<RegistryValue Type="string" Value="&quot;[INSTALLFOLDER]PowerToys.exe&quot; &quot;%1&quot;" />
</RegistryKey>
</RegistryKey>
</Component>
<Component Id="settings_exe" Guid="A5A461A9-7097-4CBA-9D39-3DBBB6B7B80C" Win64="yes">
<File Id="PowerToysSettings.exe" KeyPath="yes" Checksum="yes" />
</Component>
@@ -350,6 +340,24 @@
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="PowerToysStartMenuShortcut" Guid="336AB4F9-078C-4DCA-B69F-3808A9FFD758">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="PowerToys (Preview)"
Description="PowerToys - Windows system utilities to maximize productivity"
Icon="powertoys.exe"
IconIndex="0"
Target="[!PowerToys.exe]"
WorkingDirectory="INSTALLFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="Microsoft.PowerToysWin32"/>
</Shortcut>
<RemoveFolder Id="CleanUpStartMenuShortCut" Directory="ApplicationProgramsFolder" On="uninstall"/>
<!-- ApplicationStartMenuShortcut is implicitly installed in HKCU, so WIX won't allow changing this reg value to HKLM. -->
<RegistryValue Root="HKCU" Key="Software\Microsoft\PowerToys" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<DirectoryRef Id="SvgsInstallFolder" FileSource="$(var.BinX64Dir)svgs\">
<Component Id="PowerToysSvgs" Guid="7C4D4EED-9338-423D-992C-DCE02F3E2D35" Win64="yes">
<File Source="$(var.BinX64Dir)svgs\0.svg" />
@@ -372,6 +380,7 @@
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\fancyzones.dll" KeyPath="yes" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\FancyZonesEditor.dll" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\FancyZonesEditor.runtimeconfig.json" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\FancyZonesEditor.deps.json" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\FancyZonesEditor.exe" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\ControlzEx.dll" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\Microsoft.Xaml.Behaviors.dll" />
@@ -379,6 +388,7 @@
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\ModernWpf.Controls.dll" />
<File Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\System.Text.Json.dll" />
<File Id="FancyZones_ManagedCommon" Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\ManagedCommon.dll" />
<File Id="FancyZones_Microsoft.PowerToys.Common.UI" Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\Microsoft.PowerToys.Common.UI.dll" />
<File Id="FancyZones_Telemetry.dll" Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\ManagedTelemetry.dll" />
<File Id="FancyZone_System.IO.Abstractions.dll" Source="$(var.BinX64Dir)modules\$(var.FancyZonesProjectName)\System.IO.Abstractions.dll" />
</Component>
@@ -470,9 +480,7 @@
<DirectoryRef Id="ImageResizerInstallFolder" FileSource="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)">
<Component Id="Module_ImageResizer" Guid="96E63289-759C-4A73-A56B-EE7429932F72" Win64="yes">
<File Source="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)\ImageResizer.exe">
<netfx:NativeImage Id="ImageResizer.exe" Platform="all" Priority="0" />
</File>
<File Source="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)\ImageResizer.exe" />
<File Source="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)\ImageResizerExt.dll" KeyPath="yes" />
<File Source="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)\Newtonsoft.Json.dll" />
<File Source="$(var.BinX64Dir)modules\$(var.ImageResizerProjectName)\ImageResizer.dll" />
@@ -634,89 +642,103 @@
</DirectoryRef>
<!-- SettingsV2 components -->
<DirectoryRef Id="SettingsV2InstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\">
<DirectoryRef Id="SettingsV2InstallFolder" FileSource="$(var.BinX64Dir)Settings\">
<Component Id="SettingsV2" Guid="4B108DC0-4B2C-4AC4-AAA9-1B2DC8399F7C" Win64="yes">
<!-- exe -->
<File Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.exe"/>
<File Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.exe"/>
<File Source="$(var.BinX64Dir)Settings\PowerToys.Settings.exe"/>
<File Source="$(var.BinX64Dir)Settings\Microsoft.PowerToys.Settings.UI.exe"/>
<!-- dll -->
<?foreach File in concrt140_app.dll;Microsoft.Bcl.AsyncInterfaces.dll;System.IO.Abstractions.dll;Microsoft.PowerToys.Settings.UI.Lib.dll;Microsoft.PowerToys.Settings.UI.Runner.dll;Microsoft.Toolkit.dll;Microsoft.Toolkit.Uwp.dll;Microsoft.Toolkit.Uwp.UI.dll;Microsoft.Toolkit.Win32.UI.XamlHost.dll;Microsoft.Toolkit.Win32.UI.XamlHost.Managed.dll;Microsoft.Toolkit.Wpf.UI.Controls.dll;Microsoft.Toolkit.Wpf.UI.XamlHost.dll;Microsoft.UI.Xaml.dll;Microsoft.Xaml.Interactions.dll;Microsoft.Xaml.Interactivity.dll;msvcp140_1_app.dll;msvcp140_2_app.dll;msvcp140_app.dll;Newtonsoft.Json.dll;PowerToysInterop.dll;System.Runtime.CompilerServices.Unsafe.dll;System.Text.Encodings.Web.dll;System.Text.Json.dll;vcamp140_app.dll;vccorlib140_app.dll;vcomp140_app.dll;vcruntime140_1_app.dll;vcruntime140_app.dll;ManagedTelemetry.dll;ManagedCommon.dll?>
<File Id="SettingsV2_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\$(var.File)" />
<?foreach File in concrt140_app.dll;Microsoft.Bcl.AsyncInterfaces.dll;System.IO.Abstractions.dll;Microsoft.PowerToys.Settings.UI.Lib.dll;PowerToys.Settings.dll;Microsoft.Toolkit.dll;Microsoft.Toolkit.Uwp.dll;Microsoft.Toolkit.Uwp.UI.dll;Microsoft.Toolkit.Win32.UI.XamlHost.dll;Microsoft.Toolkit.Win32.UI.XamlHost.Managed.dll;Microsoft.Toolkit.Wpf.UI.Controls.dll;Microsoft.Toolkit.Wpf.UI.XamlHost.dll;Microsoft.UI.Xaml.dll;Microsoft.Xaml.Interactions.dll;Microsoft.Xaml.Interactivity.dll;msvcp140_1_app.dll;msvcp140_2_app.dll;msvcp140_app.dll;Newtonsoft.Json.dll;PowerToysInterop.dll;System.Runtime.CompilerServices.Unsafe.dll;System.Text.Encodings.Web.dll;System.Text.Json.dll;vcamp140_app.dll;vccorlib140_app.dll;vcomp140_app.dll;vcruntime140_1_app.dll;vcruntime140_app.dll;ManagedTelemetry.dll;ManagedCommon.dll?>
<File Id="SettingsV2_$(var.File)" Source="$(var.BinX64Dir)Settings\$(var.File)" />
<?endforeach?>
<!-- json -->
<File Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.deps.json"/>
<File Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.runtimeconfig.json"/>
<File Source="$(var.BinX64Dir)Settings\PowerToys.Settings.deps.json"/>
<File Source="$(var.BinX64Dir)Settings\PowerToys.Settings.runtimeconfig.json"/>
<!-- png -->
<File Id="SettingsV2_NoiseAsset_256x256_PNG.png" Source="$(var.BinX64Dir)SettingsUIRunner\NoiseAsset_256x256_PNG.png"/>
<File Id="SettingsV2_NoiseAsset_256x256_PNG.png" Source="$(var.BinX64Dir)Settings\NoiseAsset_256x256_PNG.png"/>
<!-- pri -->
<?foreach File in Microsoft.Toolkit.Uwp.pri;Microsoft.Toolkit.Uwp.UI.pri;Microsoft.Toolkit.Win32.UI.XamlHost.pri;Microsoft.UI.Xaml.pri;Microsoft.Xaml.Interactions.pri;Microsoft.Xaml.Interactivity.pri;resources.pri?>
<File Id="SettingsV2_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\$(var.File)" />
<File Id="SettingsV2_$(var.File)" Source="$(var.BinX64Dir)Settings\$(var.File)" />
<?endforeach?>
<!-- winmd -->
<File Id="SettingsV2_Microsoft.Toolkit.Win32.UI.XamlHost.winmd" Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.Toolkit.Win32.UI.XamlHost.winmd"/>
<File Id="SettingsV2_Microsoft.UI.Xaml.winmd" Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.UI.Xaml.winmd"/>
<File Id="SettingsV2_Microsoft.Toolkit.Win32.UI.XamlHost.winmd" Source="$(var.BinX64Dir)Settings\Microsoft.Toolkit.Win32.UI.XamlHost.winmd"/>
<File Id="SettingsV2_Microsoft.UI.Xaml.winmd" Source="$(var.BinX64Dir)Settings\Microsoft.UI.Xaml.winmd"/>
<!-- xbf -->
<File Id="SettingsV2_App.xbf" Source="$(var.BinX64Dir)SettingsUIRunner\App.xbf"/>
<File Id="SettingsV2_App.xbf" Source="$(var.BinX64Dir)Settings\App.xbf"/>
<!-- xml -->
<File Id="SettingsV2_Microsoft.PowerToys.Settings.UI.xr.xml" Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.xr.xml"/>
<File Id="SettingsV2_Microsoft.Toolkit.Win32.UI.XamlHost.xml" Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.Toolkit.Win32.UI.XamlHost.xml"/>
<File Id="SettingsV2_Microsoft.PowerToys.Settings.UI.xr.xml" Source="$(var.BinX64Dir)Settings\Microsoft.PowerToys.Settings.UI.xr.xml"/>
<File Id="SettingsV2_Microsoft.Toolkit.Win32.UI.XamlHost.xml" Source="$(var.BinX64Dir)Settings\Microsoft.Toolkit.Win32.UI.XamlHost.xml"/>
<!-- VCRuntime -->
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<File Id="SettingsV2_$(var.File)" Source="$(var.RepoDir)installer\VCRuntime\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2AssetsInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Assets">
<DirectoryRef Id="SettingsV2AssetsInstallFolder" FileSource="$(var.BinX64Dir)Settings\Assets">
<Component Id="SettingsV2Assets" Guid="705B863B-D813-49B9-BAA1-210DA913F765" Win64="yes">
<?foreach File in Logo.scale-200.png;SplashScreen.png;StoreLogo.scale-100.png?>
<File Source="$(var.BinX64Dir)SettingsUIRunner\Assets\$(var.File)" />
<File Source="$(var.BinX64Dir)Settings\Assets\$(var.File)" />
<?endforeach?>
<File Id="SettingsV2_StoreLogo" Source="$(var.BinX64Dir)SettingsUIRunner\Assets\StoreLogo.png" />
<File Id="Square150x150Logo" Source="$(var.BinX64Dir)SettingsUIRunner\Assets\Square150x150Logo.scale-200.png" />
<File Id="Square44x44Logo_targetsize_24_altform_unplated" Source="$(var.BinX64Dir)SettingsUIRunner\Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<File Id="Wide310x150Logo" Source="$(var.BinX64Dir)SettingsUIRunner\Assets\Wide310x150Logo.scale-200.png" />
<File Id="Square44x44Logo" Source="$(var.BinX64Dir)SettingsUIRunner\Assets\Square44x44Logo.scale-200.png" />
<File Id="SettingsV2_StoreLogo" Source="$(var.BinX64Dir)Settings\Assets\StoreLogo.png" />
<File Id="Square150x150Logo" Source="$(var.BinX64Dir)Settings\Assets\Square150x150Logo.scale-200.png" />
<File Id="Square44x44Logo_targetsize_24_altform_unplated" Source="$(var.BinX64Dir)Settings\Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<File Id="Wide310x150Logo" Source="$(var.BinX64Dir)Settings\Assets\Wide310x150Logo.scale-200.png" />
<File Id="Square44x44Logo" Source="$(var.BinX64Dir)Settings\Assets\Square44x44Logo.scale-200.png" />
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2AssetsModulesInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Assets\Modules">
<DirectoryRef Id="SettingsV2AssetsModulesInstallFolder" FileSource="$(var.BinX64Dir)Settings\Assets\Modules">
<Component Id="SettingsV2AssetsModules" Guid="A0B961A9-77D0-4223-88A9-E3B41BD9C329" Win64="yes">
<?foreach File in ColorPicker.png;FancyZones.png;ImageResizer.png;KBM.png;PowerLauncher.png;PowerPreview.png;PowerRename.png;PT.png;ShortcutGuide.png?>
<File Source="$(var.BinX64Dir)SettingsUIRunner\Assets\Modules\$(var.File)" />
<File Source="$(var.BinX64Dir)Settings\Assets\Modules\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2ControlsInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Controls">
<DirectoryRef Id="SettingsV2OOBEAssetsModulesInstallFolder" FileSource="$(var.BinX64Dir)Settings\Assets\Modules\OOBE">
<Component Id="SettingsV2OOBEAssetsModules" Guid="E2360A83-6694-4B33-B5F6-641A906359EE" Win64="yes">
<?foreach File in ColorPicker.gif;FancyZones.gif;FileExplorer.png;ImageResizer.gif;KBM.gif;PowerRename.gif;Run.gif;OOBEShortcutGuide.png;VideoConferenceMute.png;OOBEPTHero.png?>
<File Source="$(var.BinX64Dir)Settings\Assets\Modules\OOBE\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" FileSource="$(var.BinX64Dir)Settings\Assets\FluentIcons">
<Component Id="SettingsV2OOBEAssetsFluentIcons" Guid="6A380D5A-DA63-45B5-B68F-06D57CDD1B9C" Win64="yes">
<?foreach File in ColorPicker.png;FancyZones.png;FileExplorerPreview.png;ImageResizer.png;KeyboardManager.png;PowerRename.png;PowerToys.png;PowerToysRun.png;ShortcutGuide.png;VideoConferenceMute.png ?>
<File Source="$(var.BinX64Dir)Settings\Assets\FluentIcons\FluentIcons$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2ControlsInstallFolder" FileSource="$(var.BinX64Dir)Settings\Controls">
<Component Id="SettingsV2Controls" Guid="05C55C88-B59A-4450-A07C-EB7626E0781A" Win64="yes">
<?foreach File in HotkeySettingsControl.xbf?>
<File Id="SettingsV2_Controls_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\Controls\$(var.File)" />
<File Id="SettingsV2_Controls_$(var.File)" Source="$(var.BinX64Dir)Settings\Controls\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2PropertiesInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Properties">
<DirectoryRef Id="SettingsV2PropertiesInstallFolder" FileSource="$(var.BinX64Dir)Settings\Properties">
<Component Id="SettingsV2Properties" Guid="8F910A41-B27B-4289-8FAC-9AB34F070CF6" Win64="yes">
<?foreach File in Default.rd.xml?>
<File Id="SettingsV2_Properties_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\Properties\$(var.File)" />
<File Id="SettingsV2_Properties_$(var.File)" Source="$(var.BinX64Dir)Settings\Properties\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2StylesInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Styles">
<DirectoryRef Id="SettingsV2StylesInstallFolder" FileSource="$(var.BinX64Dir)Settings\Styles">
<Component Id="SettingsV2Styles" Guid="44B5C0E0-76DA-4604-BB86-FCD27A00EB71" Win64="yes">
<?foreach File in Page.xbf;TextBlock.xbf;_Colors.xbf;_FontSizes.xbf;_Sizes.xbf;_Thickness.xbf;Button.xbf?>
<File Id="SettingsV2_Styles_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\Styles\$(var.File)" />
<File Id="SettingsV2_Styles_$(var.File)" Source="$(var.BinX64Dir)Settings\Styles\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2ViewsInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Views">
<DirectoryRef Id="SettingsV2ViewsInstallFolder" FileSource="$(var.BinX64Dir)Settings\Views">
<Component Id="SettingsV2Views" Guid="C140BFBA-6370-4F67-862C-5B42660385CD" Win64="yes">
<?foreach File in FancyZonesPage.xbf;GeneralPage.xbf;ImageResizerPage.xbf;KeyboardManagerPage.xbf;PowerLauncherPage.xbf;PowerPreviewPage.xbf;PowerRenamePage.xbf;ShellPage.xbf;ShortcutGuidePage.xbf?>
<File Id="SettingsV2_Views_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\Views\$(var.File)" />
<File Id="SettingsV2_Views_$(var.File)" Source="$(var.BinX64Dir)Settings\Views\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
<DirectoryRef Id="SettingsV2XamlAssetsInstallFolder" FileSource="$(var.BinX64Dir)SettingsUIRunner\Microsoft.UI.Xaml\Assets">
<DirectoryRef Id="SettingsV2XamlAssetsInstallFolder" FileSource="$(var.BinX64Dir)Settings\Microsoft.UI.Xaml\Assets">
<Component Id="SettingsV2XamlAssets" Guid="98A136DB-C1BD-42B1-9AB4-0E16F0ECE86A" Win64="yes">
<?foreach File in NoiseAsset_256X256_PNG.png?>
<File Id="SettingsV2_XamlAssets_$(var.File)" Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.UI.Xaml\Assets\$(var.File)" />
<File Id="SettingsV2_XamlAssets_$(var.File)" Source="$(var.BinX64Dir)Settings\Microsoft.UI.Xaml\Assets\$(var.File)" />
<?endforeach?>
</Component>
</DirectoryRef>
@@ -733,11 +755,15 @@
<Component Id="settings_js_bundle" Guid="9EF539C1-2F50-421E-B074-C58ED3A9785C" Win64="yes">
<File Source="$(var.RepoDir)\src\settings\settings-html\dist\bundle.js" KeyPath="yes" />
</Component>
<Component Id="settings_css" Guid="9B8EBF56-A7A7-4D83-B53C-75A692E2F95A" Win64="yes">
<File Source="$(var.RepoDir)\src\settings\settings-html\dist\layout.css" KeyPath="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="87321F2B-CC48-4326-881E-9C62CC260DC8">
<Condition>INSTALLDESKTOPSHORTCUT</Condition>
<!-- DesktopShortcutId is implicitly installed in HKCU, so WIX won't allow changing this reg value to HKLM. -->
<RegistryValue Root="HKCU"
Key="Software\[Manufacturer]\[ProductName]"
Name="desktopshorcutinstalled"
@@ -758,6 +784,7 @@
<Fragment>
<ComponentGroup Id="CoreComponents" Directory="INSTALLFOLDER">
<ComponentRef Id="powertoys_exe" />
<ComponentRef Id="PowerToysStartMenuShortcut"/>
<ComponentRef Id="BackgroundActivator_dll" />
<ComponentRef Id="action_runner_exe" />
<ComponentRef Id="powertoys_toast_clsid" />
@@ -780,6 +807,8 @@
<ComponentRef Id="SettingsV2" />
<ComponentRef Id="SettingsV2Assets" />
<ComponentRef Id="SettingsV2AssetsModules" />
<ComponentRef Id="SettingsV2OOBEAssetsFluentIcons" />
<ComponentRef Id="SettingsV2OOBEAssetsModules" />
<ComponentRef Id="SettingsV2Controls" />
<ComponentRef Id="SettingsV2Properties" />
<ComponentRef Id="SettingsV2Styles" />
@@ -789,6 +818,7 @@
<ComponentRef Id="settings_html" />
<ComponentRef Id="settings_dark_html" />
<ComponentRef Id="settings_js_bundle" />
<ComponentRef Id="settings_css" />
</ComponentGroup>
<ComponentGroup Id="ToolComponents" Directory="ToolsFolder">
<ComponentRef Id="BugReportTool_exe" />
@@ -801,7 +831,7 @@
<Fragment>
<!-- Resource directories should be added only if the installer is built on the build farm -->
<?ifdef env.IsPipeline?>
<?foreach ParentDirectory in LauncherInstallFolder;FancyZonesInstallFolder;ImageResizerInstallFolder;ColorPickerInstallFolder;FileExplorerPreviewInstallFolder;CalculatorPluginFolder;FolderPluginFolder;ProgramPluginFolder;ShellPluginFolder;IndexerPluginFolder;UriPluginFolder;WindowWalkerPluginFolder;RegistryPluginFolder;ServicePluginFolder?>
<?foreach ParentDirectory in LauncherInstallFolder;FancyZonesInstallFolder;ImageResizerInstallFolder;ColorPickerInstallFolder;FileExplorerPreviewInstallFolder;CalculatorPluginFolder;FolderPluginFolder;ProgramPluginFolder;ShellPluginFolder;IndexerPluginFolder;UriPluginFolder;WindowWalkerPluginFolder;RegistryPluginFolder;VSCodeWorkspacesPluginFolder;ServicePluginFolder?>
<DirectoryRef Id="$(var.ParentDirectory)">
<!-- Resource file directories -->
<?foreach Language in $(var.LocLanguageList)?>
@@ -877,6 +907,9 @@
<Component Id="Launcher_Uri_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)UriPluginFolder">
<File Id="Launcher_Uri_$(var.IdSafeLanguage)_File" Source="$(var.BinX64Dir)modules\launcher\Plugins\Microsoft.Plugin.Uri\$(var.Language)\Microsoft.Plugin.Uri.resources.dll" />
</Component>
<Component Id="Launcher_VSCodeWorkspaces_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)VSCodeWorkspacesPluginFolder">
<File Id="Launcher_VSCodeWorkspaces_$(var.IdSafeLanguage)_File" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\$(var.Language)\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.resources.dll" />
</Component>
<Component Id="Launcher_WindowWalker_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)WindowWalkerPluginFolder">
<File Id="Launcher_WindowWalker_$(var.IdSafeLanguage)_File" Source="$(var.BinX64Dir)modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\$(var.Language)\Microsoft.Plugin.WindowWalker.resources.dll" />
</Component>
@@ -893,27 +926,27 @@
</Fragment>
<Fragment>
<ComponentGroup Id="LauncherComponents">
<Component Id="launcherShortcutComponent" Directory="LauncherInstallFolder" Guid="8824006B-CD06-4D87-8AC4-1B40C71DB4D7">
<!-- Toast Notification AUMID -->
<RegistryKey Root="HKLM" Key="SOFTWARE\Classes\AppUserModelId\PowerToysRun">
<RegistryValue Type="string" Name="DisplayName" Value="PowerToys Run" />
<RegistryValue Type="string" Name="IconUri" Value="[LauncherImagesFolder]RunAsset.ico" />
</RegistryKey>
</Component>
<Component Id="launcherInstallComponent" Directory="LauncherInstallFolder" Guid="5E688DB4-C522-4268-BA54-ED1CDFFE9DB6">
<!-- Toast Notification AUMID -->
<RegistryKey Root="HKCU" Key="SOFTWARE\Classes\AppUserModelId\PowerToysRun">
<RegistryValue Type="string" Name="DisplayName" Value="PowerToys Run" />
<RegistryValue Type="string" Name="IconUri" Value="[LauncherImagesFolder]icon.ico" />
</RegistryKey>
<File Source="$(var.BinX64Dir)modules\Launcher\Microsoft.Launcher.dll" />
<?foreach File in concrt140_app.dll;ICSharpCode.SharpZipLib.dll;JetBrains.Annotations.dll;Mages.Core.dll;Microsoft.Search.Interop.dll;Mono.Cecil.dll;Mono.Cecil.Mdb.dll;Mono.Cecil.Pdb.dll;Mono.Cecil.Rocks.dll;msvcp140_1_app.dll;msvcp140_2_app.dll;msvcp140_app.dll;Newtonsoft.Json.dll;NLog.dll;NLog.Extensions.Logging.dll;PowerLauncher.deps.json;PowerLauncher.dll;PowerLauncher.exe;Microsoft.Xaml.Behaviors.dll;System.Text.Json.dll;PowerLauncher.runtimeconfig.json;System.Data.OleDb.dll;vcamp140_app.dll;vccorlib140_app.dll;vcomp140_app.dll;vcruntime140_1_app.dll;vcruntime140_app.dll;Wox.Infrastructure.dll;Wox.Plugin.dll;PowerToysInterop.dll;ManagedTelemetry.dll;PowerLauncher.Telemetry.dll;Microsoft.Extensions.Configuration.Abstractions.dll;Microsoft.Extensions.Configuration.Binder.dll;Microsoft.Extensions.Configuration.dll;Microsoft.Extensions.DependencyInjection.Abstractions.dll;Microsoft.Extensions.DependencyInjection.dll;Microsoft.Extensions.Logging.Abstractions.dll;Microsoft.Extensions.Logging.dll;Microsoft.Extensions.Options.dll;Microsoft.Extensions.Primitives.dll;ControlzEx.dll;ManagedCommon.dll;System.IO.Abstractions.dll;Microsoft.PowerToys.Common.UI.dll;System.ServiceProcess.ServiceController.dll;Microsoft.Toolkit.Uwp.Notifications.dll;ModernWpf.Controls.dll;ModernWpf.dll?>
<File Id="File_$(var.File)" Source="$(var.BinX64Dir)modules\launcher\$(var.File)" />
<?endforeach?>
<File Source="$(var.BinX64Dir)SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Lib.dll" />
<File Source="$(var.BinX64Dir)Settings\Microsoft.PowerToys.Settings.UI.Lib.dll" />
<!-- VCRuntime -->
<?foreach File in vcruntime140.dll;vcruntime140_1.dll;concrt140.dll;msvcp140.dll;msvcp140_1.dll;msvcp140_2.dll;msvcp140_codecvt_ids.dll;vccorlib140.dll?>
<File Id="File_$(var.File)" Source="$(var.RepoDir)installer\VCRuntime\$(var.File)" />
<?endforeach?>
</Component>
<Component Id="launcherImagesComponent" Directory="LauncherImagesFolder" Guid="D254220C-1DD9-4C74-8810-1AAB2F940DE8">
<?foreach File in app.dark.png;app.light.png;app_error.dark.png;app_error.light.png;Browser.png;calculator.png;cancel.png;close.png;cmd.png;color.png;copy.png;down.png;EXE.png;file.png;find.png;folder.png;history.png;image.png;Link.png;lock.png;logoff.png;ok.png;open.png;plugin.png;recyclebin.png;restart.png;search.png;settings.png;shutdown.png;sleep.png;up.png;update.png;warning.png;icon.ico?>
<?foreach File in app.dark.png;app.light.png;app_error.dark.png;app_error.light.png;Browser.png;calculator.png;cancel.png;close.png;cmd.png;color.png;copy.png;down.png;EXE.png;file.png;find.png;folder.png;history.png;image.png;Link.png;lock.png;logoff.png;ok.png;open.png;plugin.png;recyclebin.png;restart.png;search.png;settings.png;shutdown.png;sleep.png;up.png;update.png;warning.png;RunAsset.ico?>
<File Id="File_$(var.File)" Source="$(var.BinX64Dir)modules\launcher\Images\$(var.File)" />
<?endforeach?>
<File Source="$(var.BinX64Dir)modules\launcher\Images\New Message.png" />
@@ -989,7 +1022,21 @@
<File Id="UriLightIcon" Source="$(var.BinX64Dir)modules\launcher\Plugins\Microsoft.Plugin.Uri\Images\Uri.light.png" />
</Component>
<!-- WindowWalker Plugin -->
<!-- VSCodeWorkspaces Plugin -->
<Component Id="VSCodeWorkspacesComponent" Directory="VSCodeWorkspacesPluginFolder" Guid="78363DBD-7E38-4D5F-8987-9963DF609B94">
<File Id="VSCodeWorkspaceFolder_deps" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.deps.json" />
<?foreach File in plugin.json;Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll?>
<File Id="VSCodeWorkspaces_$(var.File)" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\$(var.File)" />
<?endforeach?>
</Component>
<Component Id="VSCodeWorkspacesImagesComponent" Directory="VSCodeWorkspaceImagesFolder" Guid="6F3C0CF1-7024-4333-BFA1-850D340AEE69">
<File Id="VSCodeWorkspaceCodeLight" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\Images\code-light.png" />
<File Id="VSCodeWorkspaceCodeDark" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\Images\code-dark.png" />
<File Id="VSCodeWorkspaceFolder" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\Images\folder.png" />
<File Id="VSCodeWorkspaceRemote" Source="$(var.BinX64Dir)modules\launcher\Plugins\VSCodeWorkspaces\Images\monitor.png" />
</Component>
<!-- WindowWalker Plugin -->
<Component Id="WindowWalkerComponent" Directory="WindowWalkerPluginFolder" Guid="EB1391C9-B701-421F-80FC-ABB2FEDFAD19">
<?foreach File in plugin.json;Microsoft.Plugin.WindowWalker.deps.json;Microsoft.Plugin.WindowWalker.dll;ManagedTelemetry.dll?>
<File Id="WindowWalker_$(var.File)" Source="$(var.BinX64Dir)modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\$(var.File)" />

View File

@@ -3,7 +3,7 @@ setlocal enableDelayedExpansion
IF NOT DEFINED PTRoot (SET PTRoot=..\..)
rem Publish Settings
SET settingsProfileFolderName=!PTRoot!\src\settings-ui\Microsoft.PowerToys.Settings.UI.Runner\Properties\PublishProfiles\
SET settingsProfileFolderName=!PTRoot!\src\settings-ui\PowerToys.Settings\Properties\PublishProfiles\
rem Create the publish profile folder if it doesn't exist
IF NOT EXIST !settingsProfileFolderName! (mkdir !settingsProfileFolderName!)
SET settingsProfileFileName=SettingsProfile.pubxml
@@ -20,7 +20,7 @@ echo ^<PublishProtocol^>FileSystem^</PublishProtocol^> >> !settingsPublishPr
echo ^<Configuration^>Release^</Configuration^> >> !settingsPublishProfile!
echo ^<Platform^>x64^</Platform^> >> !settingsPublishProfile!
echo ^<TargetFramework^>netcoreapp3.1^</TargetFramework^> >> !settingsPublishProfile!
echo ^<PublishDir^>..\..\..\x64\Release\SettingsUIRunner^</PublishDir^> >> !settingsPublishProfile!
echo ^<PublishDir^>..\..\..\x64\Release\Settings^</PublishDir^> >> !settingsPublishProfile!
echo ^<RuntimeIdentifier^>win-x64^</RuntimeIdentifier^> >> !settingsPublishProfile!
echo ^<SelfContained^>false^</SelfContained^> >> !settingsPublishProfile!
echo ^<PublishSingleFile^>False^</PublishSingleFile^> >> !settingsPublishProfile!
@@ -29,7 +29,7 @@ echo ^</PropertyGroup^> >> !settingsPublishProfile!
echo ^</Project^> >> !settingsPublishProfile!
rem In case of Release we should not use Debug CRT in VCRT forwarders
msbuild !PTRoot!\src\settings-ui\Microsoft.PowerToys.Settings.UI.Runner\Microsoft.PowerToys.Settings.UI.Runner.csproj -t:Publish -p:Configuration="Release" -p:Platform="x64" -p:AppxBundle=Never -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=!settingsProfileFileName!
msbuild !PTRoot!\src\settings-ui\PowerToys.Settings\PowerToys.Settings.csproj -t:Publish -p:Configuration="Release" -p:Platform="x64" -p:AppxBundle=Never -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=!settingsProfileFileName!
rem Publish Launcher

View File

@@ -3,6 +3,7 @@
#include <ProjectTelemetry.h>
#include "../../src/common/updating/installer.h"
#include "../../src/common/version/version.h"
using namespace std;
@@ -416,6 +417,7 @@ UINT __stdcall TelemetryLogInstallSuccessCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"Install_Success",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -436,6 +438,7 @@ UINT __stdcall TelemetryLogInstallCancelCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"Install_Cancel",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -456,6 +459,7 @@ UINT __stdcall TelemetryLogInstallFailCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"Install_Fail",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -476,6 +480,7 @@ UINT __stdcall TelemetryLogUninstallSuccessCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"UnInstall_Success",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -496,6 +501,7 @@ UINT __stdcall TelemetryLogUninstallCancelCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"UnInstall_Cancel",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -516,6 +522,7 @@ UINT __stdcall TelemetryLogUninstallFailCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"UnInstall_Fail",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -536,6 +543,7 @@ UINT __stdcall TelemetryLogRepairCancelCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"Repair_Cancel",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -556,6 +564,7 @@ UINT __stdcall TelemetryLogRepairFailCA(MSIHANDLE hInstall)
TraceLoggingWrite(
g_hProvider,
"Repair_Fail",
TraceLoggingWideString(get_product_version().c_str(), "Version"),
ProjectTelemetryPrivacyDataTag(ProjectTelemetryTag_ProductAndServicePerformance),
TraceLoggingBoolean(TRUE, "UTCReplace_AppSessionGuid"),
TraceLoggingKeyword(PROJECT_KEYWORD_MEASURE));
@@ -606,7 +615,7 @@ UINT __stdcall TerminateProcessesCA(MSIHANDLE hInstall)
std::array<std::wstring_view, 4> processesToTerminate = {
L"PowerLauncher.exe",
L"Microsoft.PowerToys.Settings.UI.Runner.exe",
L"PowerToys.Settings.exe",
L"Microsoft.PowerToys.Settings.UI.exe",
L"PowerToys.exe"
};

View File

@@ -42,10 +42,13 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\$(Platform)\$(Configuration)\obj\</IntDir>
<IncludePath>..\..\src\common\Telemetry;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
@@ -56,7 +59,6 @@
<AdditionalDependencies>msi.lib;wcautil.lib;Psapi.lib;Pathcch.lib;comsupp.lib;taskschd.lib;Secur32.lib;msi.lib;dutil.lib;wcautil.lib;Version.lib;ApplicationUpdate.lib;Notifications.lib;winstore.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>

View File

@@ -1,6 +0,0 @@
#pragma once
#include <TraceLoggingProvider.h>
#include <TraceLoggingDefines.h>
TRACELOGGING_DECLARE_PROVIDER(g_hProvider);

View File

@@ -1,6 +0,0 @@
#pragma once
#define TraceLoggingOptionProjectTelemetry() TraceLoggingOptionGroup(0x42749043, 0x438c, 0x46a2, 0x82, 0xbe, 0xc6, 0xcb, 0xeb, 0x19, 0x2f, 0xf2)
#define ProjectTelemetryPrivacyDataTag(tag) TraceLoggingUInt64((tag), "Ignore")
#define ProjectTelemetryTag_ProductAndServicePerformance 0x0u
#define PROJECT_KEYWORD_MEASURE 0x0

View File

@@ -1,47 +1,3 @@
# PowerToys installer instructions
## MSI installer instructions
1. Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
2. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/) in the development machine.
3. Open `powertoys.sln`, select the "Release" and "x64" configurations and build the `PowerToysSetup` project.
4. The resulting installer will be built to `PowerToysSetup\bin\Release\PowerToysSetup.msi`.
## MSIX installer instructions
### One-time tasks
#### Create and install the self-sign certificate
For the first-time installation, you'll need to generate a self-signed certificate. The script below will generate and add a cert to your [TRCA store](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/trusted-root-certification-authorities-certificate-store).
1. Open `Developer PowerShell for VS` as an Admin
2. Navigate to your repo's `installer\MSIX`
3. Run `.\generate_self_sign_cert.ps1`
**Note:** if you delete the folder, you will have to regenerate the key
#### Elevate `Developer PowerShell for VS` permissions due to unsigned file
`reinstall_msix.ps1` is unsigned, you'll need to elevate your prompt.
1. Open `Developer PowerShell for VS` as admin
2. Run `Set-ExecutionPolicy -executionPolicy Unrestricted`
#### Allow Sideloaded apps
In order to install the MSIX package without using the Microsoft Store, sideloading apps needs to be enabled. This can be done by enabling `Developer Options > Sideload apps` or `Developer Options > Developer mode`.
### Building the MSIX package
1. Make sure you've built the `Release` configuration of `powertoys.sln`
2. Open `Developer PowerShell for VS`
3. Navigate to your repo's `installer\MSIX`
4. Run `.\reinstall_msix.ps1` from the devenv powershell
### What reinstall_msix.ps1 does
`reinstall_msix.ps1` removes the current PowerToys installation, restarts explorer.exe (to update PowerRename and ImageResizer shell extension), builds `PowerToys-x64.msix` package, signs it with a PowerToys_TemporaryKey.pfx, and finally installs it.
## Cleanup - Removing all .msi/.msix PowerToys installations
```ps
$name='PowerToys'
Get-AppxPackage -Name $name | select -ExpandProperty "PackageFullName" | Remove-AppxPackage
gwmi win32_product -filter "Name = '$name'" -namespace root/cimv2 | foreach {
if ($_.uninstall().returnvalue -eq 0) { write-host "Successfully uninstalled $name " }
else { write-warning "Failed to uninstall $name." }
}
```
Please go to https://github.com/microsoft/PowerToys/tree/master/doc/devdocs#compile-the-installer for instructions

View File

@@ -2,14 +2,12 @@
// 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.Windows;
namespace Microsoft.PowerToys.Settings.UI.Runner
namespace ManagedCommon
{
/// <summary>
/// Interaction logic for App.xaml.
/// </summary>
public partial class App : Application
public enum StartupPosition
{
Cursor,
PrimaryMonitor,
Focus,
}
}

View File

@@ -16,6 +16,8 @@ namespace Microsoft.PowerToys.Telemetry.Events
{
public bool UTCReplace_AppSessionGuid => true;
public string EventName { get; set; }
private string _version;
public string Version

View File

@@ -37,7 +37,7 @@ namespace Microsoft.PowerToys.Telemetry
where T : EventBase, IEvent
{
this.Write<T>(
null,
telemetryEvent.EventName,
new EventSourceOptions()
{
Keywords = ProjectKeywordMeasure,

View File

@@ -1,5 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<Import Project="..\..\Version.props" />
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>

View File

@@ -133,22 +133,22 @@ namespace Microsoft.PowerToys.Common.UI
else if (theme == Theme.HighContrastOne)
{
_currentTheme = Theme.HighContrastOne;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme, true);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastOneTheme);
}
else if (theme == Theme.HighContrastTwo)
{
_currentTheme = Theme.HighContrastTwo;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme, true);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastTwoTheme);
}
else if (theme == Theme.HighContrastWhite)
{
_currentTheme = Theme.HighContrastWhite;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme, true);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastWhiteTheme);
}
else if (theme == Theme.HighContrastBlack)
{
_currentTheme = Theme.HighContrastBlack;
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme, true);
ControlzEx.Theming.ThemeManager.Current.ChangeTheme(_app, HighContrastBlackTheme);
}
else if (theme == Theme.Light)
{

View File

@@ -4,7 +4,7 @@
namespace PTSettingsHelper
{
constexpr inline const wchar_t* settings_filename = L"\\settings.json";
constexpr inline const wchar_t* log_settings_filename = L"log_settings.json";
constexpr inline const wchar_t* oobe_filename = L"oobe_settings.json";
std::wstring get_root_save_folder_location()
{
@@ -77,4 +77,34 @@ namespace PTSettingsHelper
result = result.append(log_settings_filename);
return result.wstring();
}
bool get_oobe_opened_state()
{
std::filesystem::path oobePath(PTSettingsHelper::get_root_save_folder_location());
oobePath = oobePath.append(oobe_filename);
if (std::filesystem::exists(oobePath))
{
auto saved_settings = json::from_file(oobePath.c_str());
if (!saved_settings.has_value())
{
return false;
}
bool opened = saved_settings->GetNamedBoolean(L"openedAtFirstLaunch", false);
return opened;
}
return false;
}
void save_oobe_opened_state()
{
std::filesystem::path oobePath(PTSettingsHelper::get_root_save_folder_location());
oobePath = oobePath.append(oobe_filename);
json::JsonObject obj;
obj.SetNamedValue(L"openedAtFirstLaunch", json::value(true));
json::to_file(oobePath.c_str(), obj);
}
}

View File

@@ -6,6 +6,8 @@
namespace PTSettingsHelper
{
constexpr inline const wchar_t* log_settings_filename = L"log_settings.json";
std::wstring get_module_save_folder_location(std::wstring_view powertoy_name);
std::wstring get_root_save_folder_location();
@@ -14,4 +16,7 @@ namespace PTSettingsHelper
void save_general_settings(const json::JsonObject& settings);
json::JsonObject load_general_settings();
std::wstring get_log_settings_file_location();
bool get_oobe_opened_state();
void save_oobe_opened_state();
}

View File

@@ -52,10 +52,13 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />
<PackageReference Include="coverlet.collector" Version="1.3.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.3" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.3" />
<PackageReference Include="coverlet.collector" Version="3.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>

View File

@@ -135,8 +135,30 @@ public
public:
literal int VK_WIN_BOTH = CommonSharedConstants::VK_WIN_BOTH;
static String ^ AppDataPath() {
auto localPath = Environment::GetFolderPath(Environment::SpecialFolder::LocalApplicationData);
auto powerToysPath = gcnew String(CommonSharedConstants::APPDATA_PATH);
return System::IO::Path::Combine(localPath, powerToysPath);
}
static String ^ PowerLauncherSharedEvent() {
return gcnew String(CommonSharedConstants::POWER_LAUNCHER_SHARED_EVENT);
}
static String ^ RunSendSettingsTelemetryEvent() {
return gcnew String(CommonSharedConstants::RUN_SEND_SETTINGS_TELEMETRY_EVENT);
}
static String ^ ColorPickerSendSettingsTelemetryEvent() {
return gcnew String(CommonSharedConstants::COLOR_PICKER_SEND_SETTINGS_TELEMETRY_EVENT);
}
static String ^ ShowColorPickerSharedEvent() {
return gcnew String(CommonSharedConstants::SHOW_COLOR_PICKER_SHARED_EVENT);
}
static String ^ ShowShortcutGuideSharedEvent() {
return gcnew String(CommonSharedConstants::SHOW_SHORTCUT_GUIDE_SHARED_EVENT);
}
};
}

Some files were not shown because too many files have changed in this diff Show More