AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi anderes Programm "sanft" beenden
Thema durchsuchen
Ansicht
Themen-Optionen

anderes Programm "sanft" beenden

Ein Thema von glkgereon · begonnen am 3. Dez 2004 · letzter Beitrag vom 3. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 15:29
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?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 15:31
Ein WM_QUIT (edit: oder hieß sie WM_CLOSE?) an das Fensterhandle senden müsste doch gehen, oder?
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 15:34
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
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 15:38
Zitat von glkgereon:
hmm...wie sende ich dem denn eine message?
SendMessage

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...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 17:36
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?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 18:03
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 18:12
sorry, aber was soll mir GETWINDOWMODULEFILENAME bringen?

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

ich brauche eine funktion die mir mit dem Task-Namen das handle raussucht...
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 18:17
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 18:22
Moin glkgereon,

Zitat von glkgereon:
sorry, aber was soll mir GETWINDOWMODULEFILENAME bringen?
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)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#10

Re: anderes Programm "sanft" beenden

  Alt 3. Dez 2004, 18:28
ja, aber ich muss doch den exe-filename eingeben, und net rausbekommen

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

ich werds mal versuchen...
»Unlösbare Probleme sind in der Regel schwierig...«
  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 23:27 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