AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fenster mit bsNone aus der Taskleiste ausblenden
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster mit bsNone aus der Taskleiste ausblenden

Ein Thema von mh166 · begonnen am 12. Okt 2009 · letzter Beitrag vom 13. Okt 2009
Antwort Antwort
Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 12. Okt 2009, 17:31
Hallo an alle,

ich bin grad dabei ne kleine Deskband-Anwendung für Arbeit zu schreiben. Also eine Toolbar für die Startleiste, den Explorer und den IE, wem "Deskband" nix sagen sollte.

Aus dieser Toolbar heraus lasse ich ein Fenster mit verschiedenen Infos anzeigen. Dabei möchte ich allerdings verhindern, dass das Fenster in der Taskbar angezeigt wird. Das an sich wäre ja kein Problem, schließlich lässt sich dazu genug Hilfe über die Suche finden. Das Problem ist aber, dass das Fenster mit BorderStyle := bsNone ausgezeichnet ist. Dadurch scheinen die üblichen Tipps nicht so wirklich zu helfen. Weder mit SetWindowLong den GWL_EXSTYLE zu verändern noch mit ShowWindow und SW_HIDE bin ich vorangekommen.

Hier mal etwas Code, wie ich das Formular erzeuge:
Code:
QR := TfrmQueryResult.Create(self);
QR.OnClose := onCloseQR;
QR.ParentWindow := 0;
QR.Show;
Im OnCreate des TfrmQueryResult hab ich dann (unter anderem) folgendes probiert:
Code:
SetWindowLong(Self.Handle, GWL_EXSTYLE, GetWindowLong(self.Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW);
Aber wie bereits gesagt: das funktioniert so nich wirklich ... Wäre klasse wenn ihr mir hier weiterhelfen könntet.

mfg, mh166
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#2

Re: Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 12. Okt 2009, 21:01
Und wenn Du es mal statt mit Self.Handle mit Application.Handle versuchst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 12. Okt 2009, 21:38
Nein, auch das funktioniert leider nicht. Leider echt keine Ahnung was man sonst noch probieren könnte ... :-/

mfg, mh166
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 13. Okt 2009, 19:02
Hmmm... ich hab grad nochmal was im Windows SDK gefunden:

Zitat:
Managing Taskbar Buttons

The Shell creates a button on the taskbar whenever an application creates a window that isn't owned. To ensure that the window button is placed on the taskbar, create an unowned window with the WS_EX_APPWINDOW extended style. To prevent the window button from being placed on the taskbar, create the unowned window with the WS_EX_TOOLWINDOW extended style. As an alternative, you can create a hidden window and make this hidden window the owner of your visible window.
Gelesen, ausprobiert ... und FAIL. Hab ne Form erstellt, die mit ShowWindow(frm.Handle, SW_HIDE) versteckt und anschließend dann halt TfrmQueryResult.CreateParented(tmpForm.Handle) das Info-Fenster erzeugt. Es gab zwar kein Button in der Taskbar ... aber das Infofenster ist nicht sichtbar.

Ich komm hier nich mehr voran ... jemand n Plan?

mfg, mh166

//Edit:

Ich versteh die Welt nich mehr ... grad nochmal aus Verzweiflung rumprobiert ... nu gehts ...

Code:
procedure TfrmQueryResult.FormCreate(Sender: TObject);
begin
  SetWindowLong(Self.Handle, GWL_EXSTYLE, GetWindowLong(Self.Handle, GWL_EXSTYLE)
                or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
end;
Keeeeineee Ahnung, warum das ganze jetzt auf einmal geht und anfangs nich ... Aber soll mir recht sein. Vielleicht hilfts ja jemandem weiter.
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 13. Okt 2009, 19:40
Die Suche hätt dir aber auch diesen Thread gezeigt

Sysbar
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von mh166
mh166

Registriert seit: 14. Nov 2004
Ort: Chemnitz
443 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Fenster mit bsNone aus der Taskleiste ausblenden

  Alt 13. Okt 2009, 20:17
Ich bin auf derartige Lösungen bei meiner Suche schon zur genüge gestoßen. Hatte ich auch alles schon ausprobiert, unter anderem halt auch mit WS_EX_TOOLWIN. Aber ich weiß echt nicht was ich damals anders gemacht hab als jetzt...

Naja, jetzt gehts ja wie gesagt. Danke trotzdem.
Tiefgründige Sätze unserer Zeit:
Zitat von Luckie:
Und diesen Token zur Laufzeit zu modifizieren würde bedeuten, dass du zur laufzeit das Token ändern musst.
  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 12: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