Autor Beitrag
anno
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Di 26.08.08 09:58 
So nun eine weiterre frage:


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 anno
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: Di 26.08.08 10:05 
anno Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 20



BeitragVerfasst: Di 26.08.08 10:14 
user profile iconRobert.Wachtel hat folgendes geschrieben:
www.google.de/search...postmessage+wm_close


nein da finde ich nıx, was sich mit der prozess id erledigen könnte.
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Di 26.08.08 11:33 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
wndmain: Hwnd;

wndMain := FindWindow(nil,'Fenstername');
if wndMain <> 0 then
PostMessage(wndmain,WM_QUIT,0,0);

_________________
Salus populi suprema lex esto
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 26.08.08 14:59 
user profile icondelphi10 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
wndmain: Hwnd;

wndMain := FindWindow(nil,'Fenstername');
if wndMain <> 0 then
PostMessage(wndmain,WM_QUIT,0,0);

Wo kommt denn da die PID vor?
Mal ganz abgesehen davon, dass das nur bei GUI-Programmen geht.
Also mir fällt jetzt nur die Variante mit Task abschießen ein, die du ja nicht sonderlich magst: swissdelphicenter.co.../showcode.php?id=266. Läuft zwar auch über den Dateinamen des Prozesses, aber wenigstens taucht die PID darin auf, also könnte man es wohl umschreiben.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
delphi10
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 447
Erhaltene Danke: 2

W2K, XP, Vista64, Win7 64
RAD-Studio 2010
BeitragVerfasst: Di 26.08.08 15:18 
user profile iconTimosch hat folgendes geschrieben:

Wo kommt denn da die PID vor?
Mal ganz abgesehen davon, dass das nur bei GUI-Programmen geht.
Also mir fällt jetzt nur die Variante mit Task abschießen ein, die du ja nicht sonderlich magst: swissdelphicenter.co.../showcode.php?id=266. Läuft zwar auch über den Dateinamen des Prozesses, aber wenigstens taucht die PID darin auf, also könnte man es wohl umschreiben.


Die schweizer Variante hat leider den Nachteil, daß der Prozess ohne wenn und aber abgeschossen wird. Der Zielprozess bekommt keine Gelegenheit mehr eventuelle Daten zu sichern bzw. einen laufenden SubProzess zu beenden. Da ich gerade vor kurzem dieses Problem lösen mußte, habe ich beide Versionen getestet. Sauber beenden geht IMO nur mit WM_Quit.
cu delphi10

_________________
Salus populi suprema lex esto