So führen Sie die Verarbeitung von Befehlen (oder ähnlich) mit einem Universal-Windows-Plattform (UWP) App?
Arbeite ich zum erstellen von benutzerdefinierten Cortana Befehle. Die Befehle sind registriert und ausgeführt mit einem Universal-Windows-Plattform-Anwendung. (GitHub)
Zum Beispiel, ich habe registriert Sie den folgenden Befehl
<Command Name="ShutDown">
<ListenFor>Shut down</ListenFor>
<Navigate/>
</Command>
Zur Ausführung dieser Funktion in einem UWP-Anwendung
static async void ShutDown()
{
var dialog = new MessageDialog("This is where I would shut the computer down.");
await dialog.ShowAsync();
//System.Diagnostics.Process.Start("Shutdown", "-s -t 10");
}
Aber nach der Einstellung, die ich gelernt System.Diagnostics.Process
ist nicht unterstützt in der UWP.
Dem benutzerdefinierte Befehle, die ich ausführen will, um eine Art der Ausführung, wie das starten von externen Programmen die Ausführung anderer Skripte oder öffnen von Webseiten.
Macht es Sinn, dass UWP keine Unterstützung gegeben, dass es Universelle und eine XBox oder ein Telefon möglicherweise nicht in der Lage sein, diese zu tun, aber ich hoffte, dass es irgendeine alternative oder hacky Möglichkeit, dies auf einem Windows 10 PC.
Gibt es eine Möglichkeit für mich zu führen Process
Befehle oder etwas anderes mit ähnlicher Funktionalität, die in einem UWP-Anwendung? Wie es scheint, auch wenn ich bekommen kann Cortana zum ausführen von meinem C# - code, die UWP nicht unterstützt vieles, das nützlich sein würde in dieser situation.
Vielen Dank im Voraus.
UWP
Unterstützung mit WMI
wenn ja, dann tun Sie es mit WMIDanke für die Idee, war es Wert, heraus zu überprüfen. Leider es sieht nicht so
WMI
unterstützt wird. Das ist es, was ich meine, dachte ich, registrieren und ausführen der Befehle wäre der schwierige Teil, ich wusste nicht das C# wäre so begrenzt UWP
.Mist. Microsoft will mehr apps, aber Sie binden unsere Hände fester. Ich möchte zu senden Befehl, um eine "Vertrauenswürdige" app Prozess - was ist der big deal?? Man in the middle Angriffe? Die Entwickler können senden und empfangen von json von einer app an einen server, warum nicht von app zu app?
InformationsquelleAutor Charles Clayton | 2015-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es - begrenzte - Möglichkeiten, um zu erreichen ähnliches Verhalten.
Könnten Sie LaunchUri auslösen, andere apps, die Registrierung für einen bestimmten URI-Schema. Diese Arbeit sollte für Ihre webbrowser-Szenario. Mehr Informationen finden Sie hier:
https://msdn.microsoft.com/en-us/library/windows/apps/windows.system.launcher.launchuriasync.aspx
Sie auslösen könnte eine andere app und erhalten Sie Ergebnisse zurück, aus der es mit LaunchForResults. Die app muss das unterstützen. Mehr Informationen finden Sie hier:
https://msdn.microsoft.com/en-us/library/windows/apps/mt269386.aspx
Könnten Sie trigger-App-Dienstleistungen, die von einer anderen app. Die app muss das unterstützen. Der app-Dienst wird im hintergrund ausgeführt werden. ( Ich denke, das ist ziemlich cool.) Mehr details hier:http://blogs.msdn.com/b/mvpawardprogram/archive/2015/06/11/writing-windows-10-app-services-in-javascript.aspx
Dies ist ein wenig hacky: ich bin mir nicht sicher, ob das noch funktioniert, aber es hat funktioniert für Windows 8.1: Sie können eine so genannte "Vermittelte Komponente". Dies können Sie alles auslösen von Sie die app auf Ihrer Maschine, aber Sie werden nicht in der Lage zu veröffentlichen, die eine vermittelte Komponente in der Filiale. Dies erlaubt auch Prozess.Start() auf Windows 8.1. Es funktioniert nur für sideloaded apps. Ich bin mir nicht sicher, ob es noch funktioniert auf Windows 10.
Mehr info hier: https://msdn.microsoft.com/en-us/library/windows/apps/dn630195.aspx
Zusammenfassung:
Starten von einer anderen app ist ziemlich einfach, solange die Ziel-app registriert als app-service oder registriert ein Protokoll-handler (Uri-Schema).
Starten von Skripts oder anderen *.exe ist unmöglich, wenn die option 4 funktioniert nicht mehr.
Haben jemand versuchen, zu verwenden AppService auf "Herunterfahren" oder "Neustart" die Tablette? Ich kann nicht scheinen, einen Weg finden, es zu tun.
Dieses Dokument sagt option 4 ist noch brauchbar, in Windows 10, es kann jedoch nicht veröffentlicht werden, auf die Allgemeinen Verbraucher Windows Store. docs.microsoft.com/en-us/windows/uwp/winrt-components/...
InformationsquelleAutor Daniel Meixner
Mit der Windows 10-jähriges Jubiläum-Update (1607) es gibt eine option, um dieses Szenario zu ermöglichen auf dem PC. Mit dieser API in den Desktop-Erweiterung SDK können Sie starten eine fulltrust-Prozess, das läuft auf die vollständige Benutzer-Privilegien:
https://docs.microsoft.com/en-us/uwp/api/Windows.ApplicationModel.FullTrustProcessLauncher
Diese Weise können Sie es leicht oben auf den Plattformen, wo es unterstützt wird, also PCs, die 1607 oder oben. Und Ihre app noch universeller:
Ja, im Allgemeinen, Sie können. Sie gehen durch die Desktop-App-publishing-Prozess, der eine onboarding-review Ihrer app, da es die fulltrust-Fähigkeit. Du kannst diesen Prozess gestartet, hier: developer.microsoft.com/en-us/windows/projects/campaigns/...
InformationsquelleAutor Stefan Wick MSFT