แบตช์ไฟล์เพื่อตรวจสอบครั้งแรกที่หน้าจอที่ฉันใช้แล้วสลับไปที่อื่น


2

ฉันมีจอภาพสองจอที่ฉันต้องการสลับระหว่างการใช้ปุ่มลัดอัตโนมัติและรีโมท IR ฉันมี IR ระยะไกลที่ใช้ไฟล์. bat บนการกดปุ่ม แต่ฉันไม่สามารถหาวิธีการตรวจสอบว่าจอภาพใดที่ใช้อยู่ในปัจจุบัน ตัวอย่างเช่นฉันต้องการสิ่งนี้:

@ ปิดเสียง

ถ้าจอแสดงผลเป็นแบบภายนอก

DisplaySwitch.exe / ภายใน

) อื่น ๆ (

DisplaySwitch.exe / ภายนอก

)

โดยพื้นฐานแล้วฉันไม่สามารถเข้าใจได้ว่าคำสั่ง "if" สำหรับสถานการณ์นี้จะเป็นอย่างไร

ขอบคุณสำหรับความช่วยเหลือใด ๆ ~!


1
บอกเราเกี่ยวกับจอแสดงผลทั้งสองของคุณ พวกเขาเหมือนกันหรือไม่ ความละเอียดแบบเดียวกัน / ต่างกัน ฯลฯ ? หากโปรแกรมสามารถสังเกตรายละเอียดของจอภาพปัจจุบันจะมีคุณสมบัติบางอย่างของจอภาพที่สามารถแยกแยะความแตกต่างได้หรือไม่?
ตัวปลอมตัว Twisty

ขนาดแตกต่างกัน (20 "จอภาพกับ 48" ทีวี) แต่ความละเอียดเดียวกัน (1080p) หนึ่งถูกลงทะเบียนเป็นจอแสดงผล 1 หนึ่งถูกลงทะเบียนเป็นจอแสดงผล 2 แต่นอกเหนือจากนั้นพวกเขาจะคล้ายกันสวย หนึ่งเสียบเข้ากับ HDMI และเสียบเข้ากับ DisplayPort แต่ปลั๊กสองอันอยู่ในการ์ดแสดงผลเดียวกัน ขอบคุณ! ฉันควรให้มันเปิดโปรแกรมเปล่าในระหว่างการเปลี่ยนครั้งแรกจากนั้นตรวจสอบโปรแกรมนั้นยุติในระหว่างการเปลี่ยนครั้งที่สอง?
เลี้ยงแกะ

คำตอบ:


1

หากคุณต้องการให้แบตช์ไฟล์ของคุณสลับไปที่จอแสดงผลอื่น ๆก็สามารถทำได้โดยใช้ไฟล์แฟล็กเพื่อจำว่าจอแสดงผลใดเปิดใช้งานล่าสุด นี่คือวิธี:

@echo off
Setlocal
Set myFlag=c:\somefolder\monitor.flg
if Exist "%myFlag%" (
    rem flag exists. Activate internal display. Then delete flag.
    DisplaySwitch.exe /internal
    del /q "%myFlag%"
) else (
    rem flag does not exist. Activate external display. Then create flag
    DisplaySwitch.exe /external
    Echo I'm a flag for myScript.cmd>"%myFlag%"
)

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


1
ฟังดูเหมือนเป็นความคิดที่ดีสำหรับฉัน
Pimp Juice IT

ทำงานได้อย่างสมบูรณ์แบบขอบคุณ ฉันมีบางสิ่งบางอย่างทำงานที่จะเปิด / ปิดซอฟต์แวร์ stickynote เมื่อสลับหน้าจอด้วย: tasklist |> nul find / i "software.exe" ถ้า errorlevel 1 (โซลูชันของคุณสวยกว่าฮ่าฮ่าฮ่ามาก
secondshepherd

@secondshepherd แน่นอนคุณกำลังคิดในทิศทางที่ทำกำไรได้ด้วยวิธีการนั้น ดีใจที่ได้รับความช่วยเหลือ ยินดีต้อนรับสู่ Super User btw หวังว่าคุณจะไปรอบ ๆ
ตัวปลอมตัว Twisty

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