Seite 1 von 1

Screen erkennen

Verfasst: 03.03.2020 22:45
von Olafmagne
Hallo an Alle

Ich habe eine Frage was den Screen betrift

Und zwar wurde ich gerne wissen,ob es möglich ist,irgendwie zu erkennen,
ob es sich um einen 'FullScreen' oder einen 'WindowedScreen' handelt.

Grund ist,das ich dabei bin ein Modul zu schreiben,und dies sowohl im vollbild als auch im 'Window'
laufen soll,aber ein paar Dinge eben im Fenster anders,Windows-Mässig erledigt werden kann,
während im VollBild eine andere Option gewählt werden muss.

Merci

Olaf

Re: Screen erkennen

Verfasst: 04.03.2020 09:03
von Mijikai
Evtl.:

Code: Alles auswählen

Procedure.i IsFullscreenWindow(hwnd.i); 1 = Fullscreen / 2 = Windowed / -1 = Error
  Protected hm.i
  Protected mi.MONITORINFOEX
  Protected wr.RECT
  mi\cbSize = SizeOf(MONITORINFOEX)
  hm = MonitorFromWindow_(hwnd,#MONITOR_DEFAULTTOPRIMARY)
  If GetMonitorInfo_(hm,@mi)
    If IsWindowVisible_(hwnd)
      If GetWindowRect_(hwnd,@wr)
        wr\right - wr\left
        wr\bottom - wr\top
        mi\rcMonitor\right - mi\rcMonitor\left
        mi\rcMonitor\bottom - mi\rcMonitor\top
        CloseHandle_(hm)
        If wr\right = mi\rcMonitor\right And wr\bottom = mi\rcMonitor\bottom
          ProcedureReturn 1  
        Else
          ProcedureReturn 0
        EndIf    
      EndIf
    EndIf
  EndIf
  CloseHandle_(hm)
  ProcedureReturn -1
EndProcedure

Re: Screen erkennen

Verfasst: 05.03.2020 04:01
von Olafmagne
Salut
wenn ich das jetzt richtig interpretiere,ist das Win-Api?

gibt's da auch was Ohne?

bin zZt mit Win nicht so freund,daher suche ich ein Linux-Lösung
kenne mich aber mit der Api da garnicht aus
werde es aber für Win auf jeden Fall speichern!

Merci erst mal dafür

Olaf

Edit:
Sorry,ich hab meinen ersten Beitrag grade noch mal durchgelesen,
ist ein wenig irreführend!
mit Windowmässig meinte ich,dass in einem Fenster Events generiert werden,
im Screen eben nicht,so dass ich zB bei WindowedScreen ein TimerEvent nutzen kann,
bei einen FullScreen nicht...
Olaf

Re: Screen erkennen

Verfasst: 05.03.2020 05:24
von Demivec
Olafmagne hat geschrieben:mit Windowmässig meinte ich,dass in einem Fenster Events generiert werden,
im Screen eben nicht,so dass ich zB bei WindowedScreen ein TimerEvent nutzen kann,
bei einen FullScreen nicht...
Mit FullScreen kann weiterhin ein verstecktes Fenster geöffnet werden, um Timer zu verwenden.

Code: Alles auswählen

keinFenster = OpenWindow(#PB_Any, 0, 0, 50, 50, ##PB_Window_Invisible |  #PB_Window_BorderLess | #PB_Window_NoGadgets | #PB_Window_NoActivate)
 ;Timer können jetzt auch mit WindowEvent () in FullScreen verwendet werden.
 ;AddWindowTimer(keinFenster, Timer, Timeout)

Re: Screen erkennen

Verfasst: 05.03.2020 15:15
von Olafmagne
Ich steh im Wald und seh die Bäume nicht!!!

Na klar ein invisible window is nu aber auch zu einfach,da kommt mann nich drauf!

bis ich die Linux-Api kappiert hab,muss es so gehen!


Danke

Olaf