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, ob anderes Programm eines Programm überdeckt
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1.371
Herkunft: Deutschland

Themenstarter:

Prüfen, ob anderes Programm eines Programm überdeckt

beantworten | zitieren | melden

Hallo,

ich hätte mal eine etwas speziellere Frage.

Ich führe in einer WPF-Anwednung regelmäßig Aktualierungen durch und möchte diese nicht durchführen, wenn die Anwednung von einem anderen Programm überdeckt wird. Allein die Prüfung, ob die Anwendung den Fokus hat, genügt leider nicht.

Beispiel1:
Die Software liegt auf dem zweiten Bildschirm, hat keinen Fokus (ist aber sichtbar), da auf dem ersten Bildschirm in einem anderen Programm gearbeitet. Hier sollen Aktualisierungen auf dem zweiten Bildschirm stattfinden.

Beispiel2:
Das Gleiche wie in Beispiel1, nur dass das Programm auf dem zweiten Bildschirm von z.B. einem Browser überdeckt wird. Hierbei sollen diesmal keine Aktualisierungen stattfinden, weil das Programm nicht sichtbar ist.


Wie könnten man überprüfen, ob die Anwendung durch ein anderes Fesnter überdeckt wird?
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers
UZI
myCSharp.de - Member



Dabei seit:
Beiträge: 189

beantworten | zitieren | melden

Hallo Maddinel,
ziemlich kompliziert, ich würde es irgendwie so lösen, dass du mit GetForegroundWindow das aktuelle Fenster und dessen Position abrufst, und mit der Position deines eigenen Fensters vergleichst, Problem wäre jetzt nur dass ja auch nicht aktuelle Fenster vor deinem Programm sein können.
Meiner Meinung bleibt da nur die Möglichkeit alle Positionen aller Fenster zu überprüfen. Vl.etwas umständlich aber es kommen noch bestimmt bessere Ideen hierher

UZI
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Hallo Maddinel,

ich glaube es könnte funktionieren, einen Screenshot von deinem Fenster zu machen (via DrawToBitmap IMHO).
Schwarze Stellen darin sind nicht sichtbar bzw. werden von anderen Fenstern verdeckt.


Hmm - ne, geht nicht.
Ich hatte eigentlich in Erinnerung, dass wenn man versucht, von einem verdeckten Fenster einen Screenshot zu machen, dieser schwarze Elemente enthält.
Ist aber wohl nicht (mehr?) so.
private Nachricht | Beiträge des Benutzers
Maddinel
myCSharp.de - Member

Avatar #avatar-3180.gif


Dabei seit:
Beiträge: 1.371
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

@UZI:
Habe ich fast befürchtet, dass ich alles durchlaufen mus :( Dann bin ich mir leider nicht mehr sicher, ob ich das wirklich umsetzen sollte.

@winSharp93:
Coole Idee - schaaade, dass es nicht mehr so zu sein scheint, hätte ich gerne mal getestet.
==============================
Wenn ichs wüsst', würd' ich nicht fragen!!!
==============================
private Nachricht | Beiträge des Benutzers