Поделиться через


Launcher.LaunchFileAsync Метод

Определение

Перегрузки

LaunchFileAsync(IStorageFile)

Запускает приложение по умолчанию, связанное с указанным файлом.

LaunchFileAsync(IStorageFile, LauncherOptions)

Запускает приложение по умолчанию, связанное с указанным файлом, используя указанные параметры.

LaunchFileAsync(IStorageFile)

Запускает приложение по умолчанию, связанное с указанным файлом.

public:
 static IAsyncOperation<bool> ^ LaunchFileAsync(IStorageFile ^ file);
/// [Windows.Foundation.Metadata.Overload("LaunchFileAsync")]
 static IAsyncOperation<bool> LaunchFileAsync(IStorageFile const& file);
[Windows.Foundation.Metadata.Overload("LaunchFileAsync")]
public static IAsyncOperation<bool> LaunchFileAsync(IStorageFile file);
function launchFileAsync(file)
Public Shared Function LaunchFileAsync (file As IStorageFile) As IAsyncOperation(Of Boolean)

Параметры

file
IStorageFile

Файл.

Возвращаемое значение

Операция запуска.

Атрибуты

Примеры

В этом примере launchFileAsync(IStorageFile) используется для запуска файла, содержащегося в пакете приложения.

async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.png";

   var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Launch the retrieved file
      var success = await Windows.System.Launcher.LaunchFileAsync(file);

      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}
Windows::Foundation::IAsyncAction MainPage::DefaultLaunch()
{
    // Get the app's installation folder.
    Windows::Storage::StorageFolder installFolder{ Windows::ApplicationModel::Package::Current().InstalledLocation() };

    Windows::Storage::StorageFile file{ co_await installFolder.GetFileAsync(L"Assets\\LockScreenLogo.scale-200.png") };

    if (file)
    {
        // Launch the retrieved file.
        bool success{ co_await Windows::System::Launcher::LaunchFileAsync(file) };
        if (success)
        {
            // File launched.
        }
        else
        {
            // File launch failed.
        }
    }
    else
    {
        // Couldn't find file.
    }
}
void MainPage::DefaultLaunch()
{
   auto installFolder = Windows::ApplicationModel::Package::Current->InstalledLocation;

   concurrency::task<Windows::Storage::StorageFile^> getFileOperation(installFolder->GetFileAsync("images\\test.png"));
   getFileOperation.then([](Windows::Storage::StorageFile^ file)
   {
      if (file != nullptr)
      {
         // Launch the retrieved file
         concurrency::task<bool> launchFileOperation(Windows::System::Launcher::LaunchFileAsync(file));
         launchFileOperation.then([](bool success)
         {
            if (success)
            {
               // File launched
            }
            else
            {
               // File launch failed
            }
         });
      }
      else
      {
         // Could not find file
      }
   });
}
async Sub DefaultLaunch()

   ' Path to the file in the app package to launch
   Dim imageFile = "images\test.png"

   Dim file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile)

   If file IsNot Nothing Then
      ' Launch the retrieved file
      Dim success = await Windows.System.Launcher.LaunchFileAsync(file)

      If success Then
         ' File launched
      Else
         ' File launch failed
      End If
   Else
      ' Could not find file
   End If
End Sub

Комментарии

Вызывающее приложение должно быть видимым для пользователя при вызове API.

Этот API должен вызываться из потока ASTA (также известного как поток пользовательского интерфейса).

Этот API также накладывает ряд ограничений на типы файлов, которые он может запускать. Запуск многих типов файлов, содержащих исполняемый код, например .exe, .msi и .js файлов, блокируется. Это ограничение защищает пользователей от потенциально вредоносных файлов, которые могут изменить систему.

Если запуск завершается сбоем по любой из указанных выше причин, API завершается успешно и возвращает значение FALSE из своей асинхронной операции. Так как оно не может запросить, применяются ли указанные выше ограничения к текущему запуску, вызывающее приложение не должно предполагать, что запуск выполнен успешно, и должно предоставить резервный механизм в случае сбоя. Возможное решение — попросить пользователя сохранить файл и направить пользователя на его открытие на рабочем столе.

Чтобы разрешить пользователю выбирать приложение вместо запуска приложения по умолчанию, задайте свойство LauncherOptions.DisplayApplicationPicker .

Чтобы отобразить предупреждение о потенциально небезопасности файла, задайте свойство LauncherOptions.TreatAsUntrusted .

Файл передается в связанное приложение. Если связанное приложение является классическим приложением, файл передается с помощью механизмов выполнения оболочки.

См. также раздел

Применяется к

LaunchFileAsync(IStorageFile, LauncherOptions)

Запускает приложение по умолчанию, связанное с указанным файлом, используя указанные параметры.

public:
 static IAsyncOperation<bool> ^ LaunchFileAsync(IStorageFile ^ file, LauncherOptions ^ options);
