J'ai écrit un petit programme (au départ pour mon usage personnel), mais il pourrait bien être utile à ceux qui veulent utiliser un PCHC avec une résolution différente sur leur moniteur et leur projo...
Présentation de l'application:
Run2mon.exe est un petit utilitaire permettant de configurer un écran (activation d'écran secondaire, changement de résolution/fréquence) avant de lancer une application quelconque (mais à priori un soft de lecture de DVD), et de déplacer la fenêtre d'affichage vers l'écran voulu si elle n'y est pas déjà. Quand on quitte l'application, les paramètres peuvent être automatiquement restaurés (y compris la suppression de l'écran du desktop).
L'installation est très simple, il suffit de mettre l'exe avec son .ini dans un répertoire quelconque, et on l'ajoute sur la ligne de commande d'une icône du bureau, comme ceci:
Original:
"c:\program files\appli\appli.exe" <paramètres>
Ajouter l'appel devant:
c:\program files\run2mon\Run2mon.exe" HD "c:\program files\appli\appli.exe" <paramètres>
Le plus simple est de copier un raccourci existant avant d'éditer sa ligne de commande.
Ca marche normalement avec n'importe quelle application. Le premier paramètre est le nom du profile utilisé dans le fichier run2mon.ini, dans le même répertoire que l'exe. C'est le nom de la section où les paramètres sont écrits (donc en dessous de la ligne [HD], avec les crochets). Il n'y a pas de limite au nombre de sections possibles.
Voici les paramètres disponibles:
MonitorDevice=1
-> indique sur quel écran l'appli doit se trouver, le zéro étant l'écran primaire, le un étant l'écran secondaire.
PixelWidth=1280
PixelHeight=720
PixelBits=32
Frequency=50
Interlaced=No
-> paramètres de configuration à forcer sur l'écran. Si l'une des valeurs vaut -1, la configuration restera telle quelle, mais l'appli cible sera lancée sur l'écran choisi (MonitorDevice)
RestoreWhenExit=Yes
-> Mettre Yes ou No selon si on veut que la configuration originale soit restaurée sur le moniteur choisi (registry + settings)
RestoreFromRegistry=Yes
-> Valable uniquement quand RestoreWhenExit=Yes. Si c'est "Yes", la configuration remise lorsqu'on quitte l'appli cible est celle stockée dans la registry, sinon celle qui a été trouvée au lancement de Run2mon. "No" ne doit normalement être utilisé que pour des cas particuliers (conservation d'une config non sauvée dans la registry)
TrackWindow=Yes
-> Si c'est "No", on se contente de lancer le process avec des paramètres d'info. Ca ne marche donc qu'avec les applis qui ouvrent leur fenêtre principale avec les paramètres indiquant une position par défaut, ce qui est rare de nos jours (et dans ce cas, il ne se passera rien). Quand on le met sur "Yes", les fenêtres créées par le process sont examinées, et repositionnées dynamiquement après lancement de l'application cible.
ProcessInitTime=2000
-> Temps d'attente initial avant d'examiner les fenêtres créées par l'appli (en millisecondes). A augmenter en cas de problèmes (ne serait-ce que pour laisser un peu de temps à la carte graphique pour initialiser le mode, et à l'application cible pour finir d'initialiser ses fenêtre avant qu'on chamboule tout)...
RegistryRootKey=\HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{E4E4D78D-DFD8-41E1-9AD5-0F58292616DB}\0000
-> Optionnel: permet de dire quelle clé modifier dans la registry avant de changer le format d'écran. Je m'en sers pour attacher le projecteur au desktop de Windows uniquement quand mon appli H3D tourne. Ainsi, ma config par défaut est uniquement avec mon moniteur CRT actif, et le projecteur n'est alimenté que quand l'appli H3D tourne. Cette clé dépend du matériel installé. Il faut donc vérifier dans la registry qu'elle est bonne, à cet endroit:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEO
Il existe des clés nommées "\Device\Video0", "\Device\Video1", etc. La chaine associée indique à quel endroit chercher dans la registry pour chaque moniteur (attention, le début n'est pas absolument identique au format "standard" exigé par RegistryRootKey, un simple copier coller ne convient pas, mais c'est très facile à comprendre).
RegistryValueList=RADEON
-> Va avec le précédent: indique l'entrée de section dans Run2mon.ini qui contient la liste de valeurs à modifier préalablement. Dans le cas de ma radeon 9600 SE avec les derniers drivers Catalyst, il n'y en a qu'une : "Attach.ToDesktop". La valeur originale est sauvegardée et restaurée en quittant, si RestoreWhenExit=Yes. Attention, il est très possible que ce soit différent avec d'autres drivers, il faut donc vérifier ce qu'on a avec Regedit.
MoveInvisibleWindows=No
-> Si on le met sur Yes, les fenêtres invisibles sont aussi déplacées sur le moniteur choisi. C'est a priori à ne pas faire. (c'était pour du debug)
WindowTitleFilter=
J'avais prévu ça pour les cas tordus, pour ne déplacer que les fenêtres dont le titre contient la chaine de caractère mise en paramètre. A voir si ça rend service à quelqu'un...
SaveLog=Yes
Permet de générer un fichier Run2mon.log dans le répertoire où se trouvent Run2mon.exe et Run2mon.ini. C'est un fichier texte qui donne un rapport de fonctionnement et décrit les erreurs trouvées. C'est très utile quand on veut voir ce qui se passe
![;)](https://www.homecinema-fr.com/forum/images/smilies/icon_wink.gif)
Dans la pratique, quand on clique sur l'icône modifiée, l'appli examine les moniteurs disponibles, sélectionne le bon, applique si besoin est la modif dans la registry avant d'envoyer un reset au moniteur (ce qui l'active dans mon cas), applique ensuite si nécessaire les paramètres de format d'écran, puis lance l'exécutable fourni en paramètre. L'appli apparait alors sur le moniteur primaire, selon son setup (mode full screen ou fenêtré). Sa fenêtre est ensuite migrée sur l'autre moniteur. Si elle était en full screen, elle passe temporairement en mode icône, parce qu'on ne peut pas changer directement le moniteur assigné à une fenêtre full screen. Ensuite, Run2Mon ne fait plus rien et attend la fin du process (conso CPU absolument nulle, conso mémoire ridicule). Quand l'appli se ferme, les paramètres écran trouvés au départ sont restaurés (chez moi, la sortie DVI dédiée au projo se coupe).
Dans le .ini, il n'y a qu'un seul profile (que j'ai appelé "HD"), mais le but est d'en créer plusieurs, notamment pour forcer les fréquences en 50 ou 60 Hz selon qu'on est en PAL ou en NTSC. Ce qui n'obligerait qu'à avoir deux icônes différentes sur le bureau...
Cela dit, ce n'est pas un powerstrip: ça ne peut pas faire marcher une config refusée par le driver de la carte graphique (en cas de mode invalide sélectionné, si le fichier de log est actif, ça donne la liste des modes acceptables dans le log. Avec une remarque: les modes ayant une fréquence donnée à 0 ou 1 Hz signifient "fréquence par défaut", donc a priori 60 Hz)
J'espère que ça marchera aussi bien chez vous que chez moi
![;)](https://www.homecinema-fr.com/forum/images/smilies/icon_wink.gif)
A bientot
Georges
[EDIT] Le fichier à télécharger a évolué depuis cette première version, il est désormais un peu plus bas sur la page, dans ce post.