自動再生による自動起動Auto-launching with AutoPlay

自動再生を使用すると、ユーザーがデバイスを PC に接続したときに、アプリをオプションとして提供できます。You can use AutoPlay to provide your app as an option when a user connects a device to their PC. これには、カメラやメディア プレーヤーなどのボリューム デバイス以外のデバイス、または USB サム ドライブ、SD カード、DVD などのボリューム デバイスが含まれます。This includes non-volume devices such as a camera or media player, or volume devices such as a USB thumb drive, SD card, or DVD. また自動再生では、近接通信 (タップ) を使って 2 台の PC 間でユーザーがファイルを共有するときにアプリをオプションとして提供することもできます。You can also use AutoPlay to offer your app as an option when users share files between two PCs by using proximity (tapping).

メモ   デバイスの製造元で、デバイスの自動再生ハンドラーとしてMicrosoft Store デバイスアプリを関連付ける場合は、デバイスメタデータ内でそのアプリを識別できます。Note  If you are a device manufacturer and you want to associate your Microsoft Store device app as an AutoPlay handler for your device, you can identify that app in the device metadata. 詳しくは、「Microsoft Store デバイス アプリの自動再生」をご覧ください。For more info, see AutoPlay for Microsoft Store device apps.

自動再生コンテンツに登録するRegister for AutoPlay content

アプリを自動再生コンテンツ イベントのオプションとして登録できます。You can register apps as options for AutoPlay content events. 自動再生コンテンツ イベントは、カメラのメモリ カード、サム ドライブ、DVD などのボリューム デバイスが PC に挿入されたときに発生します。AutoPlay content events are raised when a volume device such as a camera memory card, thumb drive, or DVD is inserted into the PC. ここでは、カメラのボリューム デバイスが挿入されたときに自動再生オプションとしてアプリを識別する方法を示します。Here we show how to identify your app as an AutoPlay option when a volume device from a camera is inserted.

このチュートリアルでは、画像ファイルを表示したり、ピクチャにそれらの画像をコピーしたりするアプリを作成しました。In this tutorial, you created an app that displays image files or copies them to Pictures. 自動再生 ShowPicturesOnArrival コンテンツ イベントにアプリを登録しました。You registered the app for the AutoPlay ShowPicturesOnArrival content event.

自動再生では、近接通信 (タップ) を使って PC 間で共有されるコンテンツのコンテンツ イベントも発生します。AutoPlay also raises content events for content shared between PCs using proximity (tapping). このセクションで説明した手順とコードを使って、近接通信を使用する PC 間で共有されるファイルを処理できます。You can use the steps and code in this section to handle files that are shared between PCs that use proximity. 次の表に、近接通信を使ってコンテンツを共有できる自動再生コンテンツ イベントを示します。The following table lists the AutoPlay content events that are available for sharing content by using proximity.

操作Action 自動再生コンテンツ イベントAutoPlay content event
音楽の共有Sharing music PlayMusicFilesOnArrivalPlayMusicFilesOnArrival
ビデオの共有Sharing videos PlayVideoFilesOnArrivalPlayVideoFilesOnArrival

  ファイルが近接通信を使って共有されている場合、FileActivatedEventArgs オブジェクトの Files プロパティには、すべての共有ファイルを含むルート フォルダーへの参照が含まれます。When files are shared by using proximity, the Files property of the FileActivatedEventArgs object contains a reference to a root folder that contains all of the shared files.

手順 1: 新しいプロジェクトを作成し、自動再生宣言を追加するStep 1: Create a new project and add AutoPlay declarations

  1. Microsoft Visual Studio を開き、[ファイル] メニューの [新しいプロジェクト] をクリックします。Open Microsoft Visual Studio and select New Project from the File menu. Visual C# セクションの [Windows][空白のアプリ (ユニバーサル Windows)] を選びます。In the Visual C# section, under Windows, select Blank App (Universal Windows). アプリに AutoPlayDisplayOrCopyImages という名前を付け、[OK] をクリックします。Name the app AutoPlayDisplayOrCopyImages and click OK.
  2. [Package.appxmanifest] ファイルを開き、[機能] ** タブを選択します。[リムーバブル記憶域]** と [ピクチャ ライブラリ] 機能を選択します。Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage and Pictures Library capabilities. これで、アプリはカメラ メモリのリムーバブル ストレージ デバイスと、ローカルの画像にアクセスできるようになります。This gives the app access to removable storage devices for camera memory, and access to local pictures.
  3. マニフェスト ファイルで [宣言] タブを選び、[使用可能な宣言] ドロップダウンから [自動再生コンテンツ] を選んで [追加] をクリックします。In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Content and click Add. [サポートされる宣言] ボックスの一覧に追加された新しい [自動再生コンテンツ] 項目を選びます。Select the new AutoPlay Content item that was added to the Supported Declarations list.
  4. [自動再生コンテンツ] 宣言は、自動再生でコンテンツ イベントが発生したときに該当のアプリがオプションとして識別されます。An AutoPlay Content declaration identifies your app as an option when AutoPlay raises a content event. イベントは DVD やサム ドライブなどのボリューム デバイスのコンテンツに基づきます。The event is based on the content of a volume device such as a DVD or a thumb drive. 自動再生ではボリューム デバイスのコンテンツを調べて、発生させるコンテンツ イベントを決定します。AutoPlay examines the content of the volume device and determines which content event to raise. ボリュームのルートに DCIM、AVCHD、または PRIVATE achd フォルダーが含まれている場合 \ 、またはユーザーが有効になっている場合は、[自動再生] コントロールパネルの [メディアの種類ごとに実行する項目] を選択ShowPicturesOnArrivalますIf the root of the volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder, or if a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel and pictures are found in the root of the volume, then AutoPlay raises the ShowPicturesOnArrival event. [起動アクション] セクションで、最初の起動アクションに対して下記の表 1 の値を入力します。In the Launch Actions section, enter the values from Table 1 below for the first launch action.
  5. [自動再生コンテンツ] 項目の [起動アクション] セクションで、[新規追加] をクリックし、2 つ目の起動アクションを追加します。In the Launch Actions section for the AutoPlay Content item, click Add New to add a second launch action. 2 つ目の起動アクションについて、下記の表 2 の値を入力します。Enter the values in Table 2 below for the second launch action.
  6. [使用可能な宣言] ドロップダウン リストで、[ファイルの種類の関連付け] を選び、[追加] をクリックします。In the Available Declarations drop-down list, select File Type Associations and click Add. 新しい ファイルの種類の関連付け の宣言のプロパティで、[ 表示名 ] フィールドを [ 自動再生 ] に設定し、[画像の表示] と [ 名前 ] フィールドを [ image _ association1] に設定します。In the Properties of the new File Type Associations declaration, set the Display Name field to AutoPlay Copy or Show Images and the Name field to image_association1. [サポートされるファイルの種類] セクションで、[新規追加] をクリックします。In the Supported File Types section, click Add New. [ファイルの種類] フィールドを .jpg に設定します。Set the File Type field to .jpg. [サポートされるファイルの種類] セクションで、新しいファイルの関連付けの [ファイルの種類] フィールドを .png に設定します。In the Supported File Types section, set the File Type field of the new file association to .png. コンテンツ イベントの場合は、自動再生で、アプリに明示的に関連付けられていないファイルの種類はすべて除外されます。For content events, AutoPlay filters out any file types that are not explicitly associated with your app.
  7. マニフェスト ファイルを保存して閉じます。Save and close the manifest file.

表 1Table 1

設定Setting Value
動詞Verb showshow
アクションの表示名Action Display Name 画像を表示するShow Pictures
コンテンツ イベントContent Event ShowPicturesOnArrivalShowPicturesOnArrival

[アクションの表示名] 設定では、アプリの自動再生で表示される文字列を指定します。The Action Display Name setting identifies the string that AutoPlay displays for your app. [動詞] 設定では、選んだオプションでアプリに渡される値を指定します。The Verb setting identifies a value that is passed to your app for the selected option. 自動再生イベントに対して複数の起動アクションを指定し、 動詞 設定を使用して、ユーザーがアプリに対して選択したオプションを決定できます。You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. アプリに渡されたスタートアップイベント引数の verb プロパティをチェックすることで、ユーザーが選択したオプションを確認できます。You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 動詞の設定には任意の値を使用できます。ただし、 [開く] は予約済みです。You can use any value for the Verb setting except, open, which is reserved.

表 2Table 2

設定Setting Value
動詞Verb copycopy
アクションの表示名Action Display Name ライブラリに画像をコピーするCopy Pictures Into Library
コンテンツ イベントContent Event ShowPicturesOnArrivalShowPicturesOnArrival

手順 2: XAML UI を追加するStep 2: Add XAML UI

MainPage.xaml ファイルを開き、次の XAML を既定の <Grid> セクションに追加します。Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<TextBlock FontSize="18">File List</TextBlock>
<TextBlock x:Name="FilesBlock" HorizontalAlignment="Left" TextWrapping="Wrap"
           VerticalAlignment="Top" Margin="0,20,0,0" Height="280" Width="240" />
<Canvas x:Name="FilesCanvas" HorizontalAlignment="Left" VerticalAlignment="Top"
        Margin="260,20,0,0" Height="280" Width="100"/>

手順 3: 初期化コードを追加するStep 3: Add initialization code

この手順のコードでは、Verb プロパティの verb 値をチェックします。これは、OnFileActivated イベントの間にアプリに渡される起動引数の 1 つです。The code in this step checks the verb value in the Verb property, which is one of the startup arguments passed to the app during the OnFileActivated event. 次に、ユーザーが選んだオプションに関連するメソッドが呼び出されます。The code then calls a method related to the option that the user selected. カメラのメモリ イベントの場合、自動再生により、カメラ ストレージのルート フォルダーがアプリに渡されます。For the camera memory event, AutoPlay passes the root folder of the camera storage to the app. このフォルダーは Files プロパティの最初の要素から取得できます。You can retrieve this folder from the first element of the Files property.

App.xaml.cs ファイルを開いて、次のコードを App クラスに追加します。Open the App.xaml.cs file and add the following code to the App class.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
    if (args.Verb == "show")
    {
        Frame rootFrame = (Frame)Window.Current.Content;
        MainPage page = (MainPage)rootFrame.Content;

        // Call DisplayImages with root folder from camera storage.
        page.DisplayImages((Windows.Storage.StorageFolder)args.Files[0]);
    }

    if (args.Verb == "copy")
    {
        Frame rootFrame = (Frame)Window.Current.Content;
        MainPage page = (MainPage)rootFrame.Content;

        // Call CopyImages with root folder from camera storage.
        page.CopyImages((Windows.Storage.StorageFolder)args.Files[0]);
    }

    base.OnFileActivated(args);
}

メモ   DisplayImages次の CopyImages 手順では、メソッドとメソッドを追加します。Note  The DisplayImages and CopyImages methods are added in the following steps.

手順 4: 画像を表示するコードを追加するStep 4: Add code to display images

MainPage.xaml.cs ファイルで、次のコードを mainpage.xaml クラスに追加します。In the MainPage.xaml.cs file add the following code to the MainPage class.

async internal void DisplayImages(Windows.Storage.StorageFolder rootFolder)
{
    // Display images from first folder in root\DCIM.
    var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
    var folderList = await dcimFolder.GetFoldersAsync();
    var cameraFolder = folderList[0];
    var fileList = await cameraFolder.GetFilesAsync();
    for (int i = 0; i < fileList.Count; i++)
    {
        var file = (Windows.Storage.StorageFile)fileList[i];
        WriteMessageText(file.Name + "\n");
        DisplayImage(file, i);
    }
}

async private void DisplayImage(Windows.Storage.IStorageItem file, int index)
{
    try
    {
        var sFile = (Windows.Storage.StorageFile)file;
        Windows.Storage.Streams.IRandomAccessStream imageStream =
            await sFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
        Windows.UI.Xaml.Media.Imaging.BitmapImage imageBitmap =
            new Windows.UI.Xaml.Media.Imaging.BitmapImage();
        imageBitmap.SetSource(imageStream);
        var element = new Image();
        element.Source = imageBitmap;
        element.Height = 100;
        Thickness margin = new Thickness();
        margin.Top = index * 100;
        element.Margin = margin;
        FilesCanvas.Children.Add(element);
    }
    catch (Exception e)
    {
       WriteMessageText(e.Message + "\n");
    }
}

// Write a message to MessageBlock on the UI thread.
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;

private async void WriteMessageText(string message, bool overwrite = false)
{
    await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            if (overwrite)
                FilesBlock.Text = message;
            else
                FilesBlock.Text += message;
        });
}

手順 5: 画像をコピーするコードを追加するStep 5: Add code to copy images

MainPage.xaml.cs ファイルで、次のコードを mainpage.xaml クラスに追加します。In the MainPage.xaml.cs file add the following code to the MainPage class.

async internal void CopyImages(Windows.Storage.StorageFolder rootFolder)
{
    // Copy images from first folder in root\DCIM.
    var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
    var folderList = await dcimFolder.GetFoldersAsync();
    var cameraFolder = folderList[0];
    var fileList = await cameraFolder.GetFilesAsync();

    try
    {
        var folderName = "Images " + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
        Windows.Storage.StorageFolder imageFolder = await
            Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync(folderName);

        foreach (Windows.Storage.IStorageItem file in fileList)
        {
            CopyImage(file, imageFolder);
        }
    }
    catch (Exception e)
    {
        WriteMessageText("Failed to copy images.\n" + e.Message + "\n");
    }
}

async internal void CopyImage(Windows.Storage.IStorageItem file,
                              Windows.Storage.StorageFolder imageFolder)
{
    try
    {
        Windows.Storage.StorageFile sFile = (Windows.Storage.StorageFile)file;
        await sFile.CopyAsync(imageFolder, sFile.Name);
        WriteMessageText(sFile.Name + " copied.\n");
    }
    catch (Exception e)
    {
        WriteMessageText("Failed to copy file.\n" + e.Message + "\n");
    }
}

手順 6: アプリをビルドして実行するStep 6: Build and run the app

  1. F5 キーを押して、アプリを (デバッグ モードで) ビルドおよび展開します。Press F5 to build and deploy the app (in debug mode).
  2. アプリを実行するには、カメラのメモリ カードまたはカメラの他のストレージ デバイスを PC に挿入します。To run your app, insert a camera memory card or another storage device from a camera into your PC. 次に、自動再生のオプションの一覧から package.appxmanifest ファイルで指定したコンテンツ イベント オプションのいずれかを選びます。Then, select one of the content event options that you specified in your package.appxmanifest file from the AutoPlay list of options. このサンプル コードは、カメラのメモリ カードの DCIM フォルダーにある画像の表示またはコピーのみを行います。This sample code only displays or copies pictures in the DCIM folder of a camera memory card. カメラのメモリカードが AVCHD またはプライベート achd フォルダーに画像を格納している場合は \ 、それに応じてコードを更新する必要があります。If your camera memory card stores pictures in an AVCHD or PRIVATE\ACHD folder, you will need to update the code accordingly. メモ   カメラのメモリカードを持っていない場合、ルートにDcimという名前のフォルダーがあり、dcim フォルダーにイメージを含むサブフォルダーがある場合は、フラッシュドライブを使用できます。Note  If you don't have a camera memory card, you can use a flash drive if it has a folder named DCIM in the root and if the DCIM folder has a subfolder that contains images.

自動再生デバイスに登録するRegister for an AutoPlay device

アプリを自動再生デバイス イベントのオプションとして登録できます。You can register apps as options for AutoPlay device events. 自動再生デバイス イベントは、デバイスがコンピューターに接続されると発生します。AutoPlay device events are raised when a device is connected to a PC.

ここでは、PC にカメラが接続されたときに自動再生オプションとしてアプリを識別する方法を示します。Here we show how to identify your app as an AutoPlay option when a camera is connected to a PC. アプリは、 WPD \ ImageSourceAutoPlay イベントのハンドラーとして登録されます。The app registers as a handler for the WPD\ImageSourceAutoPlay event. これは、カメラなどのイメージング デバイスが MTP を使う ImageSource であることを通知するときに Windows ポータブル デバイス (WPD) システムによって生成される一般的なイベントです。This is a common event that the Windows Portable Device (WPD) system raises when cameras and other imaging devices notify it that they are an ImageSource using MTP. 詳しくは、「Windows ポータブル デバイス」をご覧ください。For more info, see Windows Portable Devices.

重要   Windows. ポータブルデバイスapi は、デスクトップデバイスファミリの一部です。Important  The Windows.Devices.Portable.StorageDevice APIs are part of the desktop device family. アプリでは、デスクトップ デバイス ファミリの Windows 10 デバイス (PC など) でのみこれらの API を使えます。Apps can use these APIs only on Windows 10 devices in the desktop device family, such as PCs.

 

手順 1: 新しいプロジェクトを作成し、自動再生宣言を追加するStep 1: Create a new project and add AutoPlay declarations

  1. Visual Studio を開き、[ファイル] メニューの [新しいプロジェクト] をクリックします。Open Visual Studio and select New Project from the File menu. Visual C# セクションの [Windows][空白のアプリ (ユニバーサル Windows)] を選びます。In the Visual C# section, under Windows, select Blank App (Universal Windows). アプリに Autoplaydevice _ カメラ という名前を指定し、[OK] をクリックし ます。Name the app AutoPlayDevice_Camera and click OK.
  2. [Package.appxmanifest] ファイルを開き、[機能] タブを選択します。[リムーバブル記憶域] 機能を選択します。Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage capability. これで、アプリはリムーバブル記憶域ボリューム デバイスとしてカメラ上のデータにアクセスできるようになります。This gives the app access to the data on the camera as a removable storage volume device.
  3. マニフェスト ファイルで [宣言] タブを選び、[使用可能な宣言] ドロップダウンから [自動再生デバイス] を選んで [追加] をクリックします。In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Device and click Add. [サポートされる宣言] ボックスの一覧に追加された新しい [自動再生デバイス] 項目を選びます。Select the new AutoPlay Device item that was added to the Supported Declarations list.
  4. [自動再生デバイス] 宣言では、自動再生で既知のイベントのデバイス イベントが発生したときに該当のアプリがオプションとして識別されます。An AutoPlay Device declaration identifies your app as an option when AutoPlay raises a device event for known events. [起動アクション] セクションで、最初の起動アクションに対して下記の表の値を入力します。In the Launch Actions section, enter the values in the table below for the first launch action.
  5. [使用可能な宣言] ドロップダウン リストで、[ファイルの種類の関連付け] を選び、[追加] をクリックします。In the Available Declarations drop-down list, select File Type Associations and click Add. 新しい ファイルの種類の関連付け の宣言のプロパティで、[ 表示名 ] フィールドを [ カメラからの画像を表示 する] に設定し、[ 名前 ] フィールドに「 camera _ association1」と入力します。In the Properties of the new File Type Associations declaration, set the Display Name field to Show Images from Camera and the Name field to camera_association1. [サポートされるファイルの種類] セクションで、[新規追加] をクリックします (必要な場合)。In the Supported File Types section, click Add New (if needed). [ファイルの種類] フィールドを .jpg に設定します。Set the File Type field to .jpg. [サポートされるファイルの種類] セクションで、[新規追加] をもう一度クリックします。In the Supported File Types section, click Add New again. 新しいファイルの関連付けの [ファイルの種類] フィールドを .png に設定します。Set the File Type field of the new file association to .png. コンテンツ イベントの場合は、自動再生で、アプリに明示的に関連付けられていないファイルの種類はすべて除外されます。For content events, AutoPlay filters out any file types that are not explicitly associated with your app.
  6. マニフェスト ファイルを保存して閉じます。Save and close the manifest file.
設定Setting Value
動詞Verb showshow
アクションの表示名Action Display Name 画像を表示するShow Pictures
コンテンツ イベントContent Event WPD \ imagesourceWPD\ImageSource

[アクションの表示名] 設定では、アプリの自動再生で表示される文字列を指定します。The Action Display Name setting identifies the string that AutoPlay displays for your app. [動詞] 設定では、選んだオプションでアプリに渡される値を指定します。The Verb setting identifies a value that is passed to your app for the selected option. 自動再生イベントに対して複数の起動アクションを指定し、 動詞 設定を使用して、ユーザーがアプリに対して選択したオプションを決定できます。You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. アプリに渡されたスタートアップイベント引数の verb プロパティをチェックすることで、ユーザーが選択したオプションを確認できます。You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 動詞の設定には任意の値を使用できます。ただし、 [開く] は予約済みです。You can use any value for the Verb setting except, open, which is reserved. 1 つのアプリで複数の動詞を使う例については、「自動再生コンテンツに登録する」をご覧ください。For an example of using multiple verbs in a single app, see Register for AutoPlay content.

手順 2: デスクトップ拡張機能に対するアセンブリ参照を追加するStep 2: Add assembly reference for the desktop extensions

Windows ポータブル デバイス上の記憶域にアクセスするために必要な API である Windows.Devices.Portable.StorageDevice は、デスクトップ デスクトップ デバイス ファミリ の一部です。The APIs required to access storage on a Windows Portable Device, Windows.Devices.Portable.StorageDevice, are part of the desktop desktop device family. つまり、この API を使うには特別なアセンブリが必要であり、その呼び出しはデスクトップ デバイス ファミリ (PC など) でのみ機能します。This means a special assembly is required to use the APIs and those calls will only work on a device in the desktop device family (such as a PC).

  1. ソリューション エクスプローラーで、[参照設定] を右クリックし、[参照の追加] をクリックします。In Solution Explorer, right click on References and then Add Reference....
  2. [ユニバーサル Windows] を展開し、[拡張機能] をクリックします。Expand Universal Windows and click Extensions.
  3. [Windows Desktop Extensions for the UWP] を選び、[OK] をクリックします。Then select Windows Desktop Extensions for the UWP and click OK.

手順 3: XAML UI を追加するStep 3: Add XAML UI

MainPage.xaml ファイルを開き、次の XAML を既定の <Grid> セクションに追加します。Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<StackPanel Orientation="Vertical" Margin="10,0,-10,0">
    <TextBlock FontSize="24">Device Information</TextBlock>
    <StackPanel Orientation="Horizontal">
        <TextBlock x:Name="DeviceInfoTextBlock" FontSize="18" Height="400" Width="400" VerticalAlignment="Top" />
        <ListView x:Name="ImagesList" HorizontalAlignment="Left" Height="400" VerticalAlignment="Top" Width="400">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <Image Source="{Binding Path=Source}" />
                        <TextBlock Text="{Binding Path=Name}" />
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapGrid Orientation="Horizontal" ItemHeight="100" ItemWidth="120"></WrapGrid>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    </StackPanel>
</StackPanel>

手順 4: アクティブ化コードを追加するStep 4: Add activation code

この手順のコードは、カメラのデバイス情報 ID を FromId メソッドに渡すことによって、カメラを StorageDevice として参照します。The code in this step references the camera as a StorageDevice by passing the device information Id of the camera to the FromId method. カメラのデバイス情報 ID を取得するには、まずイベント引数を DeviceActivatedEventArgs としてキャストし、次に DeviceInformationId プロパティから値を取得します。The device information Id of the camera is obtained by first casting the event arguments as DeviceActivatedEventArgs, and then getting the value from the DeviceInformationId property.

App.xaml.cs ファイルを開いて、次のコードを App クラスに追加します。Open the App.xaml.cs file and add the following code to the App class.

protected override void OnActivated(IActivatedEventArgs args)
{
   if (args.Kind == ActivationKind.Device)
   {
      Frame rootFrame = null;
      // Ensure that the current page exists and is activated
      if (Window.Current.Content == null)
      {
         rootFrame = new Frame();
         rootFrame.Navigate(typeof(MainPage));
         Window.Current.Content = rootFrame;
      }
      else
      {
         rootFrame = Window.Current.Content as Frame;
      }
      Window.Current.Activate();

      // Make sure the necessary APIs are present on the device
      bool storageDeviceAPIPresent =
      Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Devices.Portable.StorageDevice");

      if (storageDeviceAPIPresent)
      {
         // Reference the current page as type MainPage
         var mPage = rootFrame.Content as MainPage;

         // Cast the activated event args as DeviceActivatedEventArgs and show images
         var deviceArgs = args as DeviceActivatedEventArgs;
         if (deviceArgs != null)
         {
            mPage.ShowImages(Windows.Devices.Portable.StorageDevice.FromId(deviceArgs.DeviceInformationId));
         }
      }
      else
      {
         // Handle case where APIs are not present (when the device is not part of the desktop device family)
      }

   }

   base.OnActivated(args);
}

メモ   メソッドは、 ShowImages 次の手順で追加します。Note  The ShowImages method is added in the following step.

手順 5: デバイス情報を表示するコードを追加するStep 5: Add code to display device information

カメラに関する情報は、StorageDevice クラスのプロパティから取得できます。You can obtain information about the camera from the properties of the StorageDevice class. この手順のコードは、アプリの実行時にデバイス名などの情報をユーザーに表示します。The code in this step displays the device name and other info to the user when the app runs. 続いて、GetImageList メソッドと GetThumbnail メソッドを呼び出します。これらのメソッドは、カメラに格納されている画像のサムネイルを表示するために、次の手順で追加します。The code then calls the GetImageList and GetThumbnail methods, which you will add in the next step, to display thumbnails of the images stored on the camera

MainPage.xaml.cs ファイルで、次のコードを MainPage クラスに追加します。In the MainPage.xaml.cs file, add the following code to the MainPage class.

private Windows.Storage.StorageFolder rootFolder;

internal async void ShowImages(Windows.Storage.StorageFolder folder)
{
    DeviceInfoTextBlock.Text = "Display Name = " + folder.DisplayName + "\n";
    DeviceInfoTextBlock.Text += "Display Type =  " + folder.DisplayType + "\n";
    DeviceInfoTextBlock.Text += "FolderRelativeId = " + folder.FolderRelativeId + "\n";

    // Reference first folder of the device as the root
    rootFolder = (await folder.GetFoldersAsync())[0];
    var imageList = await GetImageList(rootFolder);

    foreach (Windows.Storage.StorageFile img in imageList)
    {
        ImagesList.Items.Add(await GetThumbnail(img));
    }
}

メモ   GetImageList次の GetThumbnail 手順では、メソッドとメソッドを追加します。Note  The GetImageList and GetThumbnail methods are added in the following step.

手順 6: 画像を表示するコードを追加するStep 6: Add code to display images

この手順のコードは、カメラに格納されている画像のサムネイルを表示します。The code in this step displays thumbnails of the images stored on the camera. このコードは、カメラの非同期呼び出しを行ってサムネイル イメージを取得します。The code makes asynchronous calls to the camera to get the thumbnail image. ただし、次の非同期呼び出しは、前の非同期呼び出しが完了するまで行われません。However, the next asynchronous call doesn't occur until the previous asynchronous call completes. これにより、カメラに対する要求が一度に 1 つだけ実行されるようになります。This ensures that only one request is made to the camera at a time.

MainPage.xaml.cs ファイルで、次のコードを MainPage クラスに追加します。In the MainPage.xaml.cs file, add the following code to the MainPage class.

async private System.Threading.Tasks.Task<List<Windows.Storage.StorageFile>> GetImageList(Windows.Storage.StorageFolder folder)
{
    var result = await folder.GetFilesAsync();
    var subFolders = await folder.GetFoldersAsync();
    foreach (Windows.Storage.StorageFolder f in subFolders)
        result = result.Union(await GetImageList(f)).ToList();

    return (from f in result orderby f.Name select f).ToList();
}

async private System.Threading.Tasks.Task<Image> GetThumbnail(Windows.Storage.StorageFile img)
{
    // Get the thumbnail to display
    var thumbnail = await img.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.SingleItem,
                                                100,
                                                Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);

    // Create a XAML Image object bind to on the display page
    var result = new Image();
    result.Height = thumbnail.OriginalHeight;
    result.Width = thumbnail.OriginalWidth;
    result.Name = img.Name;
    var imageBitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
    imageBitmap.SetSource(thumbnail);
    result.Source = imageBitmap;

    return result;
}

手順 7: アプリをビルドして実行するStep 7: Build and run the app

  1. F5 キーを押して、アプリを (デバッグ モードで) ビルドおよび展開します。Press F5 to build and deploy the app (in debug mode).
  2. アプリを実行するには、コンピューターにカメラを接続します。To run your app, connect a camera to your machine. 次に、自動再生オプションの一覧からアプリを選びます。Then select the app from the AutoPlay list of options. メモ   すべてのカメラがWPD \ imagesource自動再生デバイスイベント用にアドバタイズしているわけではありません。Note  Not all cameras advertise for the WPD\ImageSource AutoPlay device event.

リムーバブル記憶域を構成するConfigure removable storage

メモリ カードやサム ドライブなどのボリューム デバイスが PC に接続されたとき、そのボリューム デバイスを自動再生デバイスとして識別することができます。You can identify a volume device such as a memory card or thumb drive as an AutoPlay device when the volume device is connected to a PC. これは、特定のアプリを自動再生に関連付けて、ボリューム デバイスのユーザーに提示する場合などに活用できます。This is especially useful when you want to associate a specific app for AutoPlay to present to the user for your volume device.

ここでは、自動再生デバイスとしてボリューム デバイスを識別する方法を示します。Here we show how to identify your volume device as an AutoPlay device.

ボリューム デバイスを自動再生デバイスとして識別するには、デバイスのルート ドライブに autorun.inf ファイルを追加します。To identify your volume device as an AutoPlay device, add an autorun.inf file to the root drive of your device. そして、autorun.inf ファイルの AutoRun セクションに CustomEvent キーを追加します。In the autorun.inf file, add a CustomEvent key to the AutoRun section. PC にボリューム デバイスが接続されると、自動再生が autorun.inf ファイルを検索し、ボリュームをデバイスとして扱います。When your volume device connects to a PC, AutoPlay will find the autorun.inf file and treat your volume as a device. 自動再生は、CustomEvent キーに指定された名前を使って自動再生イベントを作成します。AutoPlay will create an AutoPlay event by using the name that you supplied for the CustomEvent key. それからアプリを作成し、その自動再生イベントのハンドラーとしてアプリを登録できます。You can then create an app and register the app as a handler for that AutoPlay event. PC にデバイスが接続されると、自動再生が、ボリューム デバイスのハンドラーとしてアプリを表示します。When the device is connected to the PC, AutoPlay will show your app as a handler for your volume device. autorun.inf ファイルについて詳しくは、「Autorun.inf エントリ」をご覧ください。For more info on autorun.inf files, see autorun.inf entries.

手順 1: autorun.inf ファイルを作成するStep 1: Create an autorun.inf file

ボリューム デバイスのルート ドライブに autorun.inf という名前のファイルを追加します。In the root drive of your volume device, add a file named autorun.inf. autorun.inf ファイルを開き、次のテキストを追加します。Open the autorun.inf file and add the following text.

[AutoRun]
CustomEvent=AutoPlayCustomEventQuickstart

手順 2: 新しいプロジェクトを作成し、自動再生宣言を追加するStep 2: Create a new project and add AutoPlay declarations

  1. Visual Studio を開き、[ファイル] メニューの [新しいプロジェクト] をクリックします。Open Visual Studio and select New Project from the File menu. Visual C# セクションの [Windows][空白のアプリ (ユニバーサル Windows)] を選びます。In the Visual C# section, under Windows, select Blank App (Universal Windows). アプリに AutoPlayCustomEvent という名前を付け、[OK] をクリックします。Name the application AutoPlayCustomEvent and click OK.

  2. [Package.appxmanifest] ファイルを開き、[機能] タブを選択します。[リムーバブル記憶域] 機能を選択します。Open the Package.appxmanifest file and select the Capabilities tab. Select the Removable Storage capability. これで、アプリはリムーバブル記憶域デバイス上のファイルとフォルダーにアクセスできるようになります。This gives the app access to the files and folders on removable storage devices.

  3. マニフェスト ファイルで [宣言] タブを選び、[使用可能な宣言] ドロップダウンから [自動再生コンテンツ] を選んで [追加] をクリックします。In the manifest file, select the Declarations tab. In the Available Declarations drop-down list, select AutoPlay Content and click Add. [サポートされる宣言] ボックスの一覧に追加された新しい [自動再生コンテンツ] 項目を選びます。Select the new AutoPlay Content item that was added to the Supported Declarations list.

    メモ   または、カスタム自動再生イベントの自動再生デバイス宣言を追加することもできます。Note  Alternatively, you can also choose to add an AutoPlay Device declaration for your custom AutoPlay event.  

  4. [自動再生コンテンツ] イベント宣言の [起動アクション] セクションで、最初の起動アクションについて下記の表の値を入力します。In the Launch Actions section for your AutoPlay Content event declaration, enter the values in the table below for the first launch action.

  5. [使用可能な宣言] ドロップダウン リストで、[ファイルの種類の関連付け] を選び、[追加] をクリックします。In the Available Declarations drop-down list, select File Type Associations and click Add. 新しい ファイルの種類の関連付け の宣言のプロパティで、[ 表示名 ] フィールドを「 Ms ファイル 」に、 Name フィールドを「 ms _ association」に設定します。In the Properties of the new File Type Associations declaration, set the Display Name field to Show .ms Files and the Name field to ms_association. [サポートされるファイルの種類] セクションで、[新規追加] をクリックします。In the Supported File Types section, click Add New. [ファイルの種類] フィールドを .ms に設定します。Set the File Type field to .ms. コンテンツ イベントの場合は、自動再生で、アプリに明示的に関連付けられていないファイルの種類はすべて除外されます。For content events, AutoPlay filters out any file types that aren't explicitly associated with your app.

  6. マニフェスト ファイルを保存して閉じます。Save and close the manifest file.

設定Setting Value
動詞Verb showshow
アクションの表示名Action Display Name ファイルを表示するShow Files
コンテンツ イベントContent Event AutoPlayCustomEventQuickstartAutoPlayCustomEventQuickstart

[コンテンツ イベント] の値は、autorun.inf ファイルの CustomEvent キーに指定したテキストです。The Content Event value is the text that you supplied for the CustomEvent key in your autorun.inf file. [アクションの表示名] 設定では、アプリの自動再生で表示される文字列を指定します。The Action Display Name setting identifies the string that AutoPlay displays for your app. [動詞] 設定では、選んだオプションでアプリに渡される値を指定します。The Verb setting identifies a value that is passed to your app for the selected option. 自動再生イベントに対して複数の起動アクションを指定し、 動詞 設定を使用して、ユーザーがアプリに対して選択したオプションを決定できます。You can specify multiple launch actions for an AutoPlay event and use the Verb setting to determine which option a user has selected for your app. アプリに渡されたスタートアップイベント引数の verb プロパティをチェックすることで、ユーザーが選択したオプションを確認できます。You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 動詞の設定には任意の値を使用できます。ただし、 [開く] は予約済みです。You can use any value for the Verb setting except, open, which is reserved.

手順 3: XAML UI を追加するStep 3: Add XAML UI

MainPage.xaml ファイルを開き、次の XAML を既定の <Grid> セクションに追加します。Open the MainPage.xaml file and add the following XAML to the default <Grid> section.

<StackPanel Orientation="Vertical">
    <TextBlock FontSize="28" Margin="10,0,800,0">Files</TextBlock>
    <TextBlock x:Name="FilesBlock" FontSize="22" Height="600" Margin="10,0,800,0" />
</StackPanel>

手順 4: アクティブ化コードを追加するStep 4: Add activation code

この手順のコードは、ボリューム デバイスのルート ドライブにあるフォルダーを表示するメソッドを呼び出します。The code in this step calls a method to display the folders in the root drive of your volume device. 自動再生コンテンツ イベントの場合、自動再生により、OnFileActivated イベント中にアプリに渡された起動引数でストレージ デバイスのルート フォルダーが渡されます。For the AutoPlay content events, AutoPlay passes the root folder of the storage device in the startup arguments passed to the application during the OnFileActivated event. このフォルダーは Files プロパティの最初の要素から取得できます。You can retrieve this folder from the first element of the Files property.

App.xaml.cs ファイルを開いて、次のコードを App クラスに追加します。Open the App.xaml.cs file and add the following code to the App class.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
    var rootFrame = Window.Current.Content as Frame;
    var page = rootFrame.Content as MainPage;

    // Call ShowFolders with root folder from device storage.
    page.DisplayFiles(args.Files[0] as Windows.Storage.StorageFolder);

    base.OnFileActivated(args);
}

メモ   メソッドは、 DisplayFiles 次の手順で追加します。Note  The DisplayFiles method is added in the following step.

 

手順 5: フォルダーを表示するコードを追加するStep 5: Add code to display folders

MainPage.xaml.cs ファイルで、次のコードを mainpage.xaml クラスに追加します。In the MainPage.xaml.cs file add the following code to the MainPage class.

internal async void DisplayFiles(Windows.Storage.StorageFolder folder)
{
    foreach (Windows.Storage.StorageFile f in await ReadFiles(folder, ".ms"))
    {
        FilesBlock.Text += "  " + f.Name + "\n";
    }
}

internal async System.Threading.Tasks.Task<IReadOnlyList<Windows.Storage.StorageFile>>
    ReadFiles(Windows.Storage.StorageFolder folder, string fileExtension)
{
    var options = new Windows.Storage.Search.QueryOptions();
    options.FileTypeFilter.Add(fileExtension);
    var query = folder.CreateFileQueryWithOptions(options);
    var files = await query.GetFilesAsync();

    return files;
}

手順 6: アプリをビルドして実行するStep 6: Build and run the qpp

  1. F5 キーを押して、アプリを (デバッグ モードで) ビルドおよび展開します。Press F5 to build and deploy the app (in debug mode).
  2. アプリを実行するには、メモリ カードまたは他のストレージ デバイスを PC に挿入します。To run your app, insert a memory card or another storage device into your PC. そして、自動再生ハンドラー オプションの一覧からアプリを選びます。Then select your app from the list of AutoPlay handler options.

自動再生イベント リファレンスAutoPlay event reference

自動再生システムを使うと、さまざまなデバイスやボリューム (ディスク) の到着イベントにアプリを登録できます。The AutoPlay system allows apps to register for a variety of device and volume (disk) arrival events. 自動再生コンテンツ イベントに登録するには、パッケージ マニフェストで [リムーバブル記憶域] 機能を有効にする必要があります。To register for AutoPlay content events, you must enable the Removable Storage capability in your package manifest. 次の表で、登録できるイベントと、それらのイベントが発生するタイミングについて説明します。This table shows the events that you can register for and when they are raised.

通信の種類Scenario EventEvent 説明Description
カメラで写真を使うUsing photos on a Camera Wpd\ imagesourceWPD\ImageSource Windows ポータブル デバイスとして指定されているカメラに対して発生し、ImageSource 機能を提供します。Raised for cameras that are identified as Windows Portable Devices and offer the ImageSource capability.
オーディオ プレーヤーで音楽を使うUsing music on an audio player WPD\AudioSourceWPD\AudioSource Windows ポータブル デバイスとして指定されているメディア プレーヤーに対して発生し、AudioSource 機能を提供します。Raised for media players that are identified as Windows Portable Devices and offer the AudioSource capability.
ビデオ カメラでビデオを使うUsing videos on a video camera WPD\VideoSourceWPD\VideoSource Windows ポータブル デバイスとして指定されているビデオ カメラに対して発生し、VideoSource 機能を提供します。Raised for video cameras that are identified as Windows Portable Devices and offer the VideoSource capability.
接続されているフラッシュ ドライブまたは外部ハード ドライブにアクセスするAccess a connected flash drive or external hard drive StorageOnArrivalStorageOnArrival ドライブまたはボリュームが PC 接続されると発生します。Raised when a drive or volume is connected to the PC. ドライブまたはボリュームのディスクのルートに DCIM、AVCHD、または PRIVATE\ACHD フォルダーが含まれている場合、代わりに ShowPicturesOnArrival イベントが発生します。If the drive or volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder in the root of the disk, the ShowPicturesOnArrival event is raised instead.
大容量記憶装置 (レガシ) の写真を使うUsing photos from mass storage (legacy) ShowPicturesOnArrivalShowPicturesOnArrival ドライブまたはボリュームのディスクのルートに DCIM、AVCHD、または PRIVATE\ACHD フォルダーが含まれている場合に発生します。Raised when a drive or volume contains a DCIM, AVCHD, or PRIVATE\ACHD folder in the root of the disk. 自動再生コントロール パネルで [各メディア タイプの処理方法を選択する] を有効にしている場合は、自動再生によって PC に接続されているボリュームが調べられ、ディスク上のコンテンツの種類が確認されます。IIf a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. 画像が見つかると、ShowPicturesOnArrival が発生します。When pictures are found, ShowPicturesOnArrival is raised.
近接共有 (タップして送信) で写真を受信するReceiving photos with Proximity Sharing (tap and send) ShowPicturesOnArrivalShowPicturesOnArrival コンテンツを近接通信を使って送信 (タップして送信) すると、自動再生によって共有ファイルが調べられ、コンテンツの種類が確認されます。When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. 画像が見つかった場合、ShowPicturesOnArrival が発生します。If pictures are found, ShowPicturesOnArrival is raised.
大容量記憶装置 (レガシ) の音楽を使うUsing music from mass storage (legacy) PlayMusicFilesOnArrivalPlayMusicFilesOnArrival ユーザーが有効にした場合、[自動再生] コントロールパネルの [ メディアの種類ごとの操作を選択 する] を選択すると、自動再生により、PC に接続されているボリュームが調べられ、ディスク上のコンテンツの種類が決定されます。If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. 音楽ファイルが見つかると、PlayMusicFilesOnArrival が発生します。When music files are found, PlayMusicFilesOnArrival is raised.
近接共有 (タップして送信) で音楽を受信するReceiving music with Proximity Sharing (tap and send) PlayMusicFilesOnArrivalPlayMusicFilesOnArrival コンテンツを近接通信を使って送信 (タップして送信) すると、自動再生によって共有ファイルが調べられ、コンテンツの種類が確認されます。When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. 音楽ファイルが見つかった場合、PlayMusicFilesOnArrival が発生します。If music files are found, PlayMusicFilesOnArrival is raised.
大容量記憶装置 (レガシ) のビデオを使うUsing videos from mass storage (legacy) PlayVideoFilesOnArrivalPlayVideoFilesOnArrival ユーザーが有効にした場合、[自動再生] コントロールパネルの [ メディアの種類ごとの操作を選択 する] を選択すると、自動再生により、PC に接続されているボリュームが調べられ、ディスク上のコンテンツの種類が決定されます。If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. ビデオ ファイルが見つかると、PlayVideoFilesOnArrival が発生します。When video files are found, PlayVideoFilesOnArrival is raised.
近接共有 (タップして送信) でビデオを受信するReceiving videos with Proximity Sharing (tap and send) PlayVideoFilesOnArrivalPlayVideoFilesOnArrival コンテンツを近接通信を使って送信 (タップして送信) すると、自動再生によって共有ファイルが調べられ、コンテンツの種類が確認されます。When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. ビデオ ファイルが見つかった場合、PlayVideoFilesOnArrival が発生します。If video files are found, PlayVideoFilesOnArrival is raised.
接続先デバイスの混在したファイルのセットを処理するHandling mixed sets of files from a connected device MixedContentOnArrivalMixedContentOnArrival ユーザーが有効にした場合、[自動再生] コントロールパネルの [ メディアの種類ごとの操作を選択 する] を選択すると、自動再生により、PC に接続されているボリュームが調べられ、ディスク上のコンテンツの種類が決定されます。If a user has enabled Choose what to do with each type of media in the AutoPlay Control Panel, AutoPlay will examine a volume connected to the PC to determine the type of content on the disk. 特定のコンテンツの種類が見つかると (画像など)、MixedContentOnArrival が発生します。If no specific content type is found (for example, pictures), MixedContentOnArrival is raised.
近接共有 (タップして送信) で混在したファイルのセットを処理するHandling mixed sets of files with Proximity Sharing (tap and send) MixedContentOnArrivalMixedContentOnArrival コンテンツを近接通信を使って送信 (タップして送信) すると、自動再生によって共有ファイルが調べられ、コンテンツの種類が確認されます。When users send content with using proximity (tap and send), AutoPlay will examine the shared files to determine the type of content. 特定のコンテンツの種類が見つかると (画像など)、MixedContentOnArrival が発生します。If no specific content type is found (for example, pictures), MixedContentOnArrival is raised.
光学式メディアのビデオを処理するHandle video from optical media PlayDVDMovieOnArrivalPlayDVDMovieOnArrival
PlayBluRayOnArrivalPlayBluRayOnArrival
PlayVideoCDMovieOnArrivalPlayVideoCDMovieOnArrival
PlaySuperVideoCDMovieOnArrivalPlaySuperVideoCDMovieOnArrival
光学式ドライブにディスクが挿入されると、自動再生はファイルを確認して、コンテンツの種類を決定します。When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. ビデオのファイルが見つかった場合は、光学ディスクの種類に対応するイベントが発生します。When video files are found, the event corresponding to the type of optical disk is raised.
光学式メディアの音楽を処理するHandle music from optical media PlayCDAudioOnArrivalPlayCDAudioOnArrival
PlayDVDAudioOnArrivalPlayDVDAudioOnArrival
光学式ドライブにディスクが挿入されると、自動再生はファイルを確認して、コンテンツの種類を決定します。When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. 音楽のファイルが見つかった場合は、光学ディスクの種類に対応するイベントが発生します。When music files are found, the event corresponding to the type of optical disk is raised.
エンハンス ディスクを再生するPlay enhanced disks PlayEnhancedCDOnArrivalPlayEnhancedCDOnArrival
PlayEnhancedDVDOnArrivalPlayEnhancedDVDOnArrival
光学式ドライブにディスクが挿入されると、自動再生はファイルを確認して、コンテンツの種類を決定します。When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. エンハンス ディスクが見つかった場合は、光学ディスクの種類に対応するイベントが発生します。When an enhanced disk is found, the event corresponding to the type of optical disk is raised.
書き込み可能な光学式ディスクを処理するHandle writeable optical disks HandleCDBurningOnArrivalHandleCDBurningOnArrival
HandleDVDBurningOnArrivalHandleDVDBurningOnArrival
HandleBDBurningOnArrivalHandleBDBurningOnArrival
光学式ドライブにディスクが挿入されると、自動再生はファイルを確認して、コンテンツの種類を決定します。When a disk is inserted into the optical drive, AutoPlay will examine the files to determine the type of content. 書き込み可能なディスクが見つかった場合は、光学ディスクの種類に対応するイベントが発生します。When a writable disk is found, the event corresponding to the type of optical disk is raised.
他のデバイスまたはボリュームの接続を処理するHandle any other device or volume connection UnknownContentOnArrivalUnknownContentOnArrival 自動再生コンテンツ イベントのいずれとも一致しないコンテンツが見つかった場合にすべてのイベントで発生します。Raised for all events in case content is found that does not match any of the AutoPlay content events. このイベントを使うことはお勧めできません。Use of this event is not recommended. 処理できる特定の自動再生イベントにのみアプリを登録する必要があります。You should only register your application for the specific AutoPlay events that it can handle.

ボリュームの autorun.inf ファイルの CustomEvent エントリを使って、自動再生でカスタムの自動再生コンテンツ イベントが発生することを指定できます。You can specify that AutoPlay raise a custom AutoPlay Content event using the CustomEvent entry in the autorun.inf file for a volume. 詳しくは、「Autorun.inf エントリ」をご覧ください。For more info, see Autorun.inf entries.

自動再生コンテンツまたは自動再生デバイスのイベント ハンドラーとしてアプリを登録するには、アプリの package.appxmanifest ファイルに拡張機能を追加します。You can register your app as an AutoPlay Content or AutoPlay Device event handler by adding an extension to the package.appxmanifest file for your app. Visual Studio を使う場合は、[宣言] タブで [自動再生コンテンツ] または [自動再生デバイス] の宣言を追加します。アプリの package.appxmanifest ファイルを直接編集する場合は、パッケージ マニフェストに拡張機能 要素を追加し、カテゴリ として windows.autoPlayContent または windows.autoPlayDevice を指定します。If you are using Visual Studio, you can add an AutoPlay Content or AutoPlay Device declaration in the Declarations tab. If you are editing the package.appxmanifest file for your app directly, add an Extension element to your package manifest that specifies either windows.autoPlayContent or windows.autoPlayDevice as the Category. たとえば、次のパッケージ マニフェストのエントリでは、自動再生コンテンツ拡張機能を追加して、アプリを ShowPicturesOnArrival イベントのハンドラーとして登録しています。For example, the following entry in the package manifest adds an AutoPlay Content extension to register the app as a handler for the ShowPicturesOnArrival event.

  <Applications>
    <Application Id="AutoPlayHandlerSample.App">
      <Extensions>
        <Extension Category="windows.autoPlayContent">
          <AutoPlayContent>
            <LaunchAction Verb="show" ActionDisplayName="Show Pictures"
                          ContentEvent="ShowPicturesOnArrival" />
          </AutoPlayContent>
        </Extension>
      </Extensions>
    </Application>
  </Applications>