Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Prüfen auf Apps im Fullscreen-Mode
Emmi83
myCSharp.de - Member



Dabei seit:
Beiträge: 109

Themenstarter:

Prüfen auf Apps im Fullscreen-Mode

beantworten | zitieren | melden

Hallo Leute,

kann mir jemand sagen, wie ich prüfe, ob sich gerade irgend eine Applikation im Fullscreen-Mode befindet?

Beispiel:
Mein Programm läuft im Hintergrund und bringt durch ein Event eine Form zur Ansicht. Dies sollte nun aber nicht passieren wenn z.B. eine PowerPoint-Präsentation oder ein Spiel im Fullscreen-Mode läuft.

Wie kann ich das prüfen?

Viele Grüße,
Emmi
Es gibt keine Probleme - nur Herausforderungen!
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Ich vermute mal, dir geht es darum, dass der Bildschirm umgeschaltet wird (also zum Beispiel das Spiel minimiert wird).
Mir ist nun aufgefallen, dass es Popups gibt, bei denen umgeschaltet wird, bei anderen hingegen nicht. Wird damit vermutlich an den Fenstereigenschaften liegen.
Mein erster Verdacht wäre, dass man dieses Verhalten über den Rahmen des Fensters beeinflussen kann (also ob Fenster, Dialog, Toolwindow etc).
Das könntest du mal austesten.
private Nachricht | Beiträge des Benutzers
Emmi83
myCSharp.de - Member



Dabei seit:
Beiträge: 109

Themenstarter:

beantworten | zitieren | melden

Hi Borg,

genau anders rum
Ich will, dass die Applikation im Vollbild-Modus gelassen wird. Ich möchte nur wissen wie man prüft, ob irgend eine Applikation im Vollbild-Modus gerade ausgeführt wird.
Es gibt keine Probleme - nur Herausforderungen!
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

So meinte ich es. Nur ist die Lösung des einen Problems auch die Lösung der Negation...
private Nachricht | Beiträge des Benutzers
Emmi83
myCSharp.de - Member



Dabei seit:
Beiträge: 109

Themenstarter:

beantworten | zitieren | melden

Naja, ich dachte mir eigentlich eher was anderes. Vielleicht erst mal Objekte von allen laufenden Applikationen besorgen und dem entsprechend auswerten. Nur wie hab ich halt keine Ahnung
Es gibt keine Probleme - nur Herausforderungen!
private Nachricht | Beiträge des Benutzers
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3795
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Hallo Emmi,

ob das aktuelle Form im Vollbildmodus ist stellst Du so fest

if (this.WindowState == FormWindowState.Maximized) ...

Ob das Hauptfenster im Vollbildmodus ist geht so :

if (Hauptfenster.ActiveForm.WindowState == FormWindowState.Maximized) ...

Hmm, ich sehe gerade Du meinst nicht die eigene Applikation sondern irgendeine. Da kann ich leider nicht weiterhelfen.

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Mit der API-Funktion FindWindowEx kannst du alle Fenster suchen und dann deren WindowState abfragen.
Das Problem ist denke ich, dass es verschiedene Arten von Vollbildmodus gibt. So zum Beispiel DirectX, Video-Overlay, GDI+ ...

Ich weiss leider auch nicht, wie man diese alle eindeutig erkennen kann. Eventuell hilft es ja zu prüfen, ob die Taskleiste auf "immer im Vordergrund" gestellt (Registry) und sichtbar (FindWindowEx) ist. Sobald man eine andere Einstellung der Taskleiste hat, wird das aber wieder nicht mehr helfen.

Eventuell gibt es ja in jeder der einzelnen Komponenten eine Routine um dies zu prüfen. Zumindest bei DirectX müsste das Device ja dann gesperrt sein...
private Nachricht | Beiträge des Benutzers
Emmi83
myCSharp.de - Member



Dabei seit:
Beiträge: 109

Themenstarter:

beantworten | zitieren | melden

Vielen Dank für eure Tipps, ich werde sie mal ausprobieren
Es gibt keine Probleme - nur Herausforderungen!
private Nachricht | Beiträge des Benutzers
EggaPauli
myCSharp.de - Member

Avatar #avatar-2303.jpg


Dabei seit:
Beiträge: 29

beantworten | zitieren | melden

Hi!

Hab gerade das gleiche Problem, jedoch weiß ich nicht mal wie man die API-Funktion FindWindowEx aufruft!

Hat sonst vlt. jemand schon ne Lösung?

mfg EggaPauli
private Nachricht | Beiträge des Benutzers
sbertl000
myCSharp.de - Member

Avatar #avatar-2350.png


Dabei seit:
Beiträge: 823
Herkunft: Wien

beantworten | zitieren | melden

http://www.pinvoke.net/default.aspx/user32/FindWindowEx.html

oder

http://msdn2.microsoft.com/en-us/library/ms633500.aspx

sbertl
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von sbertl000 am .
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1548
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Hast du hier im Forum schon mal danach gesucht?
private Nachricht | Beiträge des Benutzers
EggaPauli
myCSharp.de - Member

Avatar #avatar-2303.jpg


Dabei seit:
Beiträge: 29

beantworten | zitieren | melden

OK, ich glaub ich weiss jetzt, dass man mit FindWindowEx andere Fenster manipulieren bzw. kontrollieren kann, aber wie ich herausfinde, ob das andere Fenster jetzt FullScreen ist oder nicht hab ich nirgends gefunden!

mfg EggaPauli
private Nachricht | Beiträge des Benutzers