![]() |
Programm beim start als TNA icon ablegen
Hi
habe mal folgendes Problem ich möchte mein Programm beim Autostart direkt als TNA icon ablegen habe mich mal durch das forum gekämpft aber nichts richtiges gefunden. der code hier minimiert mir erst das Programm als TNA icon wenn ich unten auf der taskleite auf das feld mit meinem Programm drücke wie kann ich es aber direkt minimiert lassen
Delphi-Quellcode:
muss man da nur was ändern
unit Unit1; // Anmeldung
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ShellApi, Mask,XPMan, DB, DBTables, OleCtrls,DateUtils, SHDocVw,INIFiles, jpeg, AppEvnts; const WM_TASKBAREVENT = WM_USER + 1; type TForm1 = class(TForm) ApplicationEvents1: TApplicationEvents; procedure ApplicationEvents1Minimize(Sender: TObject); private procedure WMTaskbarEvent(var Message: TMessage); message WM_TASKBAREVENT; procedure TaskBarRemoveIcon; procedure TaskBarAddIcon; public end; var Form1: TForm1; implementation uses {$R *.dfm} procedure TForm1.ApplicationEvents1Minimize(Sender: TObject); begin TaskBarAddIcon; end; procedure TForm1.TaskBarAddIcon; var tnid: TNotifyIconData; Owner: HWnd; begin with tnid do begin cbSize := SizeOf(TNotifyIconData); Wnd := Form1.Handle; uID := 1; uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; uCallbackMessage := WM_TASKBAREVENT; hIcon := Application.Icon.Handle; PostMessage(Application.Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0); end; StrCopy(tnid.szTip, 'Runterfahren'); Shell_NotifyIcon(NIM_ADD, @tnid); Owner:=GetWindow(Form1.Handle,GW_OWNER); If Owner<>0 then ShowWindow(Owner,SW_HIDE); end; procedure TForm1.TaskBarRemoveIcon; var tnid: TNotifyIconData; Owner: HWnd; begin tnid.cbSize := SizeOf(TNotifyIconData); tnid.Wnd := Form1.Handle; tnid.uID := 1; Shell_NotifyIcon(NIM_DELETE, @tnid); Owner:=GetWindow(Form1.Handle,GW_OWNER); If Owner<>0 then begin ShowWindow(Owner,SW_Show); ShowWindow(Owner,SW_Normal); end; end; procedure TForm1.WMTaskbarEvent(var Message: TMessage); var Point: TPoint; begin case Message.LParamLo of WM_LBUTTONDOWN: TaskBarRemoveIcon; WM_RBUTTONDOWN: begin SetForegroundWindow(Handle); GetCursorPos(point); end; end; end; end. |
Re: Programm beim start als TNA icon ablegen
Kannst du nicht einfach TaskbarAddIcon direkt aufrufen, z.B. im FormCreate-Event?
Übrigens, nur so nebenbei, bei ![]() |
Re: Programm beim start als TNA icon ablegen
Zitat:
|
Re: Programm beim start als TNA icon ablegen
Ich hätte da ein
![]() |
Re: Programm beim start als TNA icon ablegen
Liste der Anhänge anzeigen (Anzahl: 1)
hab mir die funltion mal angeguckt aber das ist auch nicht das was ich meine dein Programm Startet auch sofort. aber es soll ja minimirt unten rechts als icon starten und erst wenn ich drauf drücke aufs icon soll es gross werden.
Es funtzt soweit bei mir auch ganz gut nur mein Programm startet Groß und nicht minimiert als icon |
Re: Programm beim start als TNA icon ablegen
Und wenn du dein Hauptformular halt minimiert startest?
|
Re: Programm beim start als TNA icon ablegen
hab ich auch hiermit versucht
Delphi-Quellcode:
wie geschrieben hab das ganze forum auf den kopf gestelltApplication.Minimize; |
Re: Programm beim start als TNA icon ablegen
Ich dachte mehr daran, den WindowState im Objektinspektor auf wsMinimized zu stellen (oder wie das in Delphi eben hieß), geht das nicht?
|
Re: Programm beim start als TNA icon ablegen
ich habe das mal vor einiger Zeit so gemacht, dass ich mir ein Form als kleines Startfenster gemacht habe, dort wurde dann das Hauptform erzeugt und in die TNA gepackt. Dann wurde das Startform geschlossen. Das war praktisch wie ein kleiner Splashscreen mit ner Startmitteilung.
Bei Klick auf das TNA-Icon gabs dann ein Popupmenu mit Öffnen, Beenden etc. Müsste allerdings den Code erstmal suchen.... |
Re: Programm beim start als TNA icon ablegen
Was spricht eigentlich dagegen TCoolTrayIcon zu verwenden?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 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 by Thomas Breitkreuz