자동 실행을 사용한 자동 시작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. 사용자가 근접 (탭)을 사용 하 여 두 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 content 이벤트를 자동으로 실행 하도록 앱을 등록 했습니다.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 로 만들고 확인을 클릭 합니다.Name the app AutoPlayDisplayOrCopyImages and click OK.
  2. Appxmanifest.xml 파일을 열고 기능 탭을 선택 합니다. 이동식 저장소그림 라이브러리 기능을 선택 합니다.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. 자동 재생 콘텐츠 항목에 대 한 시작 작업 섹션에서 새로 추가 를 클릭 하 여 두 번째 시작 작업을 추가 합니다.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 표시show
작업 표시 이름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. 앱에 전달 된 startup 이벤트 인수의 verb 속성을 확인 하 여 사용자가 선택한 옵션을 확인할 수 있습니다.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 을 사용 하는 경우를 제외 하 고는 예약 된 open을 사용 하 여 동사 설정에 모든 값을 사용할 수 있습니다.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을 추가 합니다 < > .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

이 단계의 코드는 Onfileactivated 된 이벤트 중에 앱에 전달 된 시작 인수 중 하나인 verb 속성의 동사 값을 확인 합니다.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);
}

참고    DisplayImagesCopyImages 메서드는 다음 단계에서 추가 됩니다.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. 앱을 실행 하려면 카메라의 카메라 메모리 카드 또는 다른 저장 장치를 PC에 삽입 합니다.To run your app, insert a camera memory card or another storage device from a camera into your PC. 그런 다음 옵션의 자동 실행 목록에서 appxmanifest.xml 파일에 지정한 내용 이벤트 옵션 중 하나를 선택 합니다.Then, select one of the content event options that you specified in your package.appxmanifest file from the AutoPlay list of options. 이 샘플 코드는 카메라 메모리 카드의 ECIM 폴더에 있는 사진만 표시 하거나 복사 합니다.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. 참고    카메라 메모리 카드가 없는 경우 루트에 이름이 Ecim 인 폴더가 있고, d cim 폴더에 이미지를 포함 하는 하위 폴더가 있는 경우 플래시 드라이브를 사용할 수 있습니다.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. 장치가 PC에 연결 된 경우 장치 이벤트가 자동 으로 발생 합니다.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를 알릴 때 WPD (Windows 휴대용 장치) 시스템에서 발생 하는 일반적인 이벤트입니다.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. storagedevice api는 데스크톱 장치 제품군의 일부입니다.Important  The Windows.Devices.Portable.StorageDevice APIs are part of the desktop device family. 앱은 Pc와 같은 데스크톱 장치 제품군의 Windows 10 장치 에서만 이러한 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 _ Camera 로, 확인을 클릭 합니다.Name the app AutoPlayDevice_Camera and click OK.
  2. Appxmanifest.xml 파일을 열고 기능 탭을 선택 합니다. 이동식 저장소 기능을 선택 합니다.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 표시show
작업 표시 이름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. 앱에 전달 된 startup 이벤트 인수의 verb 속성을 확인 하 여 사용자가 선택한 옵션을 확인할 수 있습니다.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 을 사용 하는 경우를 제외 하 고는 예약 된 open을 사용 하 여 동사 설정에 모든 값을 사용할 수 있습니다.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

Windows 휴대용 장치, windows의 저장소에 액세스 하는 데 필요한 api는 데스크톱 데스크톱 장치 제품군의 일부입니다.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. 그런 다음 UWP에 대 한 Windows 데스크톱 확장 을 선택 하 고 확인을 클릭 합니다.Then select Windows Desktop Extensions for the UWP and click OK.

3 단계: XAML UI 추가Step 3: Add XAML UI

MainPage .xaml 파일을 열고 기본 그리드 섹션에 다음 XAML을 추가 합니다 < > .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를 트 중부 메서드에 전달 하 여 카메라를 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));
    }
}

참고    GetImageListGetThumbnail 메서드는 다음 단계에서 추가 됩니다.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

볼륨 장치가 PC에 연결 된 경우 메모리 카드나 thumb 드라이브와 같은 볼륨 장치를 자동 재생 장치로 식별할 수 있습니다.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.

볼륨 장치를 자동 재생 장치로 식별 하려면 장치의 루트 드라이브에 자동 실행 .inf 파일을 추가 합니다.To identify your volume device as an AutoPlay device, add an autorun.inf file to the root drive of your device. 자동 실행 .inf 파일에서 자동 실행 섹션에 CustomEvent 키를 추가 합니다.In the autorun.inf file, add a CustomEvent key to the AutoRun section. 볼륨 장치가 PC에 연결 되 면 자동 실행 에서 자동으로 실행 되는 .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. 자동 실행 inf 파일에 대 한 자세한 내용은 자동 실행 .inf 항목을 참조 하세요.For more info on autorun.inf files, see autorun.inf entries.

1 단계: 자동으로 실행 되는 .inf 파일 만들기Step 1: Create an autorun.inf file

볼륨 장치의 루트 드라이브에 autorun .inf 라는 파일을 추가 합니다.In the root drive of your volume device, add a file named autorun.inf. 자동 실행 .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 로 확인 하 고 확인을 클릭 합니다.Name the application AutoPlayCustomEvent and click OK.

  2. Appxmanifest.xml 파일을 열고 기능 탭을 선택 합니다. 이동식 저장소 기능을 선택 합니다.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. 파일 유형 연결 선언의 속성에서 표시 이름 필드를 . m s 파일 표시 로 설정 하 고 이름 필드를 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 s로 설정 합니다.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 표시show
작업 표시 이름Action Display Name 파일 표시Show Files
콘텐츠 이벤트Content Event AutoPlayCustomEventQuickstartAutoPlayCustomEventQuickstart

Content 이벤트 값은 autorun 파일에서 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. 앱에 전달 된 startup 이벤트 인수의 verb 속성을 확인 하 여 사용자가 선택한 옵션을 확인할 수 있습니다.You can tell which option the user selected by checking the verb property of the startup event arguments passed to your app. 을 사용 하는 경우를 제외 하 고는 예약 된 open을 사용 하 여 동사 설정에 모든 값을 사용할 수 있습니다.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을 추가 합니다 < > .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 단계: qpp를 빌드하고 실행 합니다.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 이벤트Event DescriptionDescription
카메라에서 사진 사용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 휴대용 장치로 식별 되며 오디오 소스 기능을 제공 하는 미디어 플레이어에 대해 발생 합니다.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 휴대용 장치로 식별 되며 비디오 원본 기능을 제공 하는 비디오 카메라에 대해 발생 합니다.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. 사용자가 사용 하도록 설정한 IIf 자동 재생 제어판에서 각 미디어 유형으로 수행할 작업을 선택 하면 자동 재생에서 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 Playcd오디오 On도착PlayCDAudioOnArrival
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.

볼륨에 대 한 자동 실행 .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. 자세한 내용은 자동 실행 .inf 항목을 참조 하세요.For more info, see Autorun.inf entries.

앱에 대 한 appxmanifest.xml 파일에 확장을 추가 하 여 앱을 자동 실행 콘텐츠 또는 자동 재생 장치 이벤트 처리기로 등록할 수 있습니다.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를 사용 하는 경우에는 선언 탭에서 자동으로 실행 콘텐츠 또는 자동 실행 장치 선언을 추가할 수 있습니다. 앱에 대 한 appxmanifest.xml 파일을 직접 편집 하는 경우 windows. autoPlayContent 또는 Windows. Autoplaycontent범주로지정 하는 확장 요소를 패키지 매니페스트에 추가 합니다.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>