Seite 1 von 1
ein anderes programm schlißen
Verfasst: 24.08.2006 17:19
von Tsuki-Namida
ich möchte ein programm schlißen wie es der titel schon verät.
ich weis den datei namen von dem programm was ich schlißen muss
ich hoffe das mir da jemand helfen könnte....
wichtig ist noch das ich das für PB 3.94 brauche
Verfasst: 24.08.2006 17:29
von edel
Verfasst: 24.08.2006 17:44
von Tsuki-Namida
und wie kann ich nun die exe schließen???
Verfasst: 24.08.2006 19:29
von AND51
Du brauchst das sogenannte WindowHandle (hwnd) des Fensters. Das ist die
WindowID(), die ein Fenster systemweit eindeutig identifiziert. Du findest dein gesuchtest Fenster z. B. mit den API-Funktionen
FindWindow_() oder
EnumWindows_(). API FUnktionen funktioneiren nicht mit der Demoversion von PB.
Hier kannst du nach API Funktionen suchen:
http://msdn.microsoft.com
Hinweis: Eigentlich werden API Funktionen ohne _Unterstrich_ am Ende geschrieben; dies ist nur in PB so, um PB-Funktionen von API-Funktionen besser unterscheiden zu können.
Mit edel's Code sendest du dann die Nachricht "Schließen" (#WM_CLOSE) an das gewünschte hwnd (fensterhandle).
Verfasst: 24.08.2006 20:46
von Tsuki-Namida
ich habe es jetzt so versucht:
hwnd = FindWindow_(0,"Beispiel Name")
PostMessage_(hwnd,#WM_CLOSE,0,0)
nur es klapt nicht...
Verfasst: 24.08.2006 20:52
von ts-soft
Code: Alles auswählen
RunProgram("notepad")
Delay(1000)
hwnd = FindWindow_(0,"Unbenannt - Editor")
PostMessage_(hwnd,#WM_CLOSE,0,0)
funzt

Verfasst: 24.08.2006 21:01
von AND51
Du musst exakt den Fenstertitel des zu schließenden Fensters eintippen, sonst klappt es auch nicht.
Mit EnumWindows_() und GetWindowText_() kannst du dir aber automatsich alle Handles aller geöffneten Fenster (auch unsichtbare Fenster, etwa vom Hintergrund-Virenscanner) aflisten lassen (also in einem Array oder besser: LinkedList) speichern. Diese Handles übergibst du gleich an GetWIndowText_() und erhälst den Titel des Fensters, damit du üeberprüfen kannst, ob es auch das richtige Fenster ist, das du schließen möchtest.
Wenn ja, übergibst du das frisch ermittelte Handle an PostMessage_().
Verfasst: 24.08.2006 21:14
von Tsuki-Namida
das verstehe ich ja nicht... genauso habe ich es gemacht und auch in anderen foren teie gefunden... wenn ich aber den befehl zum beenden gebe dann kann ich das fenster verschieben ohne das ich die maus gedrückt halte...
Verfasst: 25.08.2006 00:37
von Tsuki-Namida
okay ich weis jetzt woran das liegt...
und zwar wird das programm nicht in der taskleiste angezeigt deshalb ging es nicht... aber das soll erst mal einer wissen