Seite 1 von 2

Fremd Fenster abfragen ob im Fenster oder Vollbild Modus ???

Verfasst: 25.11.2004 16:43
von Andreas21
Hei,

ich habe das Problem das ich ein Fremd Fenster Checken will.
Also ob es als Fenster oder im Vollbild angezeigt wirt.

Ich habe schon einiege API Seiten durch forstet und auch einige VB Seiten da es nicht schwer ist VB code zu PB zu übersetzen (kleine teile nicht ganze Programme)

Meine Frage:
Gibts eine möglichkeit an hand des Handels oder ProcessID den Typ des Fenster zu ermitteln? Also ob es im Fenster Modus oder Vollbild Modus Aktive ist.

:|

Verfasst: 25.11.2004 16:59
von DarkDragon
Also ich wüsste nicht, wie das gehen soll. Allerhöchstens kannst du das an der Größe und am Stil rausfinden. Mehr könnte man da nicht tun. und dann weißt du auch nicht ganz genau, ob es ein Vollbildfenster ist.

Verfasst: 25.11.2004 17:13
von Andreas21
:cry:

Mit der grösse ist ja halt das Problem :-(
Das Vollbild Fenster ist 640x480 Pixel. Und der
Desktop ist meistens Grösser aber halt nur
meistens. Es gibt leider noch einiege PC nutzer
die 640x480 Pixel haben und da wirts dann schwierieg :-(

Aber kann man GetWindowLong_ da nicht nutzen?

MSDN:
http://msdn.microsoft.com/library/defau ... owlong.asp

Und dann nach dem Window Styles heraus bekommen worum es sich handelt ?

MSDN:
http://msdn.microsoft.com/library/defau ... Styles.asp

Verfasst: 27.11.2004 17:39
von Andreas21
Hat wirklich sonst keiner eine Idee ???
:-( :(

Verfasst: 27.11.2004 18:13
von Kaeru Gaman
also, ich hab vor längerem mal ein bisschen VB geproggt.

es wird durch ein flag in der eigenschaftenliste bestimmt, ob es in voll, fenster oder minimiert startet.

ebenso muss ein flag existieren, das den momentanen zustand darstellt, denn die buttons oben rechts stellen ihn ja dar, also muss er ausgelesen werden können.

allerdings hab ich nicht den blassesten, wo dieses flag steht.
vielleicht solltest du mal die MSDN online durchforsten, dort könntest du halbwegs brauchbare hinweise finden.
MS ist mit der weitergabe solcher informationen immer sehr geizig.

good luck.

Verfasst: 27.11.2004 21:16
von Andre
Hier mal ein Beispiel aus dem kommenden CodeArchiv:

Code: Alles auswählen

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=581&highlight=
; Author: nco2k (extended by Andre)
; Date: 24. October 2004
; OS: Windows
; Demo: No

OpenWindow(0,100,100,300,100,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"Check for minimize event...")

Repeat
Event = WaitWindowEvent()

If Event
If IsIconic_(WindowID()) 
  Debug "Fenster ist minimiert" 
ElseIf IsZoomed_(WindowID()) 
  Debug "Fenster ist maximiert" 
ElseIf WindowID() 
  Debug "Fenster ist normal" 
Else 
  Debug "kein aktuelles Fenster" 
EndIf
EndIf
Until Event = #PB_Event_CloseWindow

Verfasst: 27.11.2004 23:39
von Andreas21
Andre hat geschrieben:Hier mal ein Beispiel aus dem kommenden CodeArchiv:

Code: Alles auswählen

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=581&highlight=
; Author: nco2k (extended by Andre)
; Date: 24. October 2004
; OS: Windows
; Demo: No

OpenWindow(0,100,100,300,100,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget,"Check for minimize event...")

Repeat
Event = WaitWindowEvent()

If Event
If IsIconic_(WindowID()) 
  Debug "Fenster ist minimiert" 
ElseIf IsZoomed_(WindowID()) 
  Debug "Fenster ist maximiert" 
ElseIf WindowID() 
  Debug "Fenster ist normal" 
Else 
  Debug "kein aktuelles Fenster" 
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Danke führ eure Hilfe und den Code aber der Code kann mann nur bei Fenster nutzen den Maximieren will aber danach immer noch ein Fenster ist. Ich meine ein Vollbild Fenster das nicht von PB ist.

Verfasst: 27.11.2004 23:45
von MVXA
Du kannst mit diesem Code auch andere fremde Fenster überprüfen /:->. Wie du die IDs der anderen Fenster ermitteln kannst, ist einfach. Schau mal in das Codearchiv.

Verfasst: 27.11.2004 23:57
von Andreas21
Das ist mir schon klar ;-)
Es ging mir nur darum das mann mit dem Code nicht testen kann ob es im Vollbild Modus ist da man damit nur 3 Typen herausfinden kann.

Also ob ein Fenster:
  • Minimirt ist
    Normal ist
    oder Maximiert ist
Maximiert != Vollbild

P.S.
!= ist <>

Verfasst: 28.11.2004 00:40
von traumatic
Also irgendwie verstehe ich diesen Thread nicht so ganz.

Andreas21, Du willst doch herausfinden, ob eine fremde Anwendung
Fullscreen läuft, oder? Es geht hierbei nicht um Dein eigenes Programm, richtig?

Was für eine Anwendung ist das denn?

Ich frage deshalb, weil die Aufrufe, um eine Fullscreen-Anwendung zu
erstellen, sehr unterschiedlich ausfallen können.

Beispielsweise würde man ein Fenster, welches zur Verwendung von OpenGL
erstellt wurde, mit einem Aufruf von

ChangeDisplaySettings_(DevModeSettings, #CDS_FULLSCREEN)

zum Fullscreen-Mode überreden
(DevModeSettings ist hierbei eine ordnungsgemäß gefüllte DEVMODE-Structure).


Ganz anders z.B. bei Direct3D:

Hier würde man bereits in der Structure D3DPRESENT_PARAMETERS das
Windowed-Flag auf #FALSE setzen und das ganze dann an CreateDevice()
übergeben.

Die D3DPRESENT_PARAMETERS lassen sich auch wieder auslesen
(GetPresentParameters()), hierzu muss Dir allerdings der Pointer zur
SwapChain bekannt sein (fullscreen/windowed-Switching kann so
zur Laufzeit gemacht werden).


Die Frage wäre also erstmal: Was genau hast Du eigentlich vor? :o