Starten und Beenden eines Clients durch einen anderen Client

9. März 2010 13:36

Hallo zusammen,

ich versuche gerade aus einem Navision Client einen anderen Navision Client zu starten und den alten Navision Client dann zu beenden.

Hintergrund ist das auf den Navision Clients umfangreiche Batchprozesse in einer Batchverwaltung(eigene Entwicklung) laufen. Leider kommt es nach einer gewissen Laufzeit zu einer Instabilität der Clients. Das erfordert das Neustarten der Clients und Batche. Um den manuellen Aufwand zu verringern möchte ich daher in regelmäßigen Abständen aus einem Client heraus einen neuen Client öffnen, den Batch starten und den Altclient beenden.
Eine Umstellung der Batchverwaltung kommt aktuell nicht in Frage.

Das mit dem neuen Client starten und danach den Batch starten ist mir schon gelungen, allerding kann ich den Altclient nicht beenden. Hat da jemand eine Konkrete Idee wie ich das bewerkstelligen kann?

Ich kann einen Client über den Batchbefehl starten und ihn mit der sendkeys-Funktionalität fernsteuern. Indem ich den Automation Server "'Microsoft Shell Controls And Automation'.Shell" einbinde und die Funktion Minimizeall verwende kann ich sicherstellen, dass auch nur der neu gestartete Client mit sendkeys ferngesteuert wird. Allerdings habe ich keine Ahnung wie ich jetzt sicherstellen kann das der alte Client beendet wird. Ich müßte entweder den Fensterfocus wieder auf den alten Client lenken und ihn dann fernsteuern oder den alten Client irgendwie anders beenden.

Kann mir da jemand weiterhelfen?

Schöne Grüße,
Karsten

Re: Starten und Beenden eines Clients durch einen anderen Client

9. März 2010 13:44

Könnte dir das hier helfen?
Navision schließen bzw. Aktiv holen

Re: Starten und Beenden eines Clients durch einen anderen Client

9. März 2010 15:40

Hallo Natalie,

erstmal Danke. Ja so in etwa ist es das. Allerdings muß ich um die Funktion GetWindowThreadProcessId aus der WindowsAPI benutzen zu können offenbar auf die user32.dll zugreifen. Mir fehlt leider die Idee wie ich das aus Navision bewerkstellingen kann.
Hat da jemand ein Beispiel für mich?

Schöne Grüße,
Karsten.