クイック スタート: リムーバブル記憶装置を自動再生デバイスとして構成する (HTML)
メモリ カードやサム ドライブなどのボリューム デバイスが PC に接続されたとき、そのボリューム デバイスを自動再生デバイスとして識別することができます。これは、特定のアプリを自動再生に関連付けて、ボリューム デバイスのユーザーに提示する場合などに活用できます。
ここでは、自動再生デバイスとしてボリューム デバイスを識別する方法を示します。
ボリューム デバイスを自動再生デバイスとして識別するには、デバイスのルート ドライブに autorun.inf ファイルを追加します。autorun.inf ファイルの AutoRun セクションに CustomEvent キーを追加します。PC にボリューム デバイスが接続されると、自動再生が autorun.inf ファイルを検索し、ボリュームをデバイスとして扱います。自動再生は、CustomEvent キーに指定された名前を使って自動再生イベントを作成します。それからアプリを作成し、その自動再生イベントのハンドラーとしてアプリを登録できます。PC にデバイスが接続されると、自動再生が、ボリューム デバイスのハンドラーとしてアプリを表示します。 autorun.inf ファイルについて詳しくは、「Autorun.inf エントリ」をご覧ください。
デバイスの製造元: 自動再生は、デバイスのハンドラーとして作成したアプリを自動的にダウンロードしないという点に注意する必要があります。しかし、通常の場合と同様に、ユーザーはアプリを Windows ストアから入手できます。 より合理的なエクスペリエンスにするには、デバイス メタデータを使ってアプリをデバイスに関連付けます。アプリをデバイスのエクスペリエンス ID に対応する自動インストールされるアプリとして関連付けた場合は、デバイスが PC に接続されると、オペレーティング システムがその関連付けを検出します。PC にアプリがインストールされていない場合は、オペレーティング システムが自動的にアプリをダウンロードしてインストールします。自動再生は、デバイスのハンドラーとしてユーザーが選ぶ最初のオプションの形式でアプリを提示します。詳しくは、Windows ストア デバイス アプリの自動再生に関するページをご覧ください。
目標: ボリューム デバイスのカスタム自動再生イベントを処理するアプリを作成します。
必要条件
このクイック スタートの手順を完了するには、サム ドライブやメモリ カードなどのボリューム デバイスが必要です。
Microsoft Visual Studio
手順
1. autorun.inf ファイルを作成する
ボリューム デバイスのルート ドライブに autorun.inf という名前のファイルを追加します。autorun.inf ファイルを開き、次のテキストを追加します。
[AutoRun] CustomEvent=AutoPlayCustomEventQuickstart
2. 新しいプロジェクトを作成し、自動再生宣言を追加する
Visual Studio を開き、[ファイル] メニューの [新しいプロジェクト] をクリックします。[Javascript] セクションで、[Windows ストア] を選びます。アプリに AutoPlayCustomEvent という名前を付け、[OK] をクリックします。
Package.appxmanifest ファイルを開き、[機能] タブをクリックします。[リムーバブル ストレージ] 機能をクリックします。これで、アプリはリムーバブル ストレージ デバイス上のファイルとフォルダーにアクセスできるようになります。
マニフェスト ファイルで、[宣言] タブをクリックします。[使用可能な宣言] ドロップダウン リストで、[自動再生コンテンツ] を選び、[追加] をクリックします。[サポートされる宣言] ボックスの一覧に追加された新しい [自動再生コンテンツ] 項目を選びます。
注 また、カスタム自動再生イベントに対して [自動再生デバイス] の宣言を追加することもできます。
[自動再生コンテンツ] イベント宣言の [起動アクション] セクションに、最初の起動アクションの次の値を入力します。
設定 値 動詞 show アクションの表示名 フォルダーを表示する コンテンツ イベント AutoPlayCustomEventQuickstart [コンテンツ イベント] の値は、autorun.inf ファイルの CustomEvent キーで指定したテキストです。[アクションの表示名] 設定では、アプリの自動再生で表示される文字列を指定します。[動詞] 設定では、選んだオプションでアプリに渡される値を指定します。自動再生のイベントの起動アクションは複数指定できます。また、[動詞] 設定を使って、ユーザーがアプリで選んだアクションを確認できます。アプリに渡される起動イベント引数の verb プロパティを調べることでユーザーが選んだオプションを確認できます。[動詞] 設定には任意の値を使うことができます。ただし、予約されている open を除きます。
[使用可能な宣言] ドロップダウン リストで、[ファイルの種類の関連付け] を選び、[追加] をクリックします。新しい [ファイルの種類の関連付け] 宣言の [プロパティ] で、[表示名] フィールドを Show .ms Files、[名前] フィールドを ms_association に設定します。[サポートされるファイルの種類] セクションで、[新規追加] をクリックします。[ファイルの種類] フィールドを .ms に設定します。コンテンツ イベントの場合は、自動再生で、アプリに明示的に関連付けられていないファイルの種類はすべて除外されます。
マニフェスト ファイルを保存して閉じます。
3. HTML UI を追加する
Default.html ファイルを開き、次の HTML を <body> セクションに挿入します。
<h2>Files</h2> <div id="files" style="width:400px;height:600px;font-size:large;" />
4. ライセンス認証コードを追加する
この手順のコードは、ボリューム デバイスのルート ドライブにあるフォルダーを表示する関数を呼び出します。自動再生コンテンツ イベントの場合、自動再生により、アプリに渡された起動引数でストレージ デバイスのルート フォルダーが渡されます。このフォルダーは detail.files プロパティの最初の要素から取得できます。アクティブ化イベント引数の detail.kind プロパティの戻り値が Windows.ApplicationModel.Activation.ActivationKind.file であれば、自動再生コンテンツ イベントのハンドラーとしてアプリが起動されたことがわかります。
js フォルダーを開きます。Default.js ファイルを開き、既定の onactivated 関数を次のコードで置き換えます。
var filesDiv; app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.file) { filesDiv = document.getElementById("files"); displayFiles(args.detail.files[0]); } args.setPromise(WinJS.UI.processAll()); };
5. フォルダー名を表示するコードを追加する
Default.js ファイルで、onactivated 関数の後に次のコードを追加します。
function displayFiles(folder) { var options = new Windows.Storage.Search.QueryOptions(); options.fileTypeFilter.append(".ms"); var query = folder.createFileQueryWithOptions(options); query.getFilesAsync().done( function (files) { files.forEach( function (f) { filesDiv.innerHTML += " " + f.name + "<br/>"; }); }); }
6. アプリをビルドして実行する
- F5 キーを押して、アプリを (デバッグ モードで) ビルドおよび展開します。
- アプリを実行するには、メモリ カードまたは他のストレージ デバイスを PC に挿入します。そして、自動再生ハンドラー オプションの一覧からアプリを選びます。
要約と次のステップ
このチュートリアルでは、autorun.inf ファイルを使ってカスタム自動再生イベント名を定義することにより、ボリューム デバイスを自動再生デバイスとして識別しました。そして、そのカスタム イベントのハンドラーとして登録されるアプリを作成しました。