Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Höhe der Taskbar (https://www.delphipraxis.net/73599-hoehe-der-taskbar.html)

Privateer3000 20. Jul 2006 12:13


Höhe der Taskbar
 
Greetz folks,

wie bekommt man die genaue Höhe der taskbar heraus
um sie in ein Integer zu packen?

Grüße
Privateer

Christian Seehase 20. Jul 2006 12:22

Re: Höhe der Taskbar
 
Moin Privateer,

schau Dir doch mal Hier im Forum suchenSHAppBarMessage / MSDN-Library durchsuchenSHAppBarMessage an

mbamler 20. Jul 2006 12:28

Re: Höhe der Taskbar
 
Zitat:

Zitat von Privateer3000
Greetz folks,

wie bekommt man die genaue Höhe der taskbar heraus
um sie in ein Integer zu packen?

Grüße
Privateer

Delphi-Quellcode:
function GetTaskbarHeight: integer;
var
  SysTray: Windows.HWND;
  Rect: TRect;
begin
  Result := -1;
  SysTray := FindWindow('Shell_TrayWnd', nil);
  If SysTray <> INVALID_HANDLE_VALUE then begin
    If GetWindowRect(SysTray, Rect) then begin
      Result := Screen.Height - Rect.Top;
    end;
  end;
end;




function GetTaskbarWidth: integer;
var
  SysTray: Windows.HWND;
  Rect: TRect;
begin
  Result := -1;
  SysTray := FindWindow('Shell_TrayWnd', nil);
  If SysTray <> INVALID_HANDLE_VALUE then begin
    If GetWindowRect(SysTray, Rect) then begin
      Result := Rect.Right - Rect.Left;
    end;
  end;
end;
Gruß
Matthias

Privateer3000 20. Jul 2006 13:16

Re: Höhe der Taskbar
 
Danke, alles klar!
Nochwas, ich glaube 'Shell_TrayWnd'
funktioniert erst ab NT4.
Sollte man das lieber abfangen und
dafür einen Standardwert setzen?
Oder was passiert, wenn ein niedriegeres
OS darauf stösst?

Greetz

cramer 27. Nov 2006 10:07

Re: Höhe der Taskbar
 
Kleine Ergänzung, für alle, die die Taskbar oben im Desktop haben (wo sie hingehört :-)
Delphi-Quellcode:
if Rect.Top <= 1 then Result := Rect.Bottom // Taskbar ist oben *)
                 else Result := Screen.Height - Rect.Top;
*) bei mir (wxp.sp2.d5.ep) ist Top dann -2 und nicht wie ich erwartet hatte 0 oder 1.
Uwe


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