Launcher.LaunchFileAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
LaunchFileAsync(IStorageFile) |
Avvia l'app predefinita associata al file specificato. |
LaunchFileAsync(IStorageFile, LauncherOptions) |
Avvia l'app predefinita associata al file specificato usando le opzioni specificate. |
LaunchFileAsync(IStorageFile)
Avvia l'app predefinita associata al file specificato.
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)
Parametri
- file
- IStorageFile
File.
Restituisce
Operazione di avvio.
- Attributi
Esempio
In questo esempio viene usato LaunchFileAsync(IStorageFile) per avviare un file contenuto nel pacchetto dell'app.
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
Commenti
L'app chiamante deve essere visibile all'utente quando viene richiamata l'API.
Questa API deve essere chiamata da un thread ASTA (noto anche come thread dell'interfaccia utente).
Questa API impone anche diverse restrizioni sui tipi di file che può essere avviata. Molti tipi di file che contengono codice eseguibile, ad esempio .exe, .msi e .js file, vengono bloccati dall'avvio. Questa restrizione protegge gli utenti da file potenzialmente dannosi che potrebbero modificare il sistema.
Quando l'avvio ha esito negativo per uno dei motivi precedenti, l'API ha esito positivo e restituisce FALSE dall'operazione asincrona. Poiché non ha alcuna possibilità di eseguire query se le restrizioni precedenti si applicano all'avvio corrente, l'app chiamante non deve presupporre che l'avvio abbia avuto esito positivo e deve fornire il meccanismo di fallback nel caso in cui non sia riuscito. Una possibile soluzione consiste nel chiedere all'utente di salvare il file e indirizzare l'utente a aprirlo nel desktop.
Per abilitare l'utente a scegliere un'app anziché avviare l'app predefinita, impostare la proprietà LauncherOptions.DisplayApplicationPicker .
Per visualizzare un avviso che il file è potenzialmente non sicuro, impostare la proprietà LauncherOptions.TreatAsUntrusted .
Il file viene passato all'app associata. Se l'app associata è un'app desktop, il file viene passato usando meccanismi di esecuzione della shell.
Vedi anche
- LaunchFileAsync(IStorageFile, LauncherOptions)
- Esempio di avvio di associazione
- Linee guida per tipi di file e URI
- Avviare l'app predefinita per un file
Si applica a
LaunchFileAsync(IStorageFile, LauncherOptions)
Avvia l'app predefinita associata al file specificato usando le opzioni specificate.
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)
Parametri
- file
- IStorageFile
File.
- options
- LauncherOptions
Opzioni di avvio per l'app.
Restituisce
Operazione di avvio.
- Attributi
Esempio
Chiamare il metodo [Launcher.LaunchFileAsync(IStorageFile, LauncherOptions) con LauncherOptions.DisplayApplicationPicker impostato su true per avviare l'app selezionata per il file dalla finestra di dialogo Apri 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
Commenti
L'app chiamante deve essere visibile all'utente quando viene richiamata l'API.
Questa API deve essere chiamata dall'interno di un thread ASTA (noto anche come thread dell'interfaccia utente).
Questa API impone anche diverse restrizioni sui tipi di file che può essere avviata. Molti tipi di file che contengono codice eseguibile, ad esempio .exe, .msi e .js file, vengono bloccati dall'avvio. Questa restrizione protegge gli utenti da file potenzialmente dannosi che potrebbero modificare il sistema.
Quando l'avvio ha esito negativo per uno dei motivi precedenti, l'API ha esito positivo e restituisce FALSE dall'operazione asincrona. Poiché non ha alcuna possibilità di eseguire query se le restrizioni precedenti si applicano all'avvio corrente, l'app chiamante non deve presupporre che l'avvio abbia avuto esito positivo e deve fornire il meccanismo di fallback nel caso in cui non sia riuscito. Una possibile soluzione consiste nel chiedere all'utente di salvare il file e indirizzare l'utente a aprirlo nel desktop.
Per abilitare l'utente a scegliere un'app anziché avviare l'app predefinita, impostare la proprietà LauncherOptions.DisplayApplicationPicker .
Per visualizzare un avviso che il file è potenzialmente non sicuro, impostare la proprietà LauncherOptions.TreatAsUntrusted .
Il file viene passato all'app associata. Se l'app associata è un'app desktop, il file viene passato usando meccanismi di esecuzione della shell.
Vedi anche
- Esempio di avvio di associazione
- Linee guida per tipi di file e URI
- Avviare l'app predefinita per un file