halo7one
Goto Top

Programm per VBS beenden (kein Prozesskill und kein ALT-F4!)

Wie beendet man ein Programm per VBS so, als wenn man es per ALT+F4 bzw. X-Symbol beendet?

Hi @ all,
Ich würde gerne wissen, wie ich mit einem VB-Script ein laufendes Programm (z.B. Word) so beenden kann, dass noch z.B. Daten gespeichert werden (bei Word: Abfrage "Möchten Sie die Änderungen speichern?").

Ich habe mich schon etwas informiert und auch etwas hinbekommen:
mit "object.Terminate" funktioniert das wunderbar, allerdings brauche ich dafür das "object", dass ich davor durch "WScript.Exec" gesetzt habe, wodurch das Programm gestartet wird.
Das bedeutet im Klartext, dass ich ein Programm nur beenden kann, wenn ich es davor mit einem VB-Script gestartet habe. Ich möchte allerdings ein laufendes Programm durch Start/Aufruf des VB-Scripts beenden.

Kann mir jemand sagen, wie ich auch anders an dieses object kommen kann oder eine Alternative nennen?

Schon mal vielen Dank voraus ;)

Content-ID: 81485

Url: https://administrator.de/contentid/81485

Ausgedruckt am: 20.11.2024 um 06:11 Uhr

bastla
bastla 24.02.2008 um 01:19:48 Uhr
Goto Top
Hallo halo7one und willkommen im Forum!

Gibt es einen speziellen Grund, warum Du "Alt-F4" (etwa so:
Set WshShell = WScript.CreateObject("WScript.Shell")  
If WshShell.AppActivate("Microsoft Word") Then  
	WScript.Sleep 100
	WshShell.SendKeys "%{F4}"  
End If
nicht verwenden willst?

Da Du auch die "Terminate"-Methode des "Win32_Process" ausgeschlossen hast und ich tatsächlich keinen Weg sehe, wie Du ohne vorhergehendes "Exec" an das "WshScriptExec-Objekt" kommen kannst, erschiene mir der Weg über "SendKeys" noch als das kleinste Übel ...

Grüße
bastla
halo7one
halo7one 24.02.2008 um 19:14:42 Uhr
Goto Top
Hi bastla,
ja es gibt einen speziellen Grund, warum ich kein Alt-F4 senden möchte:
Ich will mit dem VB-Script mehrere Anwendungen schließen und es wäre dabei von Vorteil, wenn diese Anwendungen nicht aktiviert werden würden, da dadurch meine weitere Aktivität gestört wird.

Es geht hier nicht unbedingt um Word, das war nur ein Beispiel (hierbei muss ich ja das speichern bestätigen, wodurch ich auch Alt-F4 benutzen könnte). Es geht einfach um mehrere Programme die beim Beenden ohne weitere Nachfrage o.ä. noch etwas tuen, wie z.B. Änderungen zu speichern.
So wäre es ideal, wenn ich das VB-Script z.B. mit einer Tastenkombination starte und sich so die nicht mehr benötigten Anwendungen im Hintergrund beenden können.

Wenn es keine Möglichkeit gibt per VBS oder Batch eine Anwendung "sanft" zu beenden, dann muss ich wohl die Alt-F4-Methode benutzen. Dazu hätte ich dann auch eine Frage: Kann man (möglichst schnell) die zu schließenden Anwendungen aktivieren (mit AppActivate o.ä.) und dann wieder die vor dem Beendungsvorgang aktivierte Anwendung aktivieren?

Ich hoffe auf eure Einfälle,
halo7one

Anmerkung: ich habe auch etwas über eine GetObject-Methode gelesen, weiß aber nicht wie das funktionieren soll -_- , aber vielleicht ihr VBS-Profis ;)