In einer Java-Anwendung:
%Vor% Durch Aufruf von destroy
wird der Prozess einfach beendet und es können keine Benutzerbereinigungen oder Exit-Codes ausgeführt werden. Ist es möglich, einen Prozess eine Nachricht WM_CLOSE
oder ähnliches zu senden?
Sie können Process.getOutputStream um eine Nachricht an die Standardeingabe Ihrer App zu senden, zB:
%Vor%Das bedeutet natürlich, dass Sie sich die stdin in der Windows App anhören müssen.
Mit JNAs jna.jar und process.jar (von Ссылка ) senden Sie eine WM_CLOSE-Nachricht wie folgt:
%Vor% Nicht ohne auf nativen Code zurückzugreifen. Process.destroy()
verursacht eine erzwungene Beendigung. Unter Windows entspricht dies dem Aufruf von TerminateProcess()
. Unter Unix ist es gleichbedeutend mit SIGQUIT
und bewirkt, dass die Anwendung Core-Dump ausführt.
Eine schmutzige Lösung wäre, dass Ihre MyWindowsApp ihren Bezeichner irgendwo als Datei registriert und eine andere Windows-Anwendung erstellt, die WM_CLOSE (nennen wir sie MyWindowsAppCloser) an eine andere Anwendung sendet.
Damit würden Sie den folgenden Code mit Java 1.6 programmieren
%Vor%Tags und Links java