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