AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Application im Task-Panel (ALT-TAB) verstecken
Thema durchsuchen
Ansicht
Themen-Optionen

Application im Task-Panel (ALT-TAB) verstecken

Ein Thema von digga · begonnen am 24. Mai 2005 · letzter Beitrag vom 27. Mai 2005
Antwort Antwort
digga

Registriert seit: 26. Jan 2005
11 Beiträge
 
#1

Application im Task-Panel (ALT-TAB) verstecken

  Alt 24. Mai 2005, 19:15
Hi,

ich habe folgende Frage.
Kann man eine ganz normale VCL Forms Application im Task-Panel (ALT-TAB) verstecken?

Ich habe schon Lösungen gesehen, bei denen man einfach die Tastenkombination ALT-TAB deaktiviert.
Allerdings ist das nicht wirklich das was ich suche.
Eine Navigation mittels ALT-TAB sollte auch weiterhin möglich sein, aber eben ohne ein Icon von meinem Programm.

Eine Lösung in C# wäre auch supi.

Danke,
Dominik
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 24. Mai 2005, 19:27
Hi,
deine Frage bezieht sich auf Delphi.NET bzw. C#.
Bitte kategorisieren deine Frage auch entsprechend. Editiere also bitte deinen Beitrag und wähle Delphi.NET anstelle von Delphi (Win32).

Danke,
Chris
  Mit Zitat antworten Zitat
digga

Registriert seit: 26. Jan 2005
11 Beiträge
 
#3

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 25. Mai 2005, 09:23
Nein, nein ...

Hab mich vielleicht missverständlich ausgedrückt
Mich interessiert hauptsächlich eine Lösung in Delphi (Win32).

Dominik
  Mit Zitat antworten Zitat
digga

Registriert seit: 26. Jan 2005
11 Beiträge
 
#4

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 25. Mai 2005, 17:11
Nach längerer Suche durch etliche Newsgroups,
bin ich immer wieder auf folgende Code gestoßen.

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1},
  Windows;

{$R *.RES}

//Declare a var to retrieve current window information
var
  ExtendedStyle : Integer;

begin
  Application.Initialize;

  //Get the Extended Styles of the Application, by passing its
  //handle to GetWindowLong
  ExtendedStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);

  //Now, set the Extended Style by doing a bit masking operation.
  //OR in the WS_EX_TOOLWINDOW bit, and AND out the WS_EXAPPWINDOW bit
  //This effectively converts the application from an App Windows to a
  //Tool Window.
  SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle OR WS_EX_TOOLWINDOW
                                                 AND NOT WS_EX_APPWINDOW);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Es wird zwar kein Eintrag in der Taskleiste erstellt, aber im Task-Panel (ALT-TAB) ist mein Programm auch weiterhin zu sehen.

Hat nicht jemand einen weiteren Vorschlag?
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 25. Mai 2005, 17:14
Hi,
darf man fragen, wofür du das brauchst? Ich würde schon gerne jederzeit mit Alt-Tab zu allen Programmen kommen, die geöffnet sind.

Chris
  Mit Zitat antworten Zitat
digga

Registriert seit: 26. Jan 2005
11 Beiträge
 
#6

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 25. Mai 2005, 17:36
Klar darfst Du fragen

Ich will so eine Art DesktopWidget programmieren, dass immer auf dem Desktop angezeigt wird.

So etwas wie vielleicht einen Kalender oder eben solche Widgets, wie man sie z.B. von DesktopX, Samurize, Kapsules her kennt.

Das ganz ist aber erst im Versuchsstadium.
Ich hab mal einen Screenshot begefügt, damit man in etwa weiss, von was ich rede.

Gerade für solche permanenten Desktop-Widgets will ich nicht unbedingt einen Eintrag im ALT-TAB Panel haben, da diese Fenster nie in der Vordergrund kommen, sonder immer nur "auf" dem Desktop platziert sind.


Dominik
Miniaturansicht angehängter Grafiken
screenshot_276.jpg  
  Mit Zitat antworten Zitat
digga

Registriert seit: 26. Jan 2005
11 Beiträge
 
#7

Re: Application im Task-Panel (ALT-TAB) verstecken

  Alt 27. Mai 2005, 13:18
Hi,

falls es noch jemanden interessiert...
Folgender Code löst gleich zwei meiner Probleme.

Windows.SetParent(Form1.Handle, FindWindow(Nil, 'Program Manager')); Zum einen erreiche ich hiermit, dass kein Icon mehr im Task-Panel angezeigt wird
und zum anderen löst es dass Problem, dass mein Widget nicht "versteckt" wird,
wenn man auf "Desktop anzeigen" in der Schnellstart-Leiste klickt.

Gruß,
Dominik


PS:
Codebeispiel in C#
Code:

   public class User32 {

      [DllImport("user32", SetLastError=true)]
      public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

      [DllImport("user32", SetLastError=true)]
      public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

   }

   ...

   private void DesktopWidget_Load(object sender, System.EventArgs e)
   {
      User32.SetParent(this.Handle, User32.FindWindow(null, "Program Manager"));
   }
  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 21:40 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