AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Programme aus Systray beenden ?!
Thema durchsuchen
Ansicht
Themen-Optionen

Programme aus Systray beenden ?!

Ein Thema von Trouble_Maker · begonnen am 2. Sep 2003 · letzter Beitrag vom 4. Sep 2003
Antwort Antwort
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#1

Programme aus Systray beenden ?!

  Alt 2. Sep 2003, 19:33
Hiho Leute,
so ... nachdem ich jetzt endlich weiss (und es auch funktioniert) wie man Programme über ein Delphi Programm schließt, würde ich gerne wissen, wie es mit Programmen aussieht, die in der Taskleiste sind.
So z.B. Kazaa! Wenn man dort ja auf das "X" klickt, verschwindet das Prog im Tray.
Gibt es eine Möglichkeit, ohne die Anwendung "brutal" mit Prozess killen, zu beenden ?!?

Danke im Vorraus


Trouble_Maker
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#2

Re: Programme aus Systray beenden ?!

  Alt 3. Sep 2003, 14:21
hmm... hat niemand ne Lösung/Vorschlage ?!?


cu Trouble_Maker
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#3

Re: Programme aus Systray beenden ?!

  Alt 4. Sep 2003, 10:20
Naja, ich denke das kann man über das CloseQuery-Ereignis lösen.

Du hast ja ein PopupMenu mit einem Beenden-Item. In dem ItemOnClick setzt du eine globale Variable (z.B. ende: Boolean) auf True;

In dem CloseQuery dann:

Delphi-Quellcode:
CanClose:=ende;
if not ende then -> minimieren, und ab in den Tray
das wars.

Wenn jetzt jemand auf das X clickt, dann wird deine Anwendung in den Tray minimiert. Wenn jemand auf beenden klickt, dann wird die Anwendung wirklich beendet.

Alternativ kannst du ja auch in das CloseQuery ein AbfrageBox anzeigen lassen, wo du fragst, ob beendet oder minimiert werden soll.

----
Alles aus dem Handgelenk geschrieben, müsste eigentlich aber funktionieren.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

Re: Programme aus Systray beenden ?!

  Alt 4. Sep 2003, 10:41


Ups, nachdem ich deine Frage nochmal durchgelesen habe, ist mir plötzlich klar geworden, dass ich dich falsch verstanden habe. Sorry.

Zum Thema:

Diese programm reagieren auf die Windows-Botschaft WM_QUERYENDSESSION (Denke ich zumindest, weil ich das auch so mache).
In desn Programm hat der Programmierer dann eine Procedure
(procedure WMSysCommand(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION,
die dann das Programm varanlasst, sich tatsächlich zu beenden, um nicht den Windows-Shutdown zu behindern.
Jetzt mußt du nur eine soche Botschaft generieren, die dann aber nur an das zu beendende Programm schicken.

Wie und ob das geht, weiß ich aber auch nicht.

Vielleicht hilft dir der Ansatz.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#5

Re: Programme aus Systray beenden ?!

  Alt 4. Sep 2003, 12:14
hiho
hmm.. ja danke erstmal werde mir das nachher mal anschauen. (muss nämlich gleich wieder in die Schule )

wenn noch jemand anderes einen Vorschlag hat, nur her damit!
Würde mich freuen!


danke

Trouble_Maker
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#6

Re: Programme aus Systray beenden ?!

  Alt 4. Sep 2003, 12:24
Ich meine dort in der Api mal auf einige Funktionen gestoßen zu sein.
Habe das im Augenblick nicht zur Hand, aber die heißen, glaube ich,
TerminateProcess, CloseProcess, ExitProcess, oder irgend etwas in
ähnlicher Form. Such mal unter diesen Begriffen in der Api, da solltest
Du was zu finden.

Ich verstehe allerdings nicht, warum Du einen Prozess auf solch
sarkastische Weise aus dem Speicher reißen willst. Weiß nicht, ob das
Deiner Anwendung so gut tut.
  Mit Zitat antworten Zitat
Benutzerbild von Trouble_Maker
Trouble_Maker

Registriert seit: 30. Jan 2003
244 Beiträge
 
Delphi 6 Personal
 
#7

Re: Programme aus Systray beenden ?!

  Alt 4. Sep 2003, 12:28
Zitat von Trouble_Maker:
Hiho Leute,
Gibt es eine Möglichkeit, ohne die Anwendung "brutal" mit Prozess killen, zu beenden ?!?
Zitat von Dannyboy:
Ich verstehe allerdings nicht, warum Du einen Prozess auf solch
sarkastische Weise aus dem Speicher reißen willst. Weiß nicht, ob das
Deiner Anwendung so gut tut.
???

Hast du schonmal probiert Kazaa zu beenden ?!?
Das funktioniert mit dem "normalen" Code nicht, weil wenn man auch im normalen Prog, auf das "X" klickt, das Prog im Tray landet! Ich möchte allerdings das Programm richtig beenden! Und habe nach einem Vorschlag / Lösung gefragt !?!

cu Trouble_Maker
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:22 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