Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi anderes Programm "sanft" beenden (https://www.delphipraxis.net/35181-anderes-programm-sanft-beenden.html)

glkgereon 3. Dez 2004 15:29


anderes Programm "sanft" beenden
 
also, ich hätte gern ein programm das völlig im hintergrund läuft und bestimmte programme "sanft" beendet...

beispiel:
ich brauch zwar quicktime, kann aber den autostart net abstellen

bevor ihr mir sagt wo der key liegt:
ich hab mehr als ein beispiel...

also, wie kann ich programme davon überzeugen, sich zu beenden?
ich will eben net die "thread-abschiess-methode" nehmen...ich bräuchte im prinzip eine funktion die es wie der taskmanager bei "task beenden" macht...

kennt ihr die?

dizzy 3. Dez 2004 15:31

Re: anderes Programm "sanft" beenden
 
Ein WM_QUIT (edit: oder hieß sie WM_CLOSE?) an das Fensterhandle senden müsste doch gehen, oder?

glkgereon 3. Dez 2004 15:34

Re: anderes Programm "sanft" beenden
 
hmm...wie sende ich dem denn eine message?

ausserdem: wie krieg ich das fensterhandle raus?

findwindow will (wenn möglich) ich umgehen, da ich einen task beenden will, und dafür net die ganzen fenstertitel brauchen will :(

dizzy 3. Dez 2004 15:38

Re: anderes Programm "sanft" beenden
 
Zitat:

Zitat von glkgereon
hmm...wie sende ich dem denn eine message?

SendMessage :mrgreen:

Zitat:

Zitat von glkgereon
ausserdem: wie krieg ich das fensterhandle raus?

findwindow will (wenn möglich) ich umgehen, da ich einen task beenden will, und dafür net die ganzen fenstertitel brauchen will :(

Eine andere Möglichkeit ist mir nicht bekannt... :gruebel:

glkgereon 3. Dez 2004 17:36

Re: anderes Programm "sanft" beenden
 
hmm....das wär aber blöd...

weil ich weiss ja net bei sonem quicktime, was da genau oben in der titelleiste drinsteht :(

weiss noch einer nen ausweg?

Christian Seehase 3. Dez 2004 18:03

Re: anderes Programm "sanft" beenden
 
Moin glkgereon,

da könnte Dir MSDN-Library durchsuchenGetWindowModuleFileName vielleicht weiterhelfen.
Ausserdem kann Dir auch Hier im Forum suchenEnumChildWindows helfen eindeutige Bestandteile des Fensters zu finden.

Sollte es mit WM_CLOSE nicht klappen, könnte auch die Kombination WM_SYSCOMMAND/SC_CLOSE funktionieren.

glkgereon 3. Dez 2004 18:12

Re: anderes Programm "sanft" beenden
 
sorry, aber was soll mir GETWINDOWMODULEFILENAME bringen? :gruebel:

und auch die zeite hilft mir net wirklich weiter...

ich brauche eine funktion die mir mit dem Task-Namen das handle raussucht...

Luckie 3. Dez 2004 18:17

Re: anderes Programm "sanft" beenden
 
Das wird mit einer Funktion nicht gemacht sein. Wenn du den Prozess kennst, kannst du mit EnumWindows alle Fenster durchgehen und mit GetWindowThreadID gucken, welches Fenster zu dem Prozess gehört. Dann kannst du an das Fenster ein WM_CLOSE schicken.

Christian Seehase 3. Dez 2004 18:22

Re: anderes Programm "sanft" beenden
 
Moin glkgereon,

Zitat:

Zitat von glkgereon
sorry, aber was soll mir GETWINDOWMODULEFILENAME bringen? :gruebel:

ganz einfach:
Du willst das Fenster eindeutig identifizieren.
Dass liesse sich dann ggf. durch den Namen der zugehörigen EXE machen.

Ausserdem könntest Du, wenn schon der Fenstertitel nicht eindeutig ist, auch noch den Klassennamen auslesen (Hier im Forum suchenGetClassName)

glkgereon 3. Dez 2004 18:28

Re: anderes Programm "sanft" beenden
 
ja, aber ich muss doch den exe-filename eingeben, und net rausbekommen :gruebel:

@Luckie:
(achtung, event Noob-Frage :) )
muss denn jeder prozess/jeder task ein fenster haben?

ich werds mal versuchen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.
Seite 1 von 2  1 2      

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