Entwickler-Ecke

Windows API - full screen erkennen


Arnulf - Sa 26.03.05 01:31
Titel: full screen erkennen
Hallo
Ich würde gerne wissen ob ein window im full screen läuft oder nicht.

das hier liefert mir leider nur zurück ob das fenster maximiert ist.
aber nicht ob es full screen ist also nicht verschoben werden kann.


Delphi-Quelltext
1:
2:
3:
wp.length := SizeOf (wp);
                    if GetWindowPlacement(FoundGameWindow,@wp) then
                    momo1.lines.add(inttostr(wp.showCmd));


oder hab ich was falsch verstanden?

Danke
Arnulf


toms - Sa 26.03.05 01:53

Hallo!

Na ja, wenn das Fenster die Dimension des Screens hat, ist es im Fullscreen.


GTA-Place - Sa 26.03.05 09:01


Delphi-Quelltext
1:
2:
  if (Form1.Width = Screen.Width) AND (Form1.Height = Screen.Height) then
    ShowMessage('Fullscreen!');


wulfskin - Sa 26.03.05 10:57


Delphi-Quelltext
1:
2:
if WindowStats = wsMaximized then
  {DoWhatYouWant!};


Arnulf - Sa 26.03.05 12:02

Oh ich glaub da hab ich mich falsch ausgedrückt :)
nicht von meinem eigenen programm.
Ich kontrolliere ein anderes programm und wollte wissen ob der user ein anderes fenster im vordergrund hat.

Das muß ich allerdings nur wissen wenn er im vollbild ist also das fenster auch nicht verschieben kann.
man kann ja mit alt tab auf eine andere application wechseln und dann wird das fenster verschiebbar, behaltet aber die gleiche größe also bleibt maximized.

Der grund liegt an einem grafikfehler wenn sich im vollbild zum beispiel ein antivirus drüber legt - dann gibt es grafik fehler und das möchte ich mit meiner appliction checken und entsprechend behandeln.
Das fenster wieder in den vordergrund holen kann ich schon nur checken ob der fall eingetreten ist mach mir probleme :)

Arnulf


wulfskin - Sa 26.03.05 12:53

Hallo,

sags doch gleich ;): Suche im MSDN FINDWINDOW und Suche im MSDN ISZOOMED.

Gruß Hape!


Arnulf - Sa 26.03.05 14:01

isZoomed?
bist du sicher - ich kanns momentan nicht probieren (abend).
Aber ich glaub das hab ich schon probiert.

Aber ich werde es nochmal probieren.. wenns nicht klappt, dann poste ich hald den code :)

Danke jedenfalls
Arnulf


Arnulf - Sa 26.03.05 20:47

Hallo nochmal - leider funktioniert es so nicht:


Delphi-Quelltext
1:
2:
                  if isZoomed(FoundGameWindow) then AddLogEntry('CLNT: isZoomed')
                  else AddLogEntry ('CLNT: is NOT Zoomed');


als antwort bekomme ich in jedem zustand:
is NOT Zoomed

egal ob ich das fenster verschieben kann oder nicht.
Hab doch gewusst, daß ich das schon probiert hab :).

Arnulf


Xanadu - So 08.05.05 14:18

Hi,

erfahrungsgemäß hat der DC im fullscreen negative Werte für .Left, .Top, .Bottom und .Right

Closer bin ich auch noch nicht gekommen.

Have fun with it.