Der Aufruf einer .Net Window-basierte Anwendung mit Runtime.getRuntime (). Exec von einer Feder-Controller auf Tomcat läuft

StackOverflow https://stackoverflow.com/questions/1228143

Frage

Ich rufe eine exe-Datei myapp.exe über eine Feder-Controller genannt; hier ist der Code in der Steuerung: Runtime.getRuntime () exec ( "D: \ gw \ apps \ myapp.exe");.

myapp.exe ist eine C # .NET-Anwendung. Wenn ich Windows Explorer direkt auf myapp.exe klicken verwenden, öffnet sich die Anwendung und läuft; aber wenn ich den Befehl über eine Feder-Controller innerhalb Tomcat aufrufen, wird die Anwendung nicht öffnen; aber, wenn ich die Task-Manager öffnen kann ich sehen, dass der myapp.exe Prozess ausgeführt wird. Dennoch öffnet sich das Fenster für myapp.exe nicht auf. In JBoss wird die Anwendung erfolgreich über die Feder-Controller aufgerufen. Weiß jemand, warum die .NET-Anwendung nicht geöffnet über Tomcat?

Tomcat als Dienst installiert. Beim Starten von Tomcat manuell die startup.bat Datei verwenden und dann myapp.exe im Tomcat Webapp, myapp.exe startet erfolgreich über einen Link aufgerufen werden. Allerdings bin ich nicht sicher, ob oder nicht Tomcat als Dienst gestartet wird verhindert myapp.exe ordnungsgemäß ausgeführt wird, weil, wenn JBoss als Dienst gestartet wurde, myapp.exe erfolgreich gestartet.

War es hilfreich?

Lösung

In Windows wird ein Prozess als Dienst ausgeführt wird nicht den normalen Benutzer-Desktop zugreifen können. Und da ein Programm gestartet von einem Dienst diese Eigenschaft erbt, es ist in der Regel nicht erlaubt entweder auf das Desktop zu erhalten.

Wie Sie feststellen, dass der Tomcat als Dienst ausgeführt wird, ich denke, das ist die Ursache des Problems ist. Es kann keine geeignete Referenz für diesen Augenblick finden, sorry.

Warum haben Sie Ihre .NET-Anwendung automatisch in einer Benutzersitzung starten? Sie könnten an den Tomcat über die Buchse verbinden, für eine Art Startsignal warten, zu gelangen, die dann die Zuordnung der Anwendung des Hauptfensters auslösen würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top