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)
- Пример запуска с сопоставлением
- Руководство по типам файлов и URI
- Запуск приложения по умолчанию для файла
Применяется к
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 .
Файл передается в связанное приложение. Если связанное приложение является классическим приложением, файл передается с помощью механизмов выполнения оболочки.
См. также раздел
- Пример запуска с сопоставлением
- Руководство по типам файлов и URI
- Запуск приложения по умолчанию для файла