[既定のアプリ] 設定ページを起動する

ms-settings URI スキームを使用して、Windows 設定アプリを起動してアプリから既定のアプリ設定ページを表示する方法について説明します。

Windows では、アプリが Windows 設定アプリを起動し、特定の設定ページを表示できるようにする URI のセットが定義されています。 この記事では、Windows 設定アプリを [既定のアプリ] 設定ページに直接起動し、必要に応じて、指定した既定のアプリケーションの設定に直接移動する方法について説明します。 詳細については、「 Windows 設定アプリを起動する」を参照してください。

既定のアプリ設定 URL

ms-settings:defaultapps は、Windows 設定アプリを起動し、[既定のアプリの設定] ページに移動します。 Windows 11 バージョン 21H2 (2023-04 累積更新プログラムあり)、22H2 (2023-04 累積更新プログラムあり)、23H2 以降では、エスケープされた URI 形式で追加のクエリ文字列パラメーターを追加して、特定のアプリケーションの設定ページに直接起動できます。

3 つのクエリ文字列パラメーターがあります。 使用するクエリ文字列パラメーターは、アプリケーションのインストール方法によって異なります。

クエリ文字列パラメーター 渡す値
registeredAppUser HKEY_CURRENT_USER\Software\RegisteredApplications からの名前付き値

ユーザーごとにアプリがインストールされ、アプリの登録が HKEY_CURRENT_USER\Software\RegisteredApplications に書き込まれたときに使用します。
registeredAppMachine HKEY_LOCAL_MACHINE\Software\RegisteredApplications からの名前付き値

コンピューターごとにアプリがインストールされ、アプリの登録が HKEY_LOCAL_MACHINE\Software\RegisteredApplications に書き込まれたときに使用します。
registeredAUMID アプリケーション ユーザー モデル ID

アプリがファイルの種類 (uap:FileTypeAssociation) または URI スキーム (uap:Protocol) を処理することを宣言するマニフェストを使用して、アプリがパッケージ マネージャーに登録されたときに使用します。

Note

OS のアップグレード後に registeredAUMID クエリ文字列パラメーターを機能させるには、アプリで TargetDeviceFamily をインクリメントする必要がある場合があります。マニフェスト内の MaxVersionTested 値。 これにより、ユーザーに対してアプリのインデックスが再作成されます。これにより、プロトコルのアクティブ化を介してディープ リンクを処理するために使用される適切な定義が更新されます。 MaxVersionTested は、Windows 11 バージョン 21H2 または Windows 11 バージョン 22H2 の10.0.22621.155510.0.22000.1817に更新する必要があります。

次の例では、windows 設定アプリを起動するために LaunchUriAsync が呼び出されます。 ms-settings:defaultapps URI は、[既定のアプリの設定] ページを表示することを指定します。 次に、起動するアプリが決定されます。 たとえば、"Microsoft Edge" はアプリによって HKEY_LOCAL_MACHINE\Software\RegisteredApplications に登録されています。 これはコンピューターごとにインストールされたアプリであるため、 registeredAppMachine は使用する必要があるクエリ文字列パラメーターです。 オプションのクエリ文字列パラメーター registeredAppMachine は、登録された名前に設定され、 Url.EscapeDataStringの呼び出しでエスケープされ、 Microsoft Edge のページが表示されるように指定します。

private async void LaunchSettingsPage_Click(object sender, RoutedEventArgs e)
{
    bool result = await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:defaultapps?registeredAppMachine=" + Uri.EscapeDataString(("Microsoft Edge")));
}
bool result = co_await Windows::System::Launcher::LaunchUriAsync(Windows::Foundation::Uri(L"ms-settings:defaultapps?registeredAppMachine=" + Uri::EscapeDataString(L"Microsoft Edge")));

関連項目

Windows 設定アプリの起動

URI に応じた既定のアプリの起動