Die Größe des ersten Fensters ermitteln

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Die Größe des ersten Fensters ermitteln

Beitrag von man-in-black »

Moin moin,

mein Titel erklärt eigendlich schon alles.
Doch ums nochmal kurz zu sagen:

Ich würde gerne die Höhe und die Breite des obersten Fensters auf dem Desktop ermitteln, habe aber keine Ahnung wie! :cry:
Aus diesem Grund hoffe ich, dass es für mein Problem einen passenden Api gibt.

MFG,
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Um das oberste Fenster zu kriegen:
Meinst du das, das den Fokus hat, oder das, das dem Benutzer am nächsten ist (dies schließt Sticky-Windows mit ein).

GetForegroundWindow_() für das, das den Fokus hat
GetTopWindow_() ist glaube ich für das, das bei der Z-Order am obersten ist

Danach bruachst du nur noch GetWindowRect_() benutzen, um zwei Koordinaten eines bestimmten Fensters zu erhalten: Die obere linke Ecke und die untere rechte Ecke, davon erhälst du die Koordinaten und kannst dir alles selbst ausrechnen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Beitrag von man-in-black »

perfekt! :allright:
Besser und schneller als ich dachte,DANKE!
:o
MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
man-in-black
Beiträge: 362
Registriert: 21.08.2006 17:39

Beitrag von man-in-black »

Naja, wo ich mir den zweiten Befehl so angucke,
scheint mir eines unklar: :oops:

WIE ist das mit dem zweiten Parameter von GetWindowRect() gemeint? :oops:

WIE macht man das? :| :roll:

MIB
(hab alles, kann alles, weiß alles!!^^)

Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1)

*hwndActive = GetForegroundWindow_()

GetWindowRect_(*hwndActive,wrc.RECT)

Debug "Breite: " + Str(wrc\right-wrc\left)
Debug "Höhe: " + Str(wrc\bottom-wrc\top)

While WaitWindowEvent() ! 16 : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Kannst du bitte die Frage ganz lesen, hier noch mal:
Moin moin,

mein Titel erklärt eigendlich schon alles.
Doch ums nochmal kurz zu sagen:

Ich würde gerne die Höhe und die Breite des obersten Fensters auf dem Desktop ermitteln, habe aber keine Ahnung wie!
Aus diesem Grund hoffe ich, dass es für mein Problem einen passenden Api gibt.

MFG,
MIB
sim0n
Beiträge: 131
Registriert: 12.09.2004 13:18
Kontaktdaten:

Beitrag von sim0n »

Das Fenster das aktuell den Fokus besitzt ist doch immer das oberste Fenster, oder etwa nicht?

Also müsste

Code: Alles auswählen

GetForegroundWindow_()
genau das richtige sein!
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

AND hats ausgezeichnet beantwortet :allright: !
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Vielen Dank! :D
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten