Windows 10 创意者更新之后,默认开启了重启后恢复应用程序状态的功能。这是自 Vista 以来就提供的功能——Restart Manager。
应用程序实现这一功能只需要调用 RegisterApplicationRestart
即可。传入两个参数:
- 重启后使用的命令行参数(例如当前正在打开的文件,以及正在阅读或编辑的位置)
- 决定是否进行重启的限制标记(任何时候都能重启还是在某些条件下关掉重启功能)
我封装了以下这个函数的调用并将其放到 GitHub 上:sharing-demo/ApplicationRestartManager.cs at master · walterlv/sharing-demo。
调用代码如下:
if (ApplicationRestartManager.IsRestartManagerSupported)
{
ApplicationRestartManager.RegisterApplicationRestart(
currentOpeningFile,
ApplicationRestartFlags.None);
}
附:封装的 ApplicationRestartManager
:
using System;
using System.Diagnostics.Contracts;
using System.Runtime.InteropServices;
using System.Windows;
using Jetbrains.Annotations;
namespace Walterlv.Win32
{
/// <summary>
/// 为应用程序提供重启后恢复状态的功能。
/// </summary>
public class ApplicationRestartManager
{
/// <summary>
/// 获取一个值,该值指示当前操作系统环境是否支持 Restart Manager 功能。
/// Restart Manager 是 Windows Vista 新增的功能。在 Windows 10 秋季创意者更新之后,默认开启了 EWX_RESTARTAPPS。
/// </summary>
public static bool IsSupported => IsSupportedLaz