Condividi tramite


Launcher.LaunchFileAsync Metodo

Definizione

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

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

Si applica a