AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm beim start als TNA icon ablegen

Ein Thema von SaFu · begonnen am 15. Okt 2007 · letzter Beitrag vom 17. Okt 2007
 
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

Programm beim start als TNA icon ablegen

  Alt 15. Okt 2007, 20:04
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:
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.
muss man da nur was ändern
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
 


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 01:23 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