PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VB: Programm schließen


huha
2004-07-15, 18:37:54
Morgen!

Ich würde gern mit VB ein Programm schließen, allerdings find' ich nur unmengen von stupiden "Close Application by Caption"-Codes... :eyes:

Das Handle des Programms, das geschlossen werden soll, habe ich, nur brauch' ich jetzt nur noch die richtige Funktion dazu ;)

Vielleicht weiß ja jemand von euch was.

-huha

Crushinator
2004-07-16, 02:01:31
Hast Du die ProcessID oder nur ein Windowhandle? Wenn die ProcessID vorliegt, guckst Du bitte hier (http://www.vbarchiv.net/faq/allg_exitprocess.php).

Wenn Du nur ein Windowhandle hast, könnte man's so machen:


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
Public Const WM_DESTROY = &H2

Sub CloseWindow(hWnd as Long)

Call SendMessage(hWnd, WM_CLOSE, 0, 0)
' oder aber auch gnadenloses
Call SendMessage(hWnd, WM_DESTROY, 0, 0)

End Sub
:)

huha
2004-07-16, 17:42:46
Hmm, irgendwie will beides nicht so recht gehen.

Ich zitiere mal, was der API-Guide von allapi.net zur ShellExecute-Funktion meint:


If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

Gut, ich hab jetzt dieses Handle, nur wie beende ich das gestartete bzw. aufgerufene Programm wieder?

Ich steh' gerade auf dem Schlauch... :freak: -- doofes Wetter.

-huha

huha
2004-07-17, 22:20:26
*push* -- weiß denn wirklich niemand was?!

Ist wichtig!

-huha

Crushinator
2004-07-18, 17:17:26
Ehrlich gesagt bin ich einwenig überrascht, daß es nicht klappt. Kannst Du bitte einwenig vom Source posten? Nicht daß wir komplett aneinander vorbei reden.

zeckensack
2004-07-18, 17:36:23
Versuch's mal mit ExitProcess (http://msdn.microsoft.com/library/en-us/dllproc/base/exitprocess.asp), oder, für die ganz harten, mit TerminateProcess (http://msdn.microsoft.com/library/en-us/dllproc/base/terminateprocess.asp).

Crushinator
2004-07-18, 18:50:05
Original geschrieben von zeckensack
Versuch's mal mit ExitProcess (http://msdn.microsoft.com/library/en-us/dllproc/base/exitprocess.asp), oder, für die ganz harten, mit TerminateProcess (http://msdn.microsoft.com/library/en-us/dllproc/base/terminateprocess.asp).
Das tut er ja - wenn ich das richtig verstanden habe - bereits, weil einer "meiner" Vorschläge TerminateProcess unter VB beschrieb. ;)
Original geschrieben von Crushinator
Hast Du die ProcessID oder nur ein Windowhandle? Wenn die ProcessID vorliegt, guckst Du bitte hier (http://www.vbarchiv.net/faq/allg_exitprocess.php).