/// [Windows.Foundation.Metadata.Overload("LaunchFileWithOptionsAsync")]
 static IAsyncOperation<bool> LaunchFileAsync(IStorageFile const& file, LauncherOptions const& options);
[Windows.Foundation.Metadata.Overload("LaunchFileWithOptionsAsync")]
public static IAsyncOperation<bool> LaunchFileAsync(IStorageFile file, LauncherOptions options);
function launchFileAsync(file, options)
Public Shared Function LaunchFileAsync (file As IStorageFile, options As LauncherOptions) As IAsyncOperation(Of Boolean)

Параметры

file
IStorageFile

Файл.

options
LauncherOptions

Параметры запуска приложения.

Возвращаемое значение

Операция запуска.

Атрибуты

Примеры

Вызовите метод [Launcher.LaunchFileAsync(IStorageFile, LauncherOptions) с параметромLauncherOptions.DisplayApplicationPicker, чтобы запустить приложение, выбранное пользователем для файла в диалоговом окне Открыть с помощью.

async void DefaultLaunch()
{
   // Path to the file in the app package to launch
   string imageFile = @"images\test.png";

   var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

   if (file != null)
   {
      // Set the option to show the picker
      var options = new Windows.System.LauncherOptions();
      options.DisplayApplicationPicker = true;

      // Launch the retrieved file
      bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }
   else
   {
      // Could not find file
   }
}
Windows::Foundation::IAsyncAction MainPage::DefaultLaunch()
{
    // Get the app's installation folder.
    Windows::Storage::StorageFolder installFolder{ Windows::ApplicationModel::Package::Current().InstalledLocation() };

    Windows::Storage::StorageFile file{ co_await installFolder.GetFileAsync(L"Assets\\LockScreenLogo.scale-200.png") };

    if (file)
    {
        // Set the option to show the picker.
        Windows::System::LauncherOptions launcherOptions;
        launcherOptions.DisplayApplicationPicker(true);

        // Launch the retrieved file.
        bool success{ co_await Windows::System::Launcher::LaunchFileAsync(file, launcherOptions) };
        if (success)
        {
            // File launched.
        }
        else
        {
            // File launch failed.
        }
    }
    else
    {
        // Couldn't find file.
    }
}
void MainPage::DefaultLaunch()
{
   auto installFolder = Windows::ApplicationModel::Package::Current->InstalledLocation;

   concurrency::task<Windows::Storage::StorageFile^> getFileOperation(installFolder->GetFileAsync("images\\test.png"));
   getFileOperation.then([](Windows::Storage::StorageFile^ file)
   {
      if (file != nullptr)
      {
         // Set the option to show the picker
         auto launchOptions = ref new Windows::System::LauncherOptions();
         launchOptions->DisplayApplicationPicker = true;

         // Launch the retrieved file
         concurrency::task<bool> launchFileOperation(Windows::System::Launcher::LaunchFileAsync(file, launchOptions));
         launchFileOperation.then([](bool success)
         {
            if (success)
            {
               // File launched
            }
            else
            {
               // File launch failed
            }
         });
      }
      else
      {
         // Could not find file
      }
   });
}
async Sub DefaultLaunch()

   ' Path to the file in the app package to launch
   Dim imageFile = "images\test.png"

   Dim file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile)

   If file IsNot Nothing Then
      ' Set the option to show the picker
      Dim options = Windows.System.LauncherOptions()
      options.DisplayApplicationPicker = True

      ' Launch the retrieved file
      Dim success = await Windows.System.Launcher.LaunchFileAsync(file, options)

      If success Then
         ' File launched
      Else
         ' File launch failed
      End If
   Else
      ' Could not find file
   End If
End Sub

Комментарии

Вызывающее приложение должно быть видимым для пользователя при вызове API.

Этот API должен вызываться из потока ASTA (также известного как поток пользовательского интерфейса).

Этот API также накладывает ряд ограничений на типы файлов, которые он может запускать. Запуск многих типов файлов, содержащих исполняемый код, например .exe, .msi и .js файлов, блокируется. Это ограничение защищает пользователей от потенциально вредоносных файлов, которые могут изменить систему.

Если запуск завершается сбоем по любой из указанных выше причин, API завершается успешно и возвращает значение FALSE из своей асинхронной операции. Так как оно не может запросить, применяются ли указанные выше ограничения к текущему запуску, вызывающее приложение не должно предполагать, что запуск выполнен успешно, и должно предоставить резервный механизм в случае сбоя. Возможное решение — попросить пользователя сохранить файл и направить пользователя на его открытие на рабочем столе.

Чтобы разрешить пользователю выбирать приложение вместо запуска приложения по умолчанию, задайте свойство LauncherOptions.DisplayApplicationPicker .

Чтобы отобразить предупреждение о потенциально небезопасности файла, задайте свойство LauncherOptions.TreatAsUntrusted .

Файл передается в связанное приложение. Если связанное приложение является классическим приложением, файл передается с помощью механизмов выполнения оболочки.

См. также раздел

Применяется к