Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Taskleiste Programm verstecken (https://www.delphipraxis.net/130597-taskleiste-programm-verstecken.html)

asusbob 11. Mär 2009 00:55


Taskleiste Programm verstecken
 
Ich habe gesucht und gesucht und gefunden und gefunden und nix wirkt ^^...

Ich versuche mein Programm aus der Taskleiste zu entfernen, ich bin auch beim Suchen (unter anderem) auf

Delphi-Quellcode:
  ShowWindow(Application.Handle, SW_HIDE);
gestossen. Wirkt nicht. Und nein, ich habe es nicht im Create-Ereignis, ich hatte es im Create, im Paint, in nem Timer - ich verzweifel ^^


Viele Grüße
Till

ps. Delphi 2007

asusbob 11. Mär 2009 00:59

Re: Taskleiste Programm verstecken
 
ersetze application mit formname und es funzt -.-

trotzdem danke an alle die das lesen :)


OK, doch nich, jetzt is auch das Formular wech :P

omata 11. Mär 2009 01:04

Re: Taskleiste Programm verstecken
 
Delphi-Quellcode:
  :
  private
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
  :
  :
procedure TForm.FormShow(Sender: TObject);
var Owner : HWnd;
begin
  Owner:=GetWindow(Handle, GW_OWNER);
  ShowWindow(Owner, SW_HIDE);
end;

procedure TForm.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
    Hide
  else
    inherited;
end;

asusbob 11. Mär 2009 01:28

Re: Taskleiste Programm verstecken
 
Code nich verstanden... 1 zu 1 kopiert: funzt nicht :(

SC_MINIMIZE? Der Eintrag in der Taskbar soll nich verschwinden wenn das Fenster minimiert ist (kann es was damit zu tun haben?) Der soll immer weg sein.

Aber danke schonmal :)

omata 11. Mär 2009 01:35

Re: Taskleiste Programm verstecken
 
Was gibt es daran nicht zu verstehen...
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SysCommand;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
    Hide
  else
    inherited;
end;

procedure TForm1.FormShow(Sender: TObject);
var Owner : HWnd;
begin
  Owner:=GetWindow(Handle, GW_OWNER);
  ShowWindow(Owner, SW_HIDE);
end;

end.
...funktioniert wunderbar.

Edit:
Zitat:

Zitat von asusbob
Der Eintrag in der Taskbar soll nich verschwinden wenn das Fenster minimiert ist ... Der soll immer weg sein.

Was soll das? Soll beim Minimieren der Taskbar-Eintrag sichtbar sein? Was soll dann die Aussage, der soll immer weg sein? Präzisiere mal deine Anforderungen und Wünsche, dann kann man dir vielleicht auch helfen.

asusbob 11. Mär 2009 01:41

Re: Taskleiste Programm verstecken
 
Joaaaa... beim minimieren... aber ich will ja nicht minimieren :)

Ich möchte, dass in der Taskbar einfach kein Eintrag vorhanden ist, gleich nach dem Start des Programms (so wie man es z.b. von WinAmp kennt)

omata 11. Mär 2009 01:44

Re: Taskleiste Programm verstecken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also bei mir ist beim Start kein Taskbareintrag vorhanden.

Naja, war ein Versuch.

asusbob 11. Mär 2009 01:47

Re: Taskleiste Programm verstecken
 
Mit Delphi 7 kompiliert -> funzt... mit Delphi 2007 nich aber so reichts mir auch :)

Vielen Vielen Dank =)

ps. btw, vllt weiß ja wer warum es unter 2k7 nich funzt

omata 11. Mär 2009 01:54

Re: Taskleiste Programm verstecken
 
Bei > Delphi 7 muss in der Projektdatei folgendes gesetzt werden...
Delphi-Quellcode:
Application.MainFormOnTaskbar := false;
...dann ist das Verhalten identisch.

Felix015 11. Mär 2009 12:30

Re: Taskleiste Programm verstecken
 
Noch ne möglichkeit:
Delphi-Quellcode:
procedure ShowTaskBar;
var
  hApp: HWND;
  rcApp, rcWork: TRect;
begin
  { get the taskbar handle }
  hApp := FindWindow('Shell_TrayWnd', '');
  if hApp <> 0 then begin
    { restore taskbar }
    ShowWindow(hApp, SW_RESTORE);
    { set workarea excluding taskbar }

  end;
end;
und zum verstecken:
Delphi-Quellcode:
procedure HideTaskBar;
var
  hApp: HWND;
  rcWork: TRect;
begin
  { get the taskbar handle }
  hApp := FindWindow('Shell_TrayWnd', '');
  if hApp <> 0 then begin
    { hide taskbar }
    ShowWindow(hApp, SW_HIDE);
    { set workarea to full screen }
    FullScreenArea;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:45 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