it-swarm.dev

Starten einer Desktopanwendung mit einer Metro-App

Gibt es eine Möglichkeit, eine Desktopanwendung über eine Metro-App unter Windows 8 zu starten? Ich versuche, einige einfache Verknüpfungen zu Desktop-Anwendungen zu erstellen, um die Desktop-Symbole auf dem Startbildschirm zu ersetzen, die falsch aussehen.

Ich brauche nur etwas sehr einfaches, vorzugsweise in C #, um eine Anwendung zu öffnen, sobald die App geladen wird. Ich plane, diese Abkürzungen für einige Spiele, Photoshop usw. zu machen, nicht für alles, was ich selbst gemacht habe. Sie sind auch nur für den persönlichen Gebrauch, sodass ich direkte Pfade zu Anwendungen wie "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe" verwenden kann.

15
JacobTheDev

Wenn Sie einfach eine Desktop-Anwendung wie Notepad, Wordpad, Internet Explorer usw. ausführen möchten, gehen Sie durch Process Methods und ProcessStartInfo-Klasse

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);
}

Bei der Windows 8 Metro-Anwendung habe ich Folgendes entdeckt: So starten Sie ein externes Programm von Metro App .

Alle Anwendungen im Metro-Stil funktionieren in der Umgebung Mit hohem Sandkasten, und es gibt keine Möglichkeit, eine externe Anwendung Direkt zu starten.

Sie können versuchen, die Launcher-Klasse zu verwenden - Je nach Ihren Anforderungen kann Ihnen eine praktikable Lösung bieten.

Überprüfen Sie dies:
Kann ich mit Windows.System.Launcher.LauncherDefaultProgram (Uri) eine andere Metro-App aufrufen?

Ref:Wie starte ich eine Desktop-App in einer Metro-App?

Metro IE ist eine spezielle App. Sie können keine ausführbaren Dateien von Apps im Metro-Stil aufrufen.

Probiere dies aus - ich habe noch keinen Test, aber es kann dir helfen ..

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

Ich habe eine Lösung gefunden, die für mich geeignet ist. Ich habe gerade eine leere Textdatei in meiner App erstellt, launcher.yourappyouwanttostart genannt und dann mit ausgeführt 

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

Beim ersten Start werden Sie nach der Zuordnung für diese Datei gefragt. Anschließend wählen Sie die Exe-Datei aus, die Sie ausführen möchten. Von nun an wird Ihre App bei jedem Ausführen dieser Datei gestartet.

12

Ich habe nicht wirklich versucht, ob es funktioniert und es ist nicht wirklich eine schöne Lösung, aber ich denke, Apps im Metro-Stil können eine URI starten. Sie könnten dann ein Desktop-Programm erstellen, das für ein benutzerdefiniertes URI-Schema registriert ist und dann das eigentliche Programm startet.

3
Apollo

Sie können den externen WCF-Dienst auf Ihrem Computer mit einer separaten Installation hosten und über eine Metro-Anwendung mit localhost eine Verbindung dazu herstellen. Dann können Sie so ziemlich alles einschließlich Process.Start machen.

1
ghord

Ich liebe einfache Dinge, also war meine Lösung, dies zu verwenden:

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

Dadurch werden die "neuen" Haftnotizen, die mit dem Anniversary Update auf Windows 10 geliefert werden, gestartet, sie funktionieren jedoch mit allen anderen getesteten "Metro" -Anwendungen Finden Sie es in Shell: appsfolder mithilfe der Spalte AppUserModelId.

0