AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal FreePascal Anwendung nicht in Taskleiste anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung nicht in Taskleiste anzeigen

Ein Thema von Jean312 · begonnen am 1. Feb 2015 · letzter Beitrag vom 2. Feb 2015
Antwort Antwort
Jean312

Registriert seit: 1. Dez 2013
55 Beiträge
 
#1

Anwendung nicht in Taskleiste anzeigen

  Alt 1. Feb 2015, 07:34
Ein Hallo an die Programmierergilde,

ich benötige einen Rat von den erfahrenen Programmierern.
Meine Anwendung soll nicht in der Taskleiste, sondern nur im SysTray sichtbar sein.

Das klappt auch beim Start der Anwendung (mittels: ShowWindowAsync(hwndOwner, SW_HIDE). In der Anwenung werden aber noch weitere Forms geöffnet. Sobald das passiert, ist meine Anwendung wieder in der Taskleiste sichtbar, obwohl ich das Handle ShowWindowAsync im FormShow-Ereignis aller Forms eingebunden habe.

Hat jemand eine Idee und begehe ich hier einen "Denkfehler"?

Ich danke schonmal im Voraus.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 1. Feb 2015, 10:12
den erweiterten Fensterstil WS_EX_APPWINDOW entfernen dann sollte das gehen.

ShowWindowAsync bringt nichts und muss auch nicht bei allen Fenstern angewendet werden.

gruss

Geändert von EWeiss ( 1. Feb 2015 um 10:42 Uhr)
  Mit Zitat antworten Zitat
Jean312

Registriert seit: 1. Dez 2013
55 Beiträge
 
#3

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 2. Feb 2015, 15:33
Danke für die Antwort. Ich schaue mal, ob es damit funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#4

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 2. Feb 2015, 15:38
Das muß/wird funktionieren, denn genau dafür ist diese Option nunmal da.

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Jean312

Registriert seit: 1. Dez 2013
55 Beiträge
 
#5

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 2. Feb 2015, 21:39
Habe mal im Netz herumgesucht, aber bisher ziemlich erfolglos. Wie kann ich denn diesen Parameter setzen, oder besser in diesem Fall deaktivieren?

Ich habe den Parameter "WS_EX_APPWINDOW" in der customform.inc (TCustomForm CreateParams) gefunden.

Auszug aus dem Quellcode
Code:
if (WndParent = 0) and
           (((Self = Application.MainForm) and Application.MainFormOnTaskBar) or (GetEffectiveShowInTaskBar = stAlways)) then
          ExStyle := ExStyle or WS_EX_APPWINDOW;
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 2. Feb 2015, 21:43
Boahh ehh...

Hole dir die aktuellen Style über GetWindowLong
und setze dann die neuen mit SetWindowLong

Delphi-Quellcode:
procedure ShowInTaskbar(handle: HWND; Show: Bool)
var
  WStyle: integer;

begin
  WStyle := GetWindowLong(handle, GWL_EXSTYLE)

  // Nicht in TaskLeiste anzeigen
  if not Show then
    WStyle := WStyle and not WS_EX_APPWINDOW
  else
  // Rückgängig machen
  WStyle := WStyle and WS_EX_APPWINDOW;

  SetWindowLong(handle, GWL_EXSTYLE, WStyle);
end;
gruss

Geändert von EWeiss ( 2. Feb 2015 um 21:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#7

AW: Anwendung nicht in Taskleiste anzeigen

  Alt 2. Feb 2015, 22:12
Auszug aus dem Quellcode
Code:
if (WndParent = 0) and
           (((Self = Application.MainForm) and Application.MainFormOnTaskBar) or (GetEffectiveShowInTaskBar = stAlways)) then
          ExStyle := ExStyle or WS_EX_APPWINDOW;
Auch mal auf die Idee gekommen und nach WS_EX_APPWINDOW in der DP zu suchen, oder nach "Delphi WS_EX_APPWINDOW" in einer beliebigen Suchmaschine?


TIPP: Rate mal, warum man CreateParams überschreiben kann (virtual).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 2. Feb 2015 um 22:16 Uhr)
  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 22:27 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