Launcher.LaunchFileAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
LaunchFileAsync(IStorageFile) |
Inicia la aplicación predeterminada asociada al archivo especificado. |
LaunchFileAsync(IStorageFile, LauncherOptions) |
Inicia la aplicación predeterminada asociada al archivo especificado mediante las opciones especificadas. |
LaunchFileAsync(IStorageFile)
Inicia la aplicación predeterminada asociada al archivo especificado.
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)
Parámetros
- file
- IStorageFile
Archivo.
Devoluciones
La operación de inicio.
- Atributos
Ejemplos
En este ejemplo se usa LaunchFileAsync(IStorageFile) para iniciar un archivo incluido en el paquete de la aplicación.
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
Comentarios
La aplicación que realiza la llamada debe ser visible para el usuario cuando se invoca la API.
Se debe llamar a esta API desde un subproceso de ASTA (también conocido como subproceso de interfaz de usuario).
Esta API también impone varias restricciones sobre los tipos de archivos que puede iniciar. Muchos tipos de archivo que contienen código ejecutable, por ejemplo, .exe, .msi y archivos .js, están bloqueados para iniciarse. Esta restricción protege a los usuarios de archivos potencialmente malintencionados que podrían modificar el sistema.
Cuando se produce un error en el inicio por cualquiera de los motivos anteriores, la API se realiza correctamente y devuelve FALSE desde su operación asincrónica. Puesto que no tiene capacidad para consultar si las restricciones anteriores se aplican al inicio actual, la aplicación que realiza la llamada no debe suponer que el inicio se realizó correctamente y debe proporcionar un mecanismo de reserva en caso de que se produzca un error. Una posible solución sería pedir al usuario que guarde el archivo y dirija al usuario para abrirlo en el escritorio.
Para permitir que el usuario elija una aplicación en lugar de iniciar la aplicación predeterminada, establezca la propiedad LauncherOptions.DisplayApplicationPicker .
Para mostrar una advertencia de que el archivo es potencialmente no seguro, establezca la propiedad LauncherOptions.TreatAsUntrusted .
El archivo se pasa a la aplicación asociada. Si la aplicación asociada es una aplicación de escritorio, el archivo se pasa mediante mecanismos de ejecución de shell.
Consulte también
- LaunchFileAsync(IStorageFile, LauncherOptions)
- Ejemplo de inicio por asociación
- Directrices sobre tipos de archivo y URI
- Iniciar la aplicación predeterminada de un archivo
Se aplica a
LaunchFileAsync(IStorageFile, LauncherOptions)
Inicia la aplicación predeterminada asociada al archivo especificado mediante las opciones especificadas.
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)
Parámetros
- file
- IStorageFile
Archivo.
- options
- LauncherOptions
Las opciones de inicio de la aplicación.
Devoluciones
La operación de inicio.
- Atributos
Ejemplos
Llame al método [Launcher.LaunchFileAsync(IStorageFile, LauncherOptions) con LauncherOptions.DisplayApplicationPicker establecido en true para iniciar la aplicación que el usuario selecciona para el archivo en el cuadro de diálogo Abrir con .
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
Comentarios
La aplicación que realiza la llamada debe ser visible para el usuario cuando se invoca la API.
Se debe llamar a esta API desde un subproceso de ASTA (también conocido como subproceso de interfaz de usuario).
Esta API también impone varias restricciones sobre los tipos de archivos que puede iniciar. Muchos tipos de archivo que contienen código ejecutable, por ejemplo, .exe, .msi y archivos .js, están bloqueados para iniciarse. Esta restricción protege a los usuarios de archivos potencialmente malintencionados que podrían modificar el sistema.
Cuando se produce un error en el inicio por cualquiera de los motivos anteriores, la API se realiza correctamente y devuelve FALSE desde su operación asincrónica. Puesto que no tiene capacidad para consultar si las restricciones anteriores se aplican al inicio actual, la aplicación que realiza la llamada no debe suponer que el inicio se realizó correctamente y debe proporcionar un mecanismo de reserva en caso de que se produzca un error. Una posible solución sería pedir al usuario que guarde el archivo y dirija al usuario para abrirlo en el escritorio.
Para permitir que el usuario elija una aplicación en lugar de iniciar la aplicación predeterminada, establezca la propiedad LauncherOptions.DisplayApplicationPicker .
Para mostrar una advertencia de que el archivo es potencialmente no seguro, establezca la propiedad LauncherOptions.TreatAsUntrusted .
El archivo se pasa a la aplicación asociada. Si la aplicación asociada es una aplicación de escritorio, el archivo se pasa mediante mecanismos de ejecución de shell.
Consulte también
- Ejemplo de inicio por asociación
- Directrices sobre tipos de archivo y URI
- Iniciar la aplicación predeterminada de un archivo