前回に引き続き、WindowsのURLのプロトコル処理について解説していく。プロトコル起動では、UWPやストアアプリの起動が可能になる。以下、表記が面倒なのでUWPと略すが、スキーマ名などに違いがある場合を除き、多くがWindows 8やストアアプリにも対応できる。
UWPアプリでは、開発時に起動のためのスキーマを指定できる(指定しなければならないわけではない)。指定しておくと、該当のスキーマを使った起動が可能になる。ただし、スキーマは、レジストリにプロトコルとして登録されている必要があるが、通常は、アプリがインストール時に登録を行なう。
どのアプリがどのプロトコルを使うのかは、コントロールパネルの「既定のプログラム」から表示させることができる(前回を参照のこと)。また、レジストリに以下の形式で登録されているピリオドから始まらないキーは、プロトコルの登録である(以下プロトコルキーと呼ぶ)。
HKEY_CLASSES_ROOT直下のキー
キー名がピリオドから始まらない
キーに「URL Protocol」という名前の文字列値がある
(データが指定されている必要はない)
プロトコルキーは、キー名自体がスキーマとなる。また、コントロールパネルなどに表示される文字列は、キーの既定値が使われる。UWPアプリ側がプロトコルを指定しているため、ファイルの関連付けのようにProgIDなどでプロトコルとアプリの関連を定義する必要はない。
しかし、ファイルの関連付けと同様にShellサブキーなどを使ってデスクトップアプリと対応付けすることは可能だ。このやり方は、拡張子と既定のプログラムと同じやりかたで、前々回までの話の繰り返しになるのでここでは説明しない。
標準アプリを起動するプロトコル
Windowsストアなど標準搭載のUWPアプリの一部に関しては、プロトコル起動について詳細な情報が公開されている。具体的には「Windowsストア」「マップ」「設定」「People」などだ。
たとえば、設定アプリでは、カテゴリ項目や個々の設定ページなどを開く方法がドキュメントに記載されている。
単純に設定ページを開くなら
start ms-settings:
でできる。ロック画面(設定→パーソナル設定→ロック画面)ならば、
start ms-settings:lockscreen
を使うか、ロック画面設定を直接指定するプロトコル
start ms-settings-lock:
で起動できる。なお、Windows10のドキュメントでは、前者のほうのみ記載されているが、レジストリには、後者のプロトコルも定義されている。
Windowsストアの場合、検索なども可能だ。コマンドプロンプトからはstartコマンドのあとに以下のURIを置けば、ストアでの検索が可能だ。
ms-windows-store://search/?query=OneNote
このほか、拡張子やプロトコルなどで検索することも可能で、
ms-windows-store://assoc/?Protocol=mailto
とすると、mailtoプロトコルに対応したアプリを捜すことができる。こうしたURIをショートカットにいれておけば、特定の条件でアプリを検索するショートカットを作成可能だ。
すべての標準搭載アプリがプロトコル起動をサポートしているわけではない。プロトコル起動や関連付けによる起動をサポートしていない代わりに、汎用的な情報アクセスのためのAPIをWindowsが用意しているものもある。たとえば、カレンダーやアドレス帳に関しては、APIが用意されるためプロトコル起動はサポートされていない。
このほか、マイクロソフトは、オフィスアプリのプロトコル起動に関しての文書も公開している(https://msdn.microsoft.com/en-us/library/office/dn906146%28v=office.15%29.aspx?f=255&MSPPError=-2147217396)
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