เปลี่ยนการจัดเรียงจอแสดงผลผ่าน Batch / Command Line บน Windows 7


12

ฉันต้องการเปลี่ยนการจัดเรียงจอแสดงผลของคอมพิวเตอร์ของฉันผ่านทางบรรทัดคำสั่ง ฉันมีการตั้งค่าจอภาพ 2 จอขยายและฉันต้องการเปลี่ยนการตั้งค่าจอภาพจาก Dual Display เป็น Single Display และย้อนกลับผ่านบรรทัดคำสั่ง

ฉันได้ดู QRes และ nircmd แล้ว ในขณะที่ QRes ขาดการรองรับผู้ใช้หลายคนโดยสิ้นเชิง nircmd ไม่สามารถปิดใช้งานจอภาพได้เพียงเปลี่ยนสถานะหลักและความละเอียดของหน้าจอแยกต่างหาก

มันจะได้รับการชื่นชมถ้าคุณรู้วิธีที่จะทำเช่นนั้น

แก้ไข:ฉันจะโพสต์โซลูชันของฉันที่นี่โดยใช้ display displayer ใน climenoles answer:

@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

โพสต์ของคุณทำให้ฉันมีความคิดสำหรับคุณลักษณะนี้ที่ฉันเพิ่มไปยัง TvGameLauncher ตรวจสอบว่าเกี่ยวข้องหรือไม่ (ดูคำตอบของฉันด้านล่าง)
Ohad Schneider

เฮ้ฉันรู้ว่าคำถามนี้เก่า แต่ฉันต้องการที่จะรู้ว่ามีวิธีการตรวจสอบสถานะของจอภาพอื่นใน Windows จากบรรทัดคำสั่งหรือไม่
Durga Swaroop

คำตอบ:


8

ยูทิลิตี้นี้อาจช่วยคุณได้: เปลี่ยนเครื่องมือแสดงผล :

« Display Changer เปลี่ยนความละเอียดการแสดงผลเรียกใช้โปรแกรมจากนั้นเรียกคืนการตั้งค่าดั้งเดิม นอกจากนี้ยังสามารถเปลี่ยนความละเอียดอย่างถาวรและจัดเรียงจอภาพใหม่ในการตั้งค่าหลายจอภาพ»

ใช้งานได้ใน GUI หรือ command line และฟรีสำหรับการใช้งานส่วนตัว ...

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

หวังว่าความช่วยเหลือนี้ แจ้งให้เราทราบ.


โหวตขึ้นสำหรับคำตอบที่ดี แต่มันจะไม่ทำงานอย่างนั้น ฉันกำลังพยายามเปิดตัวเกม Steam ด้วยวิธีดังกล่าว การเปิดใช้งานผ่านทาง "steam: // rungameid / #" ไม่ทำงานเพราะจะทำให้คุณไม่สามารถเรียกใช้งานได้ การใช้ steam.exe ด้วยตัวเลือก -applaunch # จะเปลี่ยนความละเอียดไม่เริ่มเกมและเปลี่ยนกลับทันที (เร็วจนคุณแทบจะไม่เห็น) การรันเกมที่รันได้โดยตรงจะทำให้เกิดข้อผิดพลาดในการโหลด เป็นความคิดที่ดี แต่ก็ใช้งานไม่ได้
private_meta

แต่ฉันเพิ่งรู้ว่าฉันสามารถสร้างไฟล์แบตช์ด้วยคำสั่งเริ่มต้นเพื่อเปลี่ยนเป็นหนึ่งหน้าจอเริ่มเกมในบรรทัดคำสั่งที่แยกต่างหากจากนั้นเปลี่ยนกลับหลังจากโปรแกรมสิ้นสุดลง ฉันจะต้องลองสิ่งนั้น
private_meta

ตกลง. บอกเราว่าสิ่งนี้เหมาะกับคุณหรือไม่ หากชุดทำงานได้ดีคุณอาจรวบรวมให้มีไฟล์. exe ด้วยสิ่งนี้ตัวอย่างเช่น: batchcompiler.sourceforge.net :)
climenole

ขอบคุณ. ใช้งานได้ดีอย่างสมบูรณ์ยกเว้นความจริงที่ว่า steam.exe กลับมาทันทีดังนั้นฉันจึงต้องใช้ "หยุด" หรือแบทช์จะไม่ทำงาน
private_meta

9

ขอบคุณมากที่ข้อคิดเห็นของ Bill Rodman ในชุดข้อความนี้

ฉันรวมยูทิลิตีนี้เข้ากับคำสั่ง Windows7 DisplaySwitch.exe: "C: \ Windows \ System32 \ DisplaySwitch.exe / ภายใน" เพื่อสลับไปยังจอภาพหลักเป็นพิเศษ - Bill Rodman 29 ม.ค. 53 เวลา 12:17 น

ทดสอบสิ่งนี้การโทรนี้และเลือกหน้าจอทันทีเพื่อเลือกผ่าน

  • /โทรภายในหน้าจอภายใน (จอแสดงผลหลักของคุณ)
  • /การเปลี่ยนแปลงภายนอกไปยังหน้าจอภายนอก (ฉันไม่แน่ใจว่ามันจับได้ดีแค่ไหนเมื่อมีมากกว่า 1 หน้าจอ)
  • / โคลนซ้ำแสดง
  • / ขยายสวิตช์ไปที่การตั้งค่าแบบขยาย

เนื่องจากนี่เป็นการเรียกพา ธ ไฟล์เพียงแค่แนบสิ่งนี้เข้ากับแบทช์สคริปต์และ baboom ของคุณการเปลี่ยนการแสดงผลที่รวดเร็วและมีประสิทธิภาพ ความคิดที่ดีคือการรวบรวมสิ่งนี้เข้าสู่ windows Task Scheduler UI ในขณะที่คุณสามารถเรียกพา ธ ของไฟล์และให้ข้อโต้แย้งจากนั้นเมื่อใดก็ตามที่เหตุการณ์ TF2 ของคุณเกิดขึ้นจอแสดงผลจะเปลี่ยนเสมอ


ทำงานโดยไม่มีสิทธิ์ผู้ดูแลระบบทำงานที่ระยะการคลิก 1 ครั้ง
m3nda

การเรียกใช้โดยไม่มีอาร์กิวเมนต์แสดงแถบด้านข้างพร้อมกับสี่อ็อพชัน
JoséTomás Tocino

6

คุณสนิทกับ NirCmd แต่สิ่งที่คุณกำลังมองหาคือMultiMonitorToolของ Nir :

MultiMonitorTool เป็นเครื่องมือขนาดเล็กที่ช่วยให้คุณสามารถดำเนินการบางอย่างที่เกี่ยวข้องกับการทำงานกับจอภาพหลายจอ ด้วย MultiMonitorTool คุณสามารถปิด / เปิดใช้งานจอภาพตั้งค่าจอภาพหลักบันทึกและโหลดการกำหนดค่าของจอภาพทั้งหมดและย้ายหน้าต่างจากจอภาพหนึ่งไปยังอีกจอภาพหนึ่ง คุณสามารถทำสิ่งเหล่านี้จากส่วนต่อประสานผู้ใช้หรือจากบรรทัดคำสั่งโดยไม่แสดงส่วนต่อประสานผู้ใช้ MultiMonitorTool ยังมีหน้าต่างแสดงตัวอย่างซึ่งช่วยให้คุณดูตัวอย่างของจอภาพทุกจอในระบบของคุณ

เครื่องมือ 12noon นั้นดูดี แต่ไม่รวมถึงเครื่องมือ MS อย่างเป็นทางการฉันจะใช้ NirSoft แทนเครื่องมืออื่น ๆ ทุกวัน

ปลั๊กที่ไร้ยางอาย: คุณอาจสนใจเครื่องมือTvGameLauncherที่ฉันเขียนเพื่อจุดประสงค์นี้อย่างแน่นอน (การสลับจอแสดงผลหลักสำหรับการเล่นเกม) นอกจากนี้ยังสามารถเปลี่ยนเป็นเสียง HDMI และป้องกันไม่ให้สกรีนเซฟเวอร์โผล่ขึ้นมาในขณะที่คุณเล่น (โดยไม่ปิดการใช้งาน) มันยังรองรับโปรโตคอล Steam ( Steam://) ดังนั้นคุณไม่จำเป็นต้องใช้pauseเคล็ดลับ ไม่รองรับการปิดการใช้งานจอภาพอื่น ๆ ของคุณ แต่ฉันจะเพิ่มเข้าไปในรายการสิ่งที่ต้องทำของฉัน (ฉันมีคุณสมบัติเจ๋ง ๆ อื่น ๆ เช่นการสร้างทางลัดทีวีอัตโนมัติ)

แก้ไข - เพิ่มคุณสมบัติทั้งหมดแล้ว ลองดูสิ!


1
หิน NirSoft ฉันแค่ต้องหาวิธีแก้ปัญหาเพื่อสลับจอภาพของฉัน ฉันมีการตั้งค่าสองจอภาพเมื่อหนึ่งในนั้นและอื่น ๆ ปิดอยู่ ดังนั้นไม่มีโหมดเดสก์ท็อปที่ขยายเพิ่มใด ๆ ด้วย MultiMonitorTool ตอนนี้ฉันมีเพียงซับเดียว: MultiMonitorTool.exe /switch 1 /switch 2ซึ่งปิดการใช้งานจอภาพในปัจจุบันและในเวลาเดียวกันก็ปิดเครื่องอื่น ฉันสั่งคำสั่งนี้ให้กับปุ่มมาโครของแป้นพิมพ์และตอนนี้จอภาพกำลังได้รับการเปลี่ยนผ่านการกดแป้นเดียว!
สารสื่อประสาท

MultiMonitorTool ทำงานได้ไม่ดีสำหรับฉันด้วยการกำหนดค่าที่แตกต่างกัน 3 จอภาพ: บางตัวถูกปิดใช้งานโคลนและอื่น ๆ มันใช้การกำหนดค่าบางอย่างที่มีความละเอียด 0x0 ซึ่งทำให้แผงควบคุม Nvidia ไม่สามารถเปิดได้
NateS

3

ในขณะที่ฉันรู้ว่านี่เป็นเธรดเก่าการสลับระหว่างโหมดการแสดงผลใน Windows 10 โดยใช้เครื่องมือที่มีให้โดยค่าเริ่มต้นนั้นเป็นไปได้ ปัญหาที่ฉันพบคือไม่มีกลไก "ชัดเจน" ที่จะบอกว่าจอแสดงผลขยายและโคลน นี่คือต้นแบบการทำงานของฉันใน 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}
}

1

wsdisplaysettingsอีกคนหนึ่งที่ดีคือ เครื่องมือบรรทัดคำสั่งเพื่อตั้งค่าแสดงผลตามที่คุณต้องการ ยังสามารถสร้างไฟล์การตั้งค่าเพื่อความสะดวก



เกิดปัญหาประมาณ 80% ของเวลาบน Windows 10 มันทำงานได้อีก 20%
NateS

1

WizardSoft's WS Display Settingsเป็นเครื่องมือเล็ก ๆ ที่ประณีตและใช้งานง่ายสำหรับมือใหม่ในบรรทัดคำสั่ง:

เครื่องมือบรรทัดคำสั่งเพื่อบันทึกและกู้คืนการตั้งค่าการแสดงผลของ Windows ไปยังและจากไฟล์ ติดตั้งหลายจอภาพได้ง่าย สร้างสถานีล่วงหน้าสำหรับแล็ปท็อป, ทีวี, จอภาพและเครื่องรับแสง มันสามารถบันทึกและคืนค่าการเป็นตัวแทนไบนารีที่แน่นอนของการตั้งค่าการแสดงผล Windows ปัจจุบัน

สิ่งที่ฉันต้องการคือทางลัดเพื่อเปลี่ยนเป็นส่วนขยายและอีกส่วนเพื่อกลับไปที่หน้าจอเดียว หลังจาก 30 นาทีของการล้อเล่นกับมัน - สำเร็จ!

ฉันใช้ Windows 7 และหลังจากอ่านreadme.txtคุณสามารถตั้งค่านี้ได้อย่างง่ายดาย

วิธีที่ง่ายที่สุดในการใช้เครื่องมือนี้คือการบันทึกการตั้งค่าการแสดงผลปัจจุบันลงในไฟล์ด้วย

WsDisplaySettings.exe -save filename.dis

และโหลดและใช้การตั้งค่าด้วย

WsDisplaySettings.exe filename.dis

นอกจากนี้ยังมีคุณสมบัติขั้นสูงเพิ่มเติมดังที่อธิบายไว้ในไฟล์ readme

ถ้าฉันทำธุรกิจฉันจะจ่ายค่าโปรแกรม! (ฟรีสำหรับการใช้งานส่วนตัว)


2
ยินดีต้อนรับสู่ Super User! โปรดอ่านวิธีการแนะนำซอฟต์แวร์ในคำตอบโดยเฉพาะอย่างยิ่งบิตในตัวหนา ; จากนั้นแก้ไขคำตอบของคุณเพื่อทำตามคำแนะนำที่นั่น ขอบคุณ!
bertieb

1

คุณสามารถใช้DisplaySwitch.exe /internalเพื่อเปลี่ยนการตั้งค่าการแสดงผลเพื่อใช้เฉพาะจอภาพหลักของคุณและDisplaySwitch.exe /extendเพื่อกลับไปที่การตั้งค่าหลายจอภาพของคุณ ข้อมูลเพิ่มเติมที่นี่ ทำงานบน Windows 10 ได้เช่นกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.