AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

externes programm schliessen

Ein Thema von heriam · begonnen am 26. Aug 2008 · letzter Beitrag vom 26. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
heriam

Registriert seit: 26. Aug 2008
5 Beiträge
 
#1

externes programm schliessen

  Alt 26. Aug 2008, 10:38
wie kann ich denn ein anderes programm aus delphı heraus sauber beenden?

Welche funktion brauche ich dazu?

Ich wiii den prozess über dıe prozess id suchen und dann beenden.

Einfach den task zu kıllen ist nicht sehr gut.

İch habe mıtbekommen, dass es mıt WM_CLOSE gehen soll, allerdings hab eich auch nach langer suche bısher nıx gefunden.

könnt ıhr mır da bitte weiterhelfen!

gruss heriam
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: externes programm schliessen

  Alt 26. Aug 2008, 10:53
Hi,

Klappt nicht immer da es ggf. noch Nachfragen vom Programm geben kann zB.: "...Die Aktuellen Dateien speichern..." etc.

So gehts.:
Delphi-Quellcode:
// (* ungetested *)

procedure SendCloseTo(wndClass, wndName: PChar);
var _hWnd: HWND;
begin
  _hWnd := FindWindow(wndClass, wndName);
  if _hWnd <> 0 then SendMessage(_hWnd, WM_CLOSE, 0, 0);
end;

// Aufruf:
procedure TFormXYZ.ButtonXClick(...);
begin
  // "Notepad" ist der Fensterklassenname des Notepad-Texteditors
  // Der Fenstertitel heisst zu anfang genauso, kann sich aber nach
  // dem speichern ändern. Also nicht verwechseln. ;-)

  SendCloseTo('Notepad', nil);
end;
// Edit: so ists wohl besser.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: externes programm schliessen

  Alt 26. Aug 2008, 10:54
Zitat von turboPASCAL:
Der Fenstertitel heisst zu anfang genauso
Bei mir ist das "Unbenannt - Editor"
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
heriam

Registriert seit: 26. Aug 2008
5 Beiträge
 
#4

Re: externes programm schliessen

  Alt 26. Aug 2008, 10:56
Ist der name notepad ist das der prozessname ohne die endung ".exe" am schluss?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

Re: externes programm schliessen

  Alt 26. Aug 2008, 11:04
Nein, das ist der Klassenname des Fensters.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
heriam

Registriert seit: 26. Aug 2008
5 Beiträge
 
#6

Re: externes programm schliessen

  Alt 26. Aug 2008, 11:06
Zitat von DeddyH:
Nein, das ist der Klassenname des Fensters.
naja aber das kann man dann ja nicht für jede anwendung nutzen.

denn ich weiss ja von vornhınweg ja nicht wie die klassennamen der fenster von externen programmen lauten, die ich schliessen möchte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: externes programm schliessen

  Alt 26. Aug 2008, 11:09
Da musst Du dann ein paar Umwege gehen (EnumThreadWindows fällt mir da spontan ein).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: externes programm schliessen

  Alt 26. Aug 2008, 11:16
Zitat von DeddyH:
Zitat von turboPASCAL:
Der Fenstertitel heisst zu anfang genauso
Bei mir ist das "Unbenannt - Editor"
Stimmt.

Zitat von heriam:
Der name notepad ist das der prozessname ohne die endung ".exe" am schluss?
Nein, der Fensterklassenname. Den braucht es.
Auf Prozesse kann man IMHO nicht mit WM_CLOSE beenden. (aber vill. das Fensterhandle finden..?!)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
heriam

Registriert seit: 26. Aug 2008
5 Beiträge
 
#9

Re: externes programm schliessen

  Alt 26. Aug 2008, 12:44
würde man mit dem fensterhandle dann auch herausbekommen welche weiteren prozess meine anwendung gestartet hat, um dıesen dann gleıch mıtzubeenden?


also so was:

anwendung.exe -> startet -> weitere_anwendung.exe -> usw....

edit:

also hier haette ich mal was gefunden, ganz unten. allerdings klappt das ırgendwie nicht bei jedem prozess.

bei manchen prozessen bekomme ich da einfach eine 0 zurück.


wenn ich jetzt mal als beispiel gimp portable von portable apps prüfe, dann werden da zweı prozesse gestartet:

zum einen dıe "GimpPortable.exe" und die "gimp-2.4.exe".

sobald ich dann aber die beıden prozesse abprüfe, bekkomme ıch nur beı der "gimp-2.4.exe" einen handle zurück. beim anderen ist der handle 0.

gruss heriam
  Mit Zitat antworten Zitat
heriam

Registriert seit: 26. Aug 2008
5 Beiträge
 
#10

Re: externes programm schliessen

  Alt 26. Aug 2008, 15:20
jemand ne ıdee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz