Fremdgehen

Hallo,
wie kann ich eine laufende Anwendung mit einem VBProg beenden?

Dim Anwendung
Anwendung = shell („C:\Windows\Editor.exe“,1)

’ Unload Anwendung funktioniert nicht, was muss ich da tun???

Gruß [email protected]

TerminateProcess() … ‚Der Terminator!‘

Dim lngTaskID As Long
Dim lngProcess As Long
'
lngTaskID = Shell("Notepad.exe")
'
lngProcess = OpenProcess(PROCESS\_ALL\_ACCESS, 0&, lngTaskID)
Call TerminateProcess(lngProcess, 0&amp:wink:
Call CloseHandle(lngProcess)

greets from michL (vienna)

oops … da fehlt noch was

Private Const PROCESS\_ALL\_ACCESS = &H1F0FFF
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Hi,

eine freundlichere Methode statt TerminateProcess ist:

Private Declare Function FindWindow Lib „user32“ Alias „FindWindowA“ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib „user32“ Alias „PostMessageA“ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_CLOSE = &H10

dim lngHandle as Long
lngHandle = Findwindow(vbNullString, „Window Title“)
PostMessage lgnHandle, WM_CLOSE, 0&, 0&

Teilt dem Programm mit es solle sich doch bitte aus dem Staub machen. :smile:
TerminateProcess killt das Programm einfach.

Gruß
Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]