mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 03:37:59 +01:00
Add 'Restart Windows Explorer' command, implemented using Restart Manager (#39258)
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request - Adds a new **"Restart Windows Explorer"** command to the **"Windows System Commands"** provider - Implemented using **Restart Manager** to allow restoring previously opened Explorer windows after restart - This depends on the *"Restore previous folder windows at logon"* option in File Explorer Options - An explicit timeout was added for terminating processes, since Restart Manager uses very long timeouts 😴 - The shell process name (`explorer`) is hardcoded - The command attempts to terminate all `explorer` processes indiscriminately - Execution requires confirmation (if enabled in settings)  <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [ ] **Closes:** #39213 - [ ] **Communication:** I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end user facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed
This commit is contained in:
1
.github/actions/spell-check/expect.txt
vendored
1
.github/actions/spell-check/expect.txt
vendored
@@ -1716,6 +1716,7 @@ trx
|
||||
tsa
|
||||
TSender
|
||||
TServer
|
||||
tskill
|
||||
tstoi
|
||||
TStr
|
||||
tweakme
|
||||
|
||||
@@ -110,6 +110,13 @@ internal static class Commands
|
||||
});
|
||||
}
|
||||
|
||||
results.Add(new ListItem(new ExecuteCommandConfirmation(Resources.Microsoft_plugin_sys_RestartShell_name!, confirmCommands, Resources.Microsoft_plugin_sys_RestartShell_confirmation!, static () => OpenInShellHelper.OpenInShell("cmd", "/C tskill explorer && start explorer", runWithHiddenWindow: true)))
|
||||
{
|
||||
Title = Resources.Microsoft_plugin_sys_RestartShell!,
|
||||
Subtitle = Resources.Microsoft_plugin_sys_RestartShell_description!,
|
||||
Icon = Icons.RestartShellIcon,
|
||||
});
|
||||
|
||||
// UEFI command/result. It is only available on systems booted in UEFI mode.
|
||||
if (isUefi)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,8 @@ public static partial class Icons
|
||||
|
||||
public static IconInfo RestartIcon { get; } = new IconInfo("\uE777");
|
||||
|
||||
public static IconInfo RestartShellIcon { get; } = new IconInfo("\uEC50");
|
||||
|
||||
public static IconInfo ShutdownIcon { get; } = new IconInfo("\uE7E8");
|
||||
|
||||
public static IconInfo SleepIcon { get; } = new IconInfo("\uE708");
|
||||
|
||||
@@ -645,6 +645,42 @@ namespace Microsoft.CmdPal.Ext.System {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restart Windows Explorer.
|
||||
/// </summary>
|
||||
public static string Microsoft_plugin_sys_RestartShell {
|
||||
get {
|
||||
return ResourceManager.GetString("Microsoft_plugin_sys_RestartShell", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to You are about to restart Windows Explorer, are you sure?.
|
||||
/// </summary>
|
||||
public static string Microsoft_plugin_sys_RestartShell_confirmation {
|
||||
get {
|
||||
return ResourceManager.GetString("Microsoft_plugin_sys_RestartShell_confirmation", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to End and restart the Windows Explorer shell process.
|
||||
/// </summary>
|
||||
public static string Microsoft_plugin_sys_RestartShell_description {
|
||||
get {
|
||||
return ResourceManager.GetString("Microsoft_plugin_sys_RestartShell_description", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Restart.
|
||||
/// </summary>
|
||||
public static string Microsoft_plugin_sys_RestartShell_name {
|
||||
get {
|
||||
return ResourceManager.GetString("Microsoft_plugin_sys_RestartShell_name", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ip; mac; address.
|
||||
/// </summary>
|
||||
|
||||
@@ -417,4 +417,16 @@
|
||||
<data name="Microsoft_plugin_ext_fallback_display_title" xml:space="preserve">
|
||||
<value>Open System Command</value>
|
||||
</data>
|
||||
<data name="Microsoft_plugin_sys_RestartShell" xml:space="preserve">
|
||||
<value>Restart Windows Explorer</value>
|
||||
</data>
|
||||
<data name="Microsoft_plugin_sys_RestartShell_description" xml:space="preserve">
|
||||
<value>End and restart the Windows Explorer shell process</value>
|
||||
</data>
|
||||
<data name="Microsoft_plugin_sys_RestartShell_name" xml:space="preserve">
|
||||
<value>Restart</value>
|
||||
</data>
|
||||
<data name="Microsoft_plugin_sys_RestartShell_confirmation" xml:space="preserve">
|
||||
<value>You are about to restart Windows Explorer, are you sure?</value>
|
||||
</data>
|
||||
</root>
|
||||
Reference in New Issue
Block a user