Récupérer le nom de l'écran actif

stefmo

Habitué
Bonjour,

Je viens vous voir car j'ai besoin d'un petit coup de main:

j'ai 2 écrans connectés :
- un moniteur qui n'accepte pas le 24Hz
- un vidéoprojecteur qui lui l'accepte.

pour regarder une vidéo, il existe une fonction de Mediaportal qui permet de lire la fréquence du film et d'aller modifier la fréquence de l'écran pour plus de fluidité. Malheureusement on ne peut créer des profils et des conditions que pour une seule sortie, sans discernement quant à l'écran en route.

Donc, j'ai écrit un petit script qui permet de connaitre l'écran actif et de lancer en fonction, tel ou tel profil (en gros profil 24Hz pour le proj et 50Hz pour le moniteur pour un film en 24Hz).
C'est en python avec la bibliothèque wxPython : Display().GetName()

Problème : la donnée que je suis capable de récupérer donne comme résultat qqch comme DISPLAY1 ou DISPLAY2. Et ces DISPLAY ne restent pas attribués de façon fixe au grès des reboot : des fois DISPLAY1 sera le moniteur, des fois ce sera le projecteur.

Et ça crée des comportements embêtants comme lancer un profil moniteur et rebasculer sur le moniteur alors que je suis sur le projecteur.

J'ai tenté d'aller piocher les données EDID dans le registre avec par exemple MonitorViewInfo, mais on dirait que les données ne se mettent pas à jour automatiquement quand je passe du moniteur au proj, et inversement.
Par exemple, MonitoInfoView me donne :
Monitor Name : PLB2712HDS (mon moniteur)
Active : Yes
Monitor Name : VPL-VW40 (mon proj)
Active : No

et ne change pas quand je bascule sur le projecteur.

J'ai jeté un coup d’œil a win32api avec des choses comme win32api.EnumDisplayDevices, mais j'obtiens pas des trucs très exploitables, ou alors seulement les fameux DISPLAYx (faut aussi savoir que je suis très loin d'être une pointure en programmation, et en python...)

Des idées ?

Merci d'avance

stef
 

stefmo

Habitué
Hum....

Mon problème est soit pas très commun, soit très mal expliqué pour qu'il ne récolte aucune réponse en 7 jours...

Au moins une petite piste ?

Et Bonnes Fêtes en passant !!!!
 

Ludovic 500

Grand Maître
salut,

pour l'identification non changeante des DisplayX, tu as essayé de démarrer le vidéo projecteur uniquement après la fin du chargement de windows? histoire que le display1 soit toujours l'écran, et le 2 le projecteur?
 

stefmo

Habitué
Salut et merci pour ta réponse

Le problème survient quand, par exemple, le pc se coupe en étant alors sur le projecteur (j'habite en pleine campagne, et la stabilité du réseau électrique... enfin, voilà... je sais un onduleur serait un bon investissement). C'est à ce moment là je pense que le pc rédémarre et change l'attribution des DISPLAYx.
Et là je te vois venir, dans ces cas là, au moment du reboot, je devrais couper le projecteur, re-rebooter sur l'écran et ensuite rebasculer sur le projecteur.
C'est peut être la seule façon de faire, mais pour le principe, devoir prendre des précautions à la place du pc c'est pas vraiment signe d'une installation solide...

Bon OK je chipote... Si y a pas mieux je m'en contenterai, et encore merci pour ton intervention.

Stef
 

Ludovic 500

Grand Maître
plutôt que de couper le projecteur, qui cela dit en passant, ne doit guère apprécier, seulement le débrancher s'il est en hdmi? puis le rebrancher?

même remarque, l'onduleur te protègerait le pc mais aussi le projecteur, car des coupures inopinées, ça doit pas aimer non plus, surtout pour la lampe, non?

enfin, je dis ça....

il n'y a pas moyen rendre l'écran prioritaire pour windows? je crois avoir vu ça dans les propriétés d’affichage de mon laptop pro (sous win7 pro) quand je lui connecte un second écran.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 059
Membres
1 586 285
Dernier membre
LeFront
Partager cette page
Haut