2016-08-17 6 views
0

Ich versuche "Explorer" zu beenden, wenn meine Unity App läuft. Im Editor mithilfe von System.Diagnostics.Process.GetProcessesByName ("explorer"); Ich bin in der Lage, den Prozess ohne Problem zu finden und zu beenden.Unity C# Process.GetProcesses() liefert verschiedene Ergebnisse in Editor und Laufzeit

Wenn Sie denselben Code in der kompilierten Anwendung verwenden, wird jedoch ein leeres Array zurückgegeben. Drucken aller verfügbaren Prozesse mit Process.GetProcesses() Ich merke, dass ich im Editor Zugriff auf viel mehr Prozesse habe, als in der kompilierten App.

Ich habe versucht, die kompilierte App als Administrator ausgeführt und ich habe auch versucht, die App von C: \ Programme mit dem gleichen Ergebnis auszuführen.

Meine Problemumgehung ist vorläufig, eine .bat-Datei von meiner Unity-App auszuführen, die den Windows Explorer umbringt.

Ich bin mir nicht sicher, was das Problem ist. Jede Hilfe wird sehr geschätzt.

+0

Mehr als wahrscheinlich ist es, weil es eine vertrauenswürdige App ist. Ich habe Probleme zu verstehen, warum Sie Explorer mit einer Unity-App töten würden. – MiltoxBeyond

+0

Dies ist für einen Touchscreen Kiosk. In neueren Windows-Versionen hat MS globale Gesten hinzugefügt (z. B. Wischen von außerhalb des Bildschirms), mit denen der Benutzer die App beenden oder auf andere Teile des Betriebssystems zugreifen kann. Es gibt einige Möglichkeiten, diese globalen Gesten zu deaktivieren, aber sie funktionieren nicht mit allen Hardwarekonfigurationen. Das Ausschalten des Explorers ist der einzige sichere Weg, um diese Funktionen zu deaktivieren. – znerolnoht

Antwort

1

Lösung: In den Build-Einstellungen habe ich die App auf 64bit (x86_64) geändert. Sobald ich das getan hatte, hatte die App Zugriff auf alle Prozesse einschließlich Explorer.

Verwandte Themen