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

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

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

Beitrag 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.

:|
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag 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
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag von Andreas21 »

Hat wirklich sonst keiner eine Idee ???
:-( :(
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag 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
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag 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.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag 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.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag 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 <>
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag 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
Antworten