Prozess beenden

flashgod

Mitglied
Hallo,
ich möchte Word beenden.
Aber auch wenn es nicht mehr reagiert etc...
Also nicht mit den normalen schließen Befehl sondern mit sowas wie Task beenden.

Ich wollte es über das Fenster Handle machen. Das Problem ist das die Caption ja immer eine andere ist "DokumentXXX - Microsoft Word".

Hie könnte ich das machen?

Danke
 
Das mit dem Handle sollte kein Problem darstellen, weil Du mit der FindWindow-Methode ja nicht nach dem Fenstertitel, sondern nach dem Namen der Fensterklasse suchst.
Und an das Handle schickst Du dann einfach per SendMessage() die Nachricht WM_CLOSE. Falls das nicht gehen sollte, kannst Du das auch mit WM_QUIT versuchen. Eine von den beiden Nachrichten sollte auf jeden Fall funktionieren.
 
doing *blackout*
Danke
klar nicht Fenster Titel


Doch noch ein Problem

Mein Code sieht so aus

Public Declare Function FindWindowex Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const WM_CLOSE = &H10


Private Sub Main()
Dim win
Dim msg
win = FindWindowex("OpusApp", vbNullString)
msg = SendMessage(win, WM_CLOSE, 0, 0)
End Sub

Nun will ich aber das alle Word Dokus wo auf sind geschlossen werden.
Wenn ich die exe einmal ausführe wird auch sofort ein Word Doku geschlossen. Danach kann ich sie ausführen so oft ich will. Es bleiben jedoch alle offen. Nur wenn ich diese Dokus einmal Aktiviert habe kann ich danach die exe ausführen dann geht es mit diesem.

Wie kann ich alle schließen? (klar mit schleife) aber zuerst bräuchte ich das er auch wirklich alle schließt und nicht nur das zuletzt aktive.

Danke
 
Zuletzt bearbeitet:
Zurück