AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie kann ich prüfen ob die Taskbar gerade angezeigt wird?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich prüfen ob die Taskbar gerade angezeigt wird?

Ein Thema von aMuTeX · begonnen am 4. Sep 2003 · letzter Beitrag vom 9. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
aMuTeX

Registriert seit: 8. Mai 2003
Ort: Luzern
54 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Wie kann ich prüfen ob die Taskbar gerade angezeigt wird?

  Alt 4. Sep 2003, 16:26
Sowas wie

Code:
if TaskBar.Visible then ...
gibts wohl nicht? Oder?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 16:36
Ausserdem müsste es eh so heißen
 if Taskbar.Visible = true {oder false} then... Was hast du überhaupt vor???
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#3

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 16:40
Zitat von Spider:
Ausserdem müsste es eh so heißen
 if Taskbar.Visible = true {oder false} then...
Und wo ist der Unterschied zu dem Code von aMuTeX? Das = treu kann man weg lassen!!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 16:41
Schreib es bitte nicht SO

Zitat:
if Taskbar.Visible = true {oder false} then...
das erzeugt zuviel Code und ist langsam.
außerdem ist der Programmierer faul

ALSO

Zitat:
if Taskbar.Visible then...

Ganz nebenbei

mittels SHAppBarMessage und dem Handle der SysTray (TaskBar) kann man das erfragen.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#5

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 16:42
Zitat:
if Taskbar.Visible = true {oder false} then...

if TaskBar.Visible then ...
Beide Varianten sind möglich und in der Negation kann man auch schreiben:


Delphi-Quellcode:
var a : boolean;

if not a then ...

 //oder

if a = false then ...
ist beides möglich.

Gruß. DANNYBOY
  Mit Zitat antworten Zitat
aMuTeX

Registriert seit: 8. Mai 2003
Ort: Luzern
54 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 16:57
@neolithos


wie meinst du das? Kannst du bitte etwas präziser werden?

Code:
function IsTaskbarVisible: Boolean;
var
  tabd: TAppBarData;
begin
  FillChar(tabd, SizeOf(TAppBarData), 0);
  tabd.cbSize := SizeOf(TAppBarData);
  if SHAppBarMessage(ABM_GETTASKBARPOS, Tabd) = 0 then Exit;
  Result := tabd. ????;
end;
Wo im TAppBarData Objekt steht denn nun ob die sie gerade angezeigt wird oder nicht?

Danke für eure Hilfe.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 4. Sep 2003, 17:27
Erstmal in der MSDN steht die weißheit


Delphi-Quellcode:
abd.cbSize := SizeOf(app);
abd.rc := Rect(0, 0, 0, 0);
abd.lParam := 0;
abd.hWnd := FindWindow('Shell_TrayWnd', nil); // Handle auf Taskbar
SHAppBarMessage(ABM_GETSTATE, abd);
if (abd.lParam and ABS_AUTOHIDE) = 0 then
   begin // ist nicht AutoHide-Mode
     // Prüfung ob benutzer Sie klein gezogen hat is ja fast unsichtbar
     SHAppBarMessage(ABM_GETTASKBARPOS, abd);
     ...
  else
     // unsichtbar
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
aMuTeX

Registriert seit: 8. Mai 2003
Ort: Luzern
54 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 8. Sep 2003, 15:51
Also bei mir funktioniert das irgendwie nicht, oder wir verstehen uns falsch

Ist das evtl. vom OS abhängig? Ich benutze WinNT4SP6 und Delphi 6.

abd.lParam ist immer 0. Egal ob AutoHide eingeschaltet ist oder nicht.

Aber ich will ja eigentlich auch gar nicht wissen ob AutoHide ein ist oder nicht. Ich will nur wissen ob die Taskbar sichtbar ist oder nicht. Also wenn AutoHide = False und AlwaysOnTop = True dann ist ja die Taskbar immer sichtbar. Aber bei AutoHide = False kann die Taskbar ja versteckt sein oder eben sichtbar. Je nachdem wo die Maus gerade ist. Wie finde ich das raus?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#9

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 8. Sep 2003, 16:26
Reicht dir vielleicht das...

Delphi-Quellcode:
if IsWindowVisibleFindWindow('Shell_TrayWnd', nil)) then
   Sichtbar
else
   UnSichtBar
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
aMuTeX

Registriert seit: 8. Mai 2003
Ort: Luzern
54 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Wie kann ich prüfen ob die Taskbar gerade angezeigt wird

  Alt 9. Sep 2003, 09:54
Das geht leider auch nicht

IsWindowVisible ist immer True. Auch wenn die Taskbar gerade ausgeblendet ist. Läuft das bei dir? OS?

Vielleicht noch andere Ideen?

Danke für jeden Tipp.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:11 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