Modifier la disposition d'affichage via le lot / la ligne de commande sous Windows 7

12

Je souhaite modifier la disposition d'affichage de mon ordinateur via la ligne de commande. J'ai 2 moniteurs configurés, étendus et je veux changer la configuration des moniteurs de Dual Display à Single Display et vice-versa via la ligne de commande.

J'ai jeté un œil à QRes et nircmd. Alors que QRes ne prend pas entièrement en charge les multimoniteurs, nircmd ne peut pas désactiver un moniteur, mais uniquement changer l'état principal et la résolution des écrans séparés.

Ce serait apprécié si vous connaissez un moyen de le faire.

Edit: je posterai ma solution ici en utilisant le changeur d'affichage en climenoles réponse:

@echo off
REM setting to single screen
echo *** Disabling Screen 2 *** 
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

echo Starting TF2 -fullscreen -novid -console -w 1920 -h 1200
REM Starting Team Fortress 2 fullscreen
cd C:\Program Files (x86)\Steam
Steam.exe -applaunch 440 -fullscreen -novid -console -w 1920 -h 1200

REM pausing because steam.exe returns before TF2 quits
echo Press a key to reenable Screen 2
pause
cd C:\Program Files (x86)\12noon Display Changer\
dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary
private_meta
la source
Votre message m'a en fait donné l'idée de cette fonctionnalité que j'ai ajoutée à TvGameLauncher. Vérifiez-le s'il est toujours pertinent (voir ma réponse ci-dessous).
Ohad Schneider
Hé, je sais que cette question est ancienne mais je veux savoir s'il existe un moyen de détecter la présence d'un autre moniteur dans Windows à partir de la ligne de commande?
Durga Swaroop

Réponses:

8

Cet utilitaire peut vous aider: Changeur d'affichage :

«Display Changer change la résolution d'affichage, exécute un programme, puis restaure les paramètres d'origine. Il peut également modifier la résolution de façon permanente et réorganiser les moniteurs dans une configuration à plusieurs moniteurs »

Fonctionne en interface graphique ou en ligne de commande et est gratuit pour un usage personnel ...

http://12noon.com/?page_id=80

J'espère que cette aide. Faites le nous savoir.

climenole
la source
Votez pour une bonne réponse, mais cela ne fonctionnera pas de cette façon. J'essaie de lancer un jeu Steam de cette façon. Le lancer via le "steam: // rungameid / #" ne fonctionne pas car il ne vous donne aucun exécutable. l'exécution de steam.exe avec l'option -applaunch # modifie la résolution, ne démarre pas le jeu et revient immédiatement en arrière (si vite que vous le voyez à peine). l'exécution de l'exécutable du jeu entraîne directement une erreur de chargement. Belle idée, mais cela n'a pas fonctionné.
private_meta
Mais je viens de réaliser que je peux créer un fichier de commandes avec la commande initiale pour passer à un écran, démarrer le jeu dans une ligne de commande distincte puis revenir en arrière après la fin du programme, le tout dans un lot, qui devrait théoriquement fonctionner. Je vais devoir essayer ça.
private_meta
D'accord. Dites-nous si cela fonctionne pour vous. Si le lot fonctionne bien, vous pouvez le compiler pour avoir un fichier .exe Avec ceci par exemple: batchcompiler.sourceforge.net :)
climenole
Je vous remercie. Cela fonctionne parfaitement, sauf pour le fait que steam.exe revient immédiatement, donc je dois utiliser "pause" ou le lot ne fonctionnera pas.
private_meta
8

Un grand merci au commentaire de Bill Rodman dans ce fil.

Je combine cet utilitaire avec la commande Windows7 DisplaySwitch.exe: "C: \ Windows \ System32 \ DisplaySwitch.exe / internal" pour basculer exclusivement sur le moniteur principal. - Bill Rodman 29 janvier 10 à 12:17

En testant cela, cela appelle et sélectionne immédiatement l'écran à choisir via le.

  • / interne appelle l'écran interne (votre affichage principal)
  • / modifications externes de l'écran externe (je ne sais pas dans quelle mesure il gère lorsqu'il y a plus d'un écran)
  • / cloner les affichages en double.
  • / étendre les commutateurs à des paramètres étendus.

Comme cela appelle un chemin de fichier, attachez-le simplement à votre script de traitement par lots et à votre baboom, un changement d'affichage instantané et efficace. Une bonne idée serait d'enchaîner ceci ensemble dans l'interface utilisateur du Planificateur de tâches Windows car vous pouvez appeler le chemin du fichier et lui donner les arguments, puis chaque fois que votre événement TF2 se produit, l'affichage change toujours.

Jouster500
la source
Fonctionne sans droits d'administrateur, fonctionne à une distance d'un clic.
m3nda du
L'appeler sans arguments affiche la barre latérale avec les quatre options.
José Tomás Tocino
6

Vous étiez proche de NirCmd, mais ce que vous cherchez, c'est MultiMonitorTool de Nir :

MultiMonitorTool est un petit outil qui vous permet d'effectuer certaines actions liées à l'utilisation de plusieurs moniteurs. Avec MultiMonitorTool, vous pouvez désactiver / activer les moniteurs, définir le moniteur principal, enregistrer et charger la configuration de tous les moniteurs et déplacer les fenêtres d'un moniteur à un autre. Vous pouvez effectuer ces actions à partir de l'interface utilisateur ou de la ligne de commande, sans afficher l'interface utilisateur. MultiMonitorTool fournit également une fenêtre d'aperçu, qui vous permet de regarder un aperçu de chaque moniteur de votre système.

L'outil 12noon a l'air sympa, mais à moins d'un outil MS officiel, je prendrai NirSoft sur n'importe quel autre outil n'importe quand.

Plug sans vergogne : Vous pouvez être intéressé par l' outil TvGameLauncher que j'ai écrit exactement à cette fin (changer les affichages principaux pour jouer à des jeux). Il peut également passer en audio HDMI et empêcher l'économiseur d'écran de s'afficher pendant que vous jouez (sans le désactiver). Il prend même en charge le protocole Steam ( Steam://) afin que vous n'ayez pas à utiliser l' pauseastuce. Il ne prend pas en charge la désactivation de vos autres moniteurs, mais j'ajouterai cela à ma liste de tâches (j'ai d'autres fonctionnalités intéressantes à venir, comme la génération automatique de raccourcis TV).

Modifier - toutes les fonctionnalités ajoutées. Vérifiez-le!

Ohad Schneider
la source
1
Roches NirSoft. Je viens de devoir trouver une solution pour changer mes moniteurs. J'ai une configuration à deux moniteurs, lorsque l'un d'eux est allumé et l'autre est éteint. Donc, aucun mode de bureau étendu de fantaisie, etc. Avec MultiMonitorTool, maintenant je n'ai plus qu'une seule ligne: MultiMonitorTool.exe /switch 1 /switch 2qui éteint le moniteur en cours d'exécution et en même temps en éteint d'autres. J'ai mis cette commande sur la touche macros de mon clavier et maintenant les moniteurs sont commutés via une seule touche!
Neurotransmetteur
MultiMonitorTool a mal fonctionné pour moi avec différentes configurations de 3 moniteurs: certains désactivés, clonés, etc. Il a appliqué certaines configurations avec une résolution de 0x0, ce qui a empêché le panneau de configuration Nvidia de s'ouvrir.
NateS
3

Bien que je réalise que c'est un vieux fil, il est possible de basculer entre les modes d'affichage dans Windows 10 en utilisant les outils disponibles par défaut. Le problème que j'ai rencontré était qu'il n'y avait pas de mécanisme "clair" pour dire que l'affichage était étendu, par opposition à cloné. Voici mon prototype de travail dans PowerShell:

#ext_or_clone.ps1
#Toggle between Extend and Clone displays
#requires PowerShell 3

#Load Windows Forms .Net class
#if PowerShell < 3 use this instead: [reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
Add-Type -AssemblyName System.Windows.Forms

#check the width of the virtual display, the "mode" width 
$currDispMode = [System.Windows.Forms.SystemInformation]::VirtualScreen.Width

#check the width of the primary display
$oneScrWidth = [System.Windows.Forms.SystemInformation]::WorkingArea.width


#compare the two widths
switch ($currDispMode)
{
    #if the widths are the same,
    # it means the displays are in clone mode, so the mode should be extend
    $oneScrWidth{displayswitch.exe /extend}

    #if the VirtualScreen width is greater than the primary screen width
    # it means displays are in extend mode, so the mode should be clone
    {$_ -gt $oneScrWidth}{displayswitch.exe /clone}
}
DTE-IT
la source
1

Un autre bon est wsdisplaysettings. Outil en ligne de commande pour configurer les affichages à votre convenance. Peut également créer des fichiers de paramètres pour plus de commodité.

John
la source
Se bloque environ 80% du temps sur Windows 10. Cela fonctionne les 20% restants.
NateS
1

Les paramètres d'affichage WS de WizardSoft sont un petit outil soigné et assez simple à utiliser pour les débutants en ligne de commande:

Outil de ligne de commande pour enregistrer et restaurer les paramètres d'affichage de Windows vers et depuis un fichier. Configuration multi-écrans facile. Créez des préréglages pour ordinateur portable, téléviseur, moniteur et vidéoprojecteur. Il peut enregistrer et restaurer la représentation binaire exacte des paramètres d'affichage Windows actuels.

Ce que je voulais, c'était un raccourci pour passer à étendu et un autre pour revenir à l'affichage unique. Après 30 minutes de déblayage avec elle - succès!

J'ai utilisé Windows 7 et après avoir lu, readme.txtvous pouvez facilement le configurer également.

La façon la plus simple d'utiliser l'outil est d'enregistrer les paramètres d'affichage actuels dans un fichier avec

WsDisplaySettings.exe -save filename.dis

et charger et appliquer les paramètres avec

WsDisplaySettings.exe filename.dis

Il existe également des fonctionnalités plus avancées, comme expliqué dans le fichier Lisez-moi.

Si je dirigeais une entreprise, je paierais pour le programme! (C'est gratuit pour un usage personnel.)

andrew
la source
2
Bienvenue sur Super User! Veuillez lire comment recommander des logiciels dans les réponses , en particulier les bits en gras ; puis modifiez votre réponse pour y suivre les instructions. Merci!
bertieb
1

Vous pouvez utiliser DisplaySwitch.exe /internalpour modifier les paramètres d'affichage afin d'utiliser uniquement votre moniteur principal et DisplaySwitch.exe /extendpour revenir à votre configuration multi-moniteur. Plus d'infos ici . Fonctionne également sur Windows 10.

Jake Reece
la source