Запуск приложения с помощью автозапускаAuto-launching with AutoPlay

Автозапуск можно использовать для предоставления приложения в качестве варианта, когда пользователь подключает устройство к компьютеру.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. Автозапуск также можно использовать, чтобы предложить свое приложение в качестве одного из открытых для общего доступа, при котором пользователи обмениваются файлами между двумя компьютерами с помощью близкого взаимодействия (касания).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-диск.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.

Автозапуск также создает события содержимого для содержимого, которое совместно используется на компьютерах с помощью близкого взаимодействия (касания).AutoPlay also raises content events for content shared between PCs using proximity (tapping). Вы можете использовать действия и код, приведенные в этом разделе, для обработки файлов, совместно используемых на компьютерах при помощи близкого взаимодействия.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

  Когда обмен файлами обеспечивается с помощью бесконтактного взаимодействия, свойство Files объекта FileActivatedEventArgs содержит ссылку на корневую папку, в которой находятся все файлы, открытые для общего доступа.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. Выберите новый элемент AutoPlay Content (Автозапуск содержимого), добавленный к списку Supported Declarations (Поддерживаемые объявления).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. Если корневой каталог тома содержит папку ДЦИМ, АВЧД или PRIVATE \ ачд или если пользователь включил команду выбрать, что делать с каждым из типов носителей на панели управления автозапуска, а рисунки находятся в корневом каталоге тома, автозапуск вызовет событие шовпиктуресонарривал .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. В разделе Действия при запуске для элемента Автозапуск содержимого щелкните Добавить, чтобы добавить второе действие при запуске.In the Launch Actions section for the AutoPlay Content item, click Add New to add a second launch action. Введите значения в приведенной ниже таблице 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

Параметр Action Display Name определяет строку, отображаемую автозапуском для приложения.The Action Display Name setting identifies the string that AutoPlay displays for your app. Параметр Verb определяет значение, передаваемое приложению для выбранного варианта.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 аргументов события Startup, переданных в приложение.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Можно использовать любое значение для параметра verb , за исключением открытого, который зарезервирован.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. Добавление пользовательского интерфейса XAMLStep 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, которое является одним из аргументов запуска, передаваемых приложению во время события OnFileActivated.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.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.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. Чтобы запустить приложение, вставьте карту памяти камеры или другое запоминающее устройство из камеры в компьютер.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. Если карта памяти камеры хранит изображения в папке АВЧД или PRIVATE \ ачд, необходимо соответствующим образом обновить код.If your camera memory card stores pictures in an AVCHD or PRIVATE\ACHD folder, you will need to update the code accordingly. Примечание    . Если у вас нет карты памяти камеры, можно использовать флэш-накопитель, если в корне есть папка с именем дЦим , а в папке дЦим есть вложенная папка, содержащая изображения.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 устройства возникают при подключении устройства к компьютеру.AutoPlay device events are raised when a device is connected to a PC.

В этом разделе показано, как определить приложение в качестве варианта AutoPlay при подключении камеры к компьютеру.Here we show how to identify your app as an AutoPlay option when a camera is connected to a PC. Приложение регистрируется в качестве обработчика для события \ имажесаурцеаутоплай WPD .The app registers as a handler for the WPD\ImageSourceAutoPlay event. Это распространенное событие, которое вызывается системой переносного устройства Windows (WPD) при уведомлении камерами или другими устройствами обработки изображений о том, что они являются источниками изображений (ImageSource), использующими MTP.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.

Важно!    Интерфейсы API Windows. Devices. Portable. сторажедевице являются частью семейства настольных устройств.Important  The Windows.Devices.Portable.StorageDevice APIs are part of the desktop device family. Приложения могут использовать эти API только на устройствах Windows 10 из семейства настольных устройств, например компьютерах.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). Присвойте приложению имя _ Camera аутоплайдевице и нажмите кнопку ОК.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. Выберите новый элемент AutoPlay Device (Автозапуск устройства), добавленный к списку Supported Declarations (Поддерживаемые объявления).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. В разделе Действия при запуске введите значения в приведенной ниже таблице 1 для первого действия при запуске.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. В свойствах объявления сопоставления нового типа файлов задайте для поля Отображаемое имя значение Показывать изображения с камеры , а в поле имя — ** _ 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 \IMAGESOURCE WPDWPD\ImageSource

Параметр Action Display Name определяет строку, отображаемую автозапуском для приложения.The Action Display Name setting identifies the string that AutoPlay displays for your app. Параметр Verb определяет значение, передаваемое приложению для выбранного варианта.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 аргументов события Startup, переданных в приложение.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Можно использовать любое значение для параметра verb , за исключением открытого, который зарезервирован.You can use any value for the Verb setting except, open, which is reserved. Пример использования нескольких команд в одном приложении см. в разделе Регистрация для автозапуска содержимого.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

API, необходимые для получения доступа к хранилищу на переносном устройстве Windows, 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 требуется специальная сборка и что эти вызовы будут работать только на устройстве из семейства настольных устройств (например, компьютере).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 (Расширения Windows Desktop для UWP) и нажмите ОК.Then select Windows Desktop Extensions for the UWP and click OK.

Шаг 3. Добавление пользовательского интерфейса XAMLStep 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

Код на этом этапе ссылается на камеру как на StorageDevice путем передачи идентификатора сведений устройства методу FromId.The code in this step references the camera as a StorageDevice by passing the device information Id of the camera to the FromId method. Идентификатор сведений устройства можно получить путем отправки аргументов события как 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. Это гарантирует, что единовременно к камере осуществляется только один запрос.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

Устройство тома, например карту памяти или флэш-накопитель, можно определить как устройство AutoPlay, когда устройство тома подключается к компьютеру.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.

Чтобы определить устройство тома в качестве устройства AutoPlay, добавьте файл 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 добавьте ключ CustomEvent в раздел AutoRun.In the autorun.inf file, add a CustomEvent key to the AutoRun section. Когда устройство тома подключится к компьютеру, функция AutoPlay найдет файл autorun.inf и будет рассматривать том как устройство.When your volume device connects to a PC, AutoPlay will find the autorun.inf file and treat your volume as a device. AutoPlay создаст событие AutoPlay с помощью имени, которое вы ввели для ключа CustomEvent.AutoPlay will create an AutoPlay event by using the name that you supplied for the CustomEvent key. Затем можно создать приложение и зарегистрировать его в качестве обработчика для события AutoPlay.You can then create an app and register the app as a handler for that AutoPlay event. При подключении устройства к компьютеру AutoPlay отобразит ваше приложение как обработчик для устройства тома.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.infStep 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. Выберите новый элемент AutoPlay Content (Автозапуск содержимого), добавленный к списку Supported Declarations (Поддерживаемые объявления).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 и поле имя для ** _ связи MS**.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

Значение Событие содержимого представляет собой текст, который вы указали для ключа CustomEvent в файле autorun.inf.The Content Event value is the text that you supplied for the CustomEvent key in your autorun.inf file. Параметр Action Display Name определяет строку, отображаемую автозапуском для приложения.The Action Display Name setting identifies the string that AutoPlay displays for your app. Параметр Verb определяет значение, передаваемое приложению для выбранного варианта.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 аргументов события Startup, переданных в приложение.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. Можно использовать любое значение для параметра verb , за исключением открытого, который зарезервирован.You can use any value for the Verb setting except, open, which is reserved.

Шаг 3. Добавление пользовательского интерфейса XAMLStep 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.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. Для запуска приложения вставьте карту памяти или другое запоминающее устройство в компьютер.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 СобытиеEvent Описание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 Создается, когда к компьютеру подключается диск или том.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. Если пользователь включил параметр Выберите, что требуется сделать с каждым из типов носителей в окне "Автозапуск (Панель управления)", то программа автозапуска проверяет подключенный к компьютеру том, чтобы определить тип содержимого на диске.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 Если пользователь включил команду выбрать действие для каждого типа носителя на панели управления автозапуска, автозапуск проверит том, подключенный к компьютеру, чтобы определить тип содержимого на диске.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 Если пользователь включил команду выбрать действие для каждого типа носителя на панели управления автозапуска, автозапуск проверит том, подключенный к компьютеру, чтобы определить тип содержимого на диске.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 Если пользователь включил команду выбрать действие для каждого типа носителя на панели управления автозапуска, автозапуск проверит том, подключенный к компьютеру, чтобы определить тип содержимого на диске.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.

Вы можете настроить автозапуск таким образом, чтобы пользовательское событие автозапуска содержимого создавалось с помощью записи CustomEvent в файле autorun.inf для тома.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>