การสลับอุปกรณ์เสียงเริ่มต้นด้วยแบตช์ไฟล์


22

ฉันกำลังพยายามเขียนไฟล์แบตช์ใน Windows 10 ที่อนุญาตให้ฉันสลับระหว่างชุดหูฟังและลำโพงเป็นอุปกรณ์เสียงเริ่มต้นเมื่อฉันเรียกใช้ ฉันไม่ต้องการใช้ซอฟต์แวร์บุคคลที่สามใด ๆ

ฉันลองค้นหาไปรอบ ๆ แต่ฉันพบสคริปต์เก่าที่ดูเหมือนจะไม่ทำงานและยังอ้างถึงHKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\เส้นทางที่ดูเหมือนไม่มีอยู่อีกต่อไป ฉันไม่พบข้อมูลใด ๆ ในการลงทะเบียน Windows 10 เกี่ยวกับเรื่องนี้ แต่ฉันไม่สะดวกกับการเล่นซอมากเกินไปถ้าฉันไม่แน่ใจว่าฉันกำลังทำอะไรอยู่


1
หากคุณไม่ต้องการใช้บุคคลที่สามมากเกินไปฉันใช้audioswit.ch/er [ใช่นั่นคือ URL จริง] เป็นเวลาประมาณ 5 ปี ปุ่มลัดสลับได้เช่นกัน [ไม่มีส่วนเกี่ยวข้อง]
Tetsujin

คำตอบ:


33

ฉันขอขอบคุณที่คุณไม่ต้องการใช้ซอฟต์แวร์บุคคลที่สามใด ๆ แต่เป็นตัวเลือกสำหรับถ้าคุณไม่รังเกียจการใช้ ~ 100kb exe คุณสามารถใช้Nircmdกับคำสั่ง:

nircmd setdefaultsounddevice "Speakers" 1

หรือ

nircmd setdefaultsounddevice "Headphones" 1

คุณต้องตรวจสอบให้แน่ใจว่าคุณใช้ชื่อที่แน่นอนของอุปกรณ์เสียงตามที่ระบุไว้ในรายการด้านล่างPlayback Devices(คลิกขวาที่ตัวควบคุมเสียงในซิสเต็มเทรย์) มันอาจจะง่ายกว่าในการเปลี่ยนชื่อพวกเขาภายใต้Propertiesชื่อง่ายกว่าโดยเฉพาะอย่างยิ่งถ้าชื่อปะทะกันในทางใดทางหนึ่ง

1ในตอนท้ายของคำสั่งหมาย "เริ่มต้นอุปกรณ์ที่" การใช้2หมายถึง "อุปกรณ์สื่อสารเริ่มต้น"


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

ป้อนคำอธิบายรูปภาพที่นี่


+1 จากฉัน นี่เป็นวิธีที่ดีที่สุด หากคุณไม่ต้องการให้ nircmd วางที่ใดที่หนึ่งบนฮาร์ดไดรฟ์ของคุณ (เชื่อฉันว่าคุณต้องการมันยอดเยี่ยม) จากนั้นอีกทางเลือกหนึ่งคือการสลับมันสองครั้งและทำการส่งออก reg ของคีย์ที่กล่าวถึงที่นี่ ไฟล์. ไม่แน่ใจว่าจะใช้การได้หรือไม่ แต่นั่นจะเป็นแนวทางทางเลือกของฉัน
LPChip

ขอบคุณสำหรับคำตอบจริง ๆ แล้วฉันสะดุดกับ nircmd แต่ก็อยากรู้อยากเห็นจริงๆว่าหาวิธีที่จะทำได้โดยไม่ต้องใช้ซอฟต์แวร์ของบุคคลที่สาม หากไม่มีวิธีการอื่นออกมาฉันจะลองใช้วิธีนี้ดู
zerothehero

+1 พยายามใช้วิธีการรีจิสตรี แต่ไม่ง่ายอย่างที่แนะนำ (อย่างน้อยกับ W10) ใช้ NirCmd เช่นกันตอนนี้ :)
MBaas

6

ตั้งแต่ Windows 8 (หรืออาจจะก่อนหน้านี้?) HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Renderการตั้งค่าเสียงของเครื่องคอมพิวเตอร์จะถูกเก็บไว้ใน ภายใต้Renderมีคีย์ที่มีชื่อ GUID แต่ละรายการมีDeviceStateค่า dword ที่รูท แต่มันเป็นรหัสอย่างไร

ดูDEVICE_STATE_XXX ค่าคงที่ที่ MSDN :

  • 1 ใช้งานอยู่
  • 2 ปิดการใช้งาน
  • 4 ไม่ปรากฏ
  • 8 ถอดปลั๊ก

ดังนั้นสคริปต์ powershell / bat เพื่อสลับระหว่าง 1 และ 2 ควรทำเคล็ดลับ

แก้ไข: หากต้องการรับชื่ออุปกรณ์ที่มนุษย์อ่านได้ให้อ่าน{b3f8fa53-0004-438e-9003-51a46e139bfc},6ภายใต้Propertiesคีย์ย่อย


สวัสดี Aziz ฉันลองใช้ W10 แต่ใช้งานได้เพียงครั้งเดียว - และเมื่อฉันพยายามเปลี่ยนเป็นอุปกรณ์ก่อนหน้าผ่านแบทช์มันก็หายไปจากรายการที่คุณได้รับเมื่อคลิกไอคอนถาดเพื่อเสียง นอกจากนี้ฉันยังพบว่าฉันต้องได้รับการอนุญาตสำหรับคีย์รีจิสตรี้นั้นก่อน (ดูgroovypost.com/howto/ ...... )
MBaas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.