![]() |
Desktop, Koordinaten rechts unten über Startleiste
Ein Progrämmchen von mir sollte rechts unten (sehr klein) in der Ecke direkt über dem Tray erscheinen, falls die Startleiste von Windows unten ist.
Wie bekomme ich heraus, wo die Startleiste überhaupt ist (oben, unten, rechts oder links)? Wie bekomme ich heraus, wie hoch (oder breit) die Startleiste gerade ist? D5 :-) uhd Vista :-( Wonach sollte ich mit der SuFu der DP suchen lassen? Dankeschön! |
Re: Desktop, Koordinaten rechts unten über Startleiste
Versuch es mal etwa so:
Delphi-Quellcode:
Ob das unter Vista funzt, weiß ich allerdings nicht.
var aWnd: HWND;
R: TRect; begin aWnd := FindWindow('Shell_TrayWnd', nil); if aWnd <> 0 then begin GetWindowRect(aWnd,R); ShowMessage(Format('%d: %d, %d: %d', [R.Left, R.Top, R.Right, R.Bottom])); end; end; |
Re: Desktop, Koordinaten rechts unten über Startleiste
wie hoch die Startleiste ist braucht dich nicht zu interessieren weil es außer der Startleiste noch viele andere Leisten gibt. Letzendlich interessiert dich wo rechts unten der freie Bereich ist. Und der freie Bereich nennt sich Workarea. Mit SystemParametersInfo und SPI_GETWORKAREA solltest du diesen Bereich ermitteln können.
|
Re: Desktop, Koordinaten rechts unten über Startleiste
Jens, wie sieht das aber dann bei Multimonitor-Betrieb aus? SystemParametersInfo war mir auch zuerst eingefallen, aber damit weiß ich immer noch nicht, wo sich die Taskleiste befindet, oder? Ich kann das leider nicht ausprobieren, da ich nur einen Monitor habe (ich armer Sack *g*).
|
Re: Desktop, Koordinaten rechts unten über Startleiste
Nimm GetMonitorInfo für bestimmte Workareas.
|
Re: Desktop, Koordinaten rechts unten über Startleiste
Hallo,
Zitat:
Gruß Hawkeye |
Re: Desktop, Koordinaten rechts unten über Startleiste
Vielen Dank für die schnellen und *sehr* hilfreichen Antworten!
Hab' daher DeddyHs
Delphi-Quellcode:
aus einem anderen Thread gerade ausprobiert, funktioniert wie gewünscht (mit D5 unter Vista).
procedure TForm1.FormCreate(Sender: TObject);
var R: TRect; begin SystemParametersInfo(SPI_GETWORKAREA,0,@R,0); self.Left := R.Right - self.Width; self.Top := R.Bottom - self.Height; end; (SystemParametersInfo und SPI_GETWORKAREA wären die beiden SuFu-Begriffe gewesen) Thanks@all! :dp: |
Re: Desktop, Koordinaten rechts unten über Startleiste
Zitat:
D5 auch, was der Fragesteller nur hat? |
Re: [Gelöst] Desktop, Koordinaten rechts unten über Startlei
Naja, der Fragesteller hat in Windows API gepostet, verwendet also gegebenfalls nicht die VCL.
|
Re: [Gelöst] Desktop, Koordinaten rechts unten über Startlei
Zitat:
Sweet Home Alabama All Summer Long! AC/DC All Delphi Long... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz