![]() |
Programme aus Systray beenden ?!
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 |
Re: Programme aus Systray beenden ?!
hmm... hat niemand ne Lösung/Vorschlage ?!?
cu Trouble_Maker |
Re: Programme aus Systray beenden ?!
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:
das wars.
CanClose:=ende;
if not ende then -> minimieren, und ab in den Tray 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. |
Re: Programme aus Systray beenden ?!
:mrgreen: :mrgreen: :mrgreen: :mrgreen:
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. |
Re: Programme aus Systray beenden ?!
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 |
Re: Programme aus Systray beenden ?!
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. :idea: 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. :!: |
Re: Programme aus Systray beenden ?!
Zitat:
Zitat:
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz