web-dev-qa-db-fra.com

Lancement d'une application de bureau avec une application de style métro

Est-il possible de lancer une application de bureau à partir d'une application de style Metro sous Windows 8? J'essaie de créer des raccourcis simples vers les applications de bureau pour remplacer les icônes de bureau sur l'écran de démarrage, qui semblent déplacées.

J'ai juste besoin de quelque chose de super simple, de préférence en C #, pour ouvrir une application dès que l'application se charge. Je prévois de créer ces raccourcis pour certains jeux, photoshop, etc., mais pas pour tout ce que j'ai créé moi-même. Ils sont aussi juste pour un usage personnel, je peux donc utiliser des chemins directs vers des applications telles que "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe"

15
JacobTheDev

Si vous voulez simplement exécuter une application de bureau telle que (bloc-notes, wordpad, Internet Explorer, etc.), passez par Méthodes de traitement et ProcessStartInfo Classe

try
{
// Start the child process.
    Process p = new Process();
    // Redirect the output stream of the child process.
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.FileName = "C:\Path\To\App.exe";
    p.Start();
}

// Exp 2

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
    startInfo.WindowStyle = ProcessWindowStyle.Minimized;

    Process.Start(startInfo);

    startInfo.Arguments = "www.northwindtraders.com";

    Process.Start(startInfo);
}

Sur l’application Metro de Windows 8, j’ai découvert ceci: Comment démarrer un programme externe À partir de Metro App .

Toutes les applications de style métropolitain fonctionnent dans l'environnement Hautement encombré et il n'existe aucun moyen de démarrer directement une application externe .

Vous pouvez essayer d'utiliser Launcher class - En fonction de vos besoins, il Peut vous fournir une solution réalisable.

Vérifie ça:
Puis-je utiliser Windows.System.Launcher.LauncherDefaultProgram (Uri) pour appeler une autre application de style métropolitain?

Ref:Comment lancer une application de bureau à partir d'une application Metro?

Metro IE est une application spéciale. Vous ne pouvez pas appeler un exécutable à partir d'applications de style Metro.

Essayez ceci - je n'ai pas encore testé mais peut-être que ça vous aidera.

Launcher.LaunchFileAsync

// Path to the file in the app package to launch
string exeFile = @"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe";

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

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
    }
}
21
Niranjan Singh

J'ai trouvé une solution qui me convient. Je viens de créer un fichier texte vide dans mon application et je l'ai appelé launcher.yourappyouwanttostart, puis je l'ai exécuté avec 

Windows.System.Launcher.LaunchFileAsync("launcher.yourappyouwanttostart");

Lors du premier démarrage, il vous demande d'associer ce fichier, puis vous choisissez le fichier exe que vous souhaitez exécuter. À partir de maintenant, chaque fois que vous exécuterez ce fichier, votre application sera lancée.

12
Christoph Weller

Je n'ai pas réellement essayé si cela fonctionnait et que ce n'était pas vraiment une belle solution, mais j'imagine que les applications de style Metro peuvent lancer un URI. Vous pouvez ensuite créer un programme de bureau enregistré pour un schéma d'URI personnalisé qui se chargerait ensuite du lancement du programme.

3
Apollo

Ce que vous pouvez faire, c'est héberger un service WCF externe sur votre ordinateur avec une installation distincte et vous y connecter à partir d'une application de style métropolitain à l'aide de localhost. Ensuite, vous pouvez faire à peu près n'importe quoi, y compris Process.Start.

1
ghord

J'aime les choses simples, ma solution était donc d'utiliser ceci:

Process.Start("Explorer", "Shell:AppsFolder\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App")

Cela lancera le "nouveau" Sticky Notes à venir avec Anniversary Update pour Windows 10, mais fonctionnera avec toutes les autres applications "Metro" que j'ai testées. Pour trouver le nom de l'application métro, vous devez trouvez-le dans Shell: dossier apps à l'aide de la colonne AppUserModelId.

0
Andrea Antonangeli