[既定のアプリ] 設定ページを起動する
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.1555
に10.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")));