Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fremdanwendung beenden

Fremdanwendung beenden
16.01.2022 11:20:30
Vincent
Hallo miteinander,
in dem Tipp https://www.vbarchiv.net/tipps/tipp_206-fremdanwendungen-beenden.html wird gezeigt wie der Rechner beendet wird.
CloseWindow("SciCalc", "Rechner")
Nun möchte ich geöffnetet Windword schließen..
Was ist denn sClassName von Word?
Wie würde die entsprechnede Zeile lauten?
Mit freundlichen Grüßen
Vincent Breith

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fremdanwendung beenden
16.01.2022 11:24:51
Nepumuk
Hallo Vincent,
OpusApp
Gruß
Nepumuk
AW: Fremdanwendung beenden
16.01.2022 11:50:01
Vincent
Hallo Nepumuk,
funktioniert leider nicht
If Not CloseWindow("OpusApp", "Dokument1 - Microsoft Word") Then
endif
Einen lHandle 0 habe ich, aber Word wird nicht geschlossen.
Wie ermittelt man denn den sClassName einer Anwendung?
AW: Fremdanwendung beenden
16.01.2022 12:15:30
Nepumuk
Hallo Vincent,
teste mal:

Option Explicit
Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function PostMessageA Lib "user32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal wMsg As Long, _
ByVal wParam As LongPtr, _
ByVal lParam As LongPtr) As Long
Private Const WM_CLOSE As Long = &H10
Private Const GC_CLASSNAMEWORD As String = "OpusApp"
Public Sub Test()
Dim lngptrHwnd As LongPtr
lngptrHwnd = FindWindowA(GC_CLASSNAMEWORD, vbNullString)
If lngptrHwnd  0 Then Call PostMessageA(lngptrHwnd, WM_CLOSE, 0, 0)
End Sub
Gruß
Nepumuk
Anzeige
AW: Fremdanwendung beenden
16.01.2022 12:49:55
volti
Oder die brutale Version:
Max: Ist dagegen was einzuwenden?
Code:

[Cc]

Private Declare PtrSafe Function DestroyWindow Lib "user32" ( _ ByVal hWnd As LongPtr) As Long Sub Test() DestroyWindow FindWindowA("OpusApp", vbNullString) End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Fremdanwendung beenden
16.01.2022 12:54:44
volti
Sorry,
einen Declare vergesessen...
Code:

[Cc]

Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) As LongPtr Private Declare PtrSafe Function DestroyWindow Lib "user32" ( _ ByVal hWnd As LongPtr) As Long Sub Test() DestroyWindow FindWindowA("OpusApp", vbNullString) End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Fremdanwendung beenden
16.01.2022 12:55:53
Nepumuk
Hallo Karl-Heinz,
das ist die Vorschlaghammer-Methode.
Gruß
Nepumuk
AW: Fremdanwendung beenden
16.01.2022 13:23:26
Vincent
Vielen Dank,
ich habe eben noch etwas anderes gefunden. Dies funktioniert noch besser.

Sub Windows_Wordprozess_beenden()
'** Vorgaben definieren
Dim objWindowsService, ProcessList, objProcess
Set objWindowsService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
'** Abfrage der aktiven Prozesse
Set ProcessList = objWindowsService.ExecQuery _
("SELECT * FROM Win32_Process WHERE Name = 'winword.exe'")
'** Selektierte Prozessliste durchlaufen
For Each objProcess In ProcessList
objProcess.Terminate    'Prozess beenden
Next objProcess
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige