วิธีปิดเสียงอัตโนมัติเมื่อถอดหูฟังใน Windows 10

Windows 10 ไม่มีสวิตช์ทั่วไปที่ปิดเสียงเมื่อถอดหูฟังออก แต่สคริปต์ PowerShell สามารถตรวจสอบเหตุการณ์การเปลี่ยนแปลงอุปกรณ์และปิดเสียงปลายทางการเล่นเสียงเริ่มต้นหลังจากถอดหูฟังออกได้ คุณสามารถเรียกใช้สคริปต์นี้ด้วยตนเองหรือตั้งค่าให้ Task Scheduler เรียกใช้เมื่อเข้าสู่ระบบก็ได้

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

ตรวจสอบว่า Windows ตรวจจับหูฟังของคุณอย่างไร

เปิดเมนู เริ่ม > การตั้งค่า > ระบบ > เสียงแล้วตรวจสอบว่าหูฟังปรากฏแยกต่างหากภายใต้เอาต์พุตหรือไม่ Windows อนุญาตให้คุณเลือกเอาต์พุตและปรับระดับเสียงได้ที่นี่ แต่ไม่มีกฎปิดเสียงอัตโนมัติเมื่อถอดปลั๊ก ดูคู่มือการตั้งค่าเสียง ของ Microsoft สำหรับการควบคุมอุปกรณ์

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

ตรวจสอบยูทิลิตี้เสียงของพีซีของคุณเพื่อหาการตั้งค่าแจ็คหูฟัง การใช้งานขึ้นอยู่กับไดรเวอร์เสียง การเสียบปลั๊กเข้ากับแจ็คแบบอนาล็อกนั้นไม่ใช่สิ่งที่เรียกว่าอุปกรณ์ Plug and Play เสมอไป อะแดปเตอร์เสียงบางตัวจะรายงานการมีอยู่ของแจ็คไปยัง Windows ในขณะที่บางตัวไม่รายงาน ดังนั้นสคริปต์นี้อาจพลาดการถอดปลั๊ก 3.5 มม. Microsoft อธิบายความแตกต่างนี้ไว้ในเอกสารเกี่ยวกับอุปกรณ์ปลายทางเสียง ของตน ชุดหูฟัง USB หรือ Bluetooth ก็สามารถกระตุ้นเหตุการณ์อุปกรณ์ได้เช่นกันเมื่อ Windows เพิ่มหรือลบอุปกรณ์เหล่านั้น ขึ้นอยู่กับอุปกรณ์และไดรเวอร์

บันทึกสคริปต์ PowerShell

  1. เปิดสคริปต์ PSAutoMute ต้นฉบับของ Prateek Singhและตรวจสอบโค้ดก่อนเรียกใช้งาน สคริปต์นี้ใช้ส่วนต่อประสานเสียงของ Windows เพื่อปิดเสียงปลายทางการเล่นมัลติมีเดียเริ่มต้น และคอยรับฟังเหตุการณ์ WMI
  2. บันทึกไฟล์ลงในโฟลเดอร์ถาวร เช่นC:\Scripts. ใน Notepad เลือกไฟล์ > บันทึกเป็นตั้งชื่อไฟล์ ว่า MuteWhenHeadphonesDisconnect.ps1. และตั้งค่าประเภทการบันทึกเป็นไฟล์ทั้งหมด (*.*)ตรวจสอบให้แน่ใจว่า File Explorer แสดง.ps1นามสกุลไฟล์ ไม่ใช่.ps1.txt.
เปิดกล่องโต้ตอบ "บันทึกเป็น" ของ Windows โดยตั้งชื่อไฟล์ว่า MuteWhenHeadphonesDisconnect.ps1 และเลือกประเภทไฟล์เป็น "ไฟล์ทั้งหมด"
บันทึกไฟล์โดยใช้ส่วนขยาย .ps1 และเลือก "บันทึกไฟล์ทั้งหมด" เพื่อไม่ให้ Notepad เพิ่มส่วนขยาย .txt ต่อท้าย

คลาสเหตุการณ์ของสคริปต์นั้นกว้างมาก ไมโครซอฟต์ระบุว่าWin32_DeviceChangeEventครอบคลุมการเปลี่ยนแปลงอุปกรณ์ทั่วทั้งคอมพิวเตอร์: ประเภทเหตุการณ์ 2 หมายถึงการมาถึง และประเภท 3 หมายถึงการถอดออก สคริปต์นี้จะปิดเสียงเมื่อมีการถอดอุปกรณ์ใดๆ และจะเปิดเสียงเมื่อมีการมาถึงใดๆ หากเสียงถูกปิดอยู่ ดังนั้นไดรฟ์ USB อาจทำให้เสียงเปิดขึ้น หรือการถอดเมาส์อาจทำให้เสียงปิดลง สคริปต์ไม่สามารถบอกได้ว่าคุณปิดเสียงลำโพงด้วยตัวเองหรือไม่ โปรดตรวจสอบเอกสารอ้างอิงคลาสเหตุการณ์ ของไมโครซอฟต์ สำหรับคำจำกัดความเหล่านั้น

เรียกใช้คำสั่งนี้ในWindows PowerShell 5.1ไม่ใช่ PowerShell 7 เนื่องจากคำสั่งนี้ใช้ `<script>` Register-WmiEventซึ่ง Microsoft ได้ลบออกจาก PowerShell 7 แล้ว โปรดดูข้อมูลอ้างอิงของWindows PowerShell 5.1และการเปลี่ยนแปลงที่สำคัญใน PowerShell 7

สคริปต์ PowerShell เป็นโค้ดที่สามารถเรียกใช้งานได้ ดังนั้นควรตรวจสอบไฟล์ก่อน ในเครื่องพีซีส่วนตัวที่คุณได้รับอนุญาตให้เรียกใช้งานได้ ให้ใช้RemoteSignedสคริปต์นี้สำหรับกระบวนการ PowerShell นี้เท่านั้น การกระทำนี้จะไม่เปลี่ยนแปลงนโยบายของเครื่องหรือผู้ใช้ หาก Windows ยังคงบล็อกไฟล์ที่ดาวน์โหลดมา ให้ตรวจสอบไฟล์และเรียกใช้คำสั่งUnblock-File -Path "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1"Microsoft อธิบายขอบเขตเหล่านี้ไว้ในคำแนะนำเกี่ยวกับนโยบายการเรียกใช้งานอย่าละเมิดนโยบายของที่ทำงานหรือโรงเรียน

ลองใช้งานและทดสอบดู

เปิดWindows PowerShellจากเมนู Start ในฐานะผู้ใช้ปกติของคุณ เปลี่ยนไปที่โฟลเดอร์สคริปต์ จากนั้นเริ่มการตรวจสอบ:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
Set-Location C:\Scripts
.\MuteWhenHeadphonesDisconnect.ps1

หากคุณบันทึกไฟล์ไว้ที่อื่น ให้เปลี่ยนเส้นทางโฟลเดอร์ สคริปต์จะรออยู่ในลูป ดังนั้นหน้าต่าง PowerShell จะทำงานอยู่ตลอดเวลา ปล่อยให้หน้าต่างเปิดอยู่ขณะทดสอบ และกดCtrl+Cเพื่อหยุดการทำงาน

หน้าต่าง PowerShell บนเดสก์ท็อป Windows 10 ที่ป้อนคำสั่งเรียกใช้ MuteWhenHeadphonesDisconnect.ps1 และสคริปต์กำลังทำงานอยู่
เปิดใช้งานมอนิเตอร์ใน Windows PowerShell และเปิดหน้าต่างนั้นค้างไว้

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

เริ่มใช้งานเมื่อคุณเข้าสู่ระบบ

  1. เปิดโปรแกรมกำหนดเวลาทำงาน (Task Scheduler ) เลือกสร้างงานพื้นฐาน (Create Basic Task ) และตั้งชื่อให้กับงานนั้น
  2. เลือก " เมื่อฉันเข้าสู่ระบบ " เป็นตัวกระตุ้น การดำเนินการนี้จะเริ่มการทำงานของมอนิเตอร์ในเซสชันผู้ใช้ของคุณ ซึ่งอุปกรณ์เล่นของคุณพร้อมใช้งาน เอกสารของ Microsoft เกี่ยวกับ-AtLogOnตัวกระตุ้นที่ตรงกันอยู่ใน หัวข้อ "ตัวกระตุ้นงาน ที่กำหนดเวลาใหม่" (New-ScheduledTaskTrigger )
  3. เลือกเริ่มโปรแกรมตั้งค่าโปรแกรม/สคริปต์เป็นpowershell.exeภายใต้เพิ่มอาร์กิวเมนต์ป้อน-NoProfile -ExecutionPolicy RemoteSigned -File "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1"โดยเปลี่ยนเส้นทางเป็นตำแหน่งที่ตั้งแบบเต็มของไฟล์ของคุณ
  4. ทำตามขั้นตอนในตัวช่วยสร้างให้เสร็จสิ้น จากนั้นเปิดคุณสมบัติของงานและตั้งค่าให้ทำงานเฉพาะเมื่อคุณเข้าสู่ระบบเท่านั้น ทดสอบการทำงานในครั้งถัดไปก่อนที่จะซ่อนหรือย่อหน้าต่าง อย่าเริ่มงานอื่นในขณะที่งานที่กำหนดเวลาไว้กำลังทำงานอยู่
ตัวช่วยสร้างงานพื้นฐานของ Windows Task Scheduler แสดงตัวเลือก "เมื่อเข้าสู่ระบบ" เป็นตัวกระตุ้น และ "เริ่มโปรแกรม" เป็นการกระทำที่เลือกไว้
เลือก "เริ่มโปรแกรม" สำหรับงานล็อกอิน จากนั้นชี้ไปยัง PowerShell และสคริปต์ของคุณ

เมื่อใดควรใช้วิธีการที่แตกต่างออกไป

วิธีแก้ปัญหานี้เหมาะที่สุดเมื่อยอมรับพฤติกรรมการเปลี่ยนแปลงอุปกรณ์ในวงกว้างได้ Microsoft Core Audio API มีIMMNotificationClientอินเทอร์เฟซสำหรับการแจ้งเตือนการเพิ่มและการลบปลายทางเสียง แต่สคริปต์ที่เชื่อมโยงไม่ได้ใช้งานอินเทอร์เฟซนั้น ไดรเวอร์จะต้องเปิดเผยการเปลี่ยนแปลงแจ็คทางกายภาพเป็นเหตุการณ์ปลายทางด้วย สำหรับพฤติกรรมเฉพาะหูฟัง ให้ใช้ยูทิลิตี้ของผู้ผลิตพีซีที่รองรับการตรวจจับแจ็คอย่างชัดเจน หรือเครื่องมือที่กรองปลายทางเสียงที่ถูกต้อง ดูเอกสาร IMMNotificationClientของ Microsoft

หากต้องการยกเลิกการเริ่มต้นอัตโนมัติ ให้ปิดใช้งานหรือลบงานในตัวกำหนดเวลาทำงาน (Task Scheduler) หากต้องการหยุดสคริปต์ที่เริ่มต้นด้วยตนเอง ให้กดCtrl+Cในหน้าต่าง PowerShell ของสคริปต์นั้น

ฝากความเห็น

วิธีระบุโปรเซสในตัวจัดการงานของ Windows 10

วิธีระบุโปรเซสในตัวจัดการงานของ Windows 10

ระบุโปรเซสใน Task Manager ของ Windows 10 โดยตรวจสอบเส้นทางการเรียกใช้งาน คุณสมบัติของไฟล์ ผู้เผยแพร่ บริการที่เชื่อมโยง และการสแกนด้วย Microsoft Defender

วิธีลบไฟล์แต่เก็บโฟลเดอร์ไว้ใน Windows 10

วิธีลบไฟล์แต่เก็บโฟลเดอร์ไว้ใน Windows 10

ดูตัวอย่างการล้างข้อมูลด้วย PowerShell ลบไฟล์แบบวนซ้ำโดยไม่ลบโฟลเดอร์ รวมไฟล์ที่ซ่อนอยู่หากจำเป็น และตรวจสอบว่าโครงสร้างโฟลเดอร์ยังคงอยู่ครบถ้วน

วิธีสร้างรายการสิ่งของทั้งหมดในโฟลเดอร์บน Windows 10

วิธีสร้างรายการสิ่งของทั้งหมดในโฟลเดอร์บน Windows 10

สร้างรายการโฟลเดอร์ใน Windows 10 ที่ค้นหาได้ด้วย PowerShell บันทึกทุกไฟล์และเส้นทางของโฟลเดอร์ย่อยเป็นข้อความธรรมดา หรือส่งออกรายละเอียดไปยังไฟล์ CSV ที่จัดเรียงได้

วิธีแสดงข้อความที่กำหนดเองบนเดสก์ท็อป Windows 10 ของคุณ

วิธีแสดงข้อความที่กำหนดเองบนเดสก์ท็อป Windows 10 ของคุณ

เพิ่มข้อความเตือนความจำ คำคม หรือป้ายกำกับแบบกำหนดเองลงบนเดสก์ท็อป Windows 10 ของคุณด้วยสกินข้อความ Rainmeter สร้างไฟล์ INI โหลดไฟล์นั้น จากนั้นปรับแบบอักษรและตำแหน่ง

วิธีระบุสัญลักษณ์ปุ่มฟังก์ชันบนแล็ปท็อป Windows 10

วิธีระบุสัญลักษณ์ปุ่มฟังก์ชันบนแล็ปท็อป Windows 10

เรียนรู้ความหมายของสัญลักษณ์ปุ่มฟังก์ชันทั่วไปบนแล็ปท็อป วิธีที่ปุ่ม Fn และ Fn Lock ส่งผลต่อสัญลักษณ์เหล่านั้น และวิธีตรวจสอบปุ่มลัดที่ถูกต้องสำหรับแล็ปท็อป Windows 10 รุ่นของคุณ

วิธีแก้ไขปัญหา “การเรียกใช้สคริปต์ถูกปิดใช้งานในระบบนี้” ใน PowerShell บน Windows 10

วิธีแก้ไขปัญหา “การเรียกใช้สคริปต์ถูกปิดใช้งานในระบบนี้” ใน PowerShell บน Windows 10

แก้ไขข้อผิดพลาด “การเรียกใช้สคริปต์ถูกปิดใช้งานในระบบนี้” ของ PowerShell บน Windows 10 ด้วยนโยบายผู้ใช้ปัจจุบัน ตัวเลือกเซสชันชั่วคราว และขั้นตอนที่ปลอดภัยสำหรับสคริปต์ที่ดาวน์โหลดมา

วิธีตั้งค่าให้หน้าจอ Windows 10 เข้าสู่โหมดพักหน้าจอตามต้องการ

วิธีตั้งค่าให้หน้าจอ Windows 10 เข้าสู่โหมดพักหน้าจอตามต้องการ

ปิดหน้าจอ Windows 10 ของคุณได้ทันทีด้วย ScreenSleep ตั้งค่าปุ่มลัด และดูว่าเมื่อใดควรใช้ฟังก์ชันหมดเวลาหน้าจอในตัวแทน

วิธีเปลี่ยนสีการลากเลือกใน Windows 10

วิธีเปลี่ยนสีการลากเลือกใน Windows 10

เปลี่ยนสีการลากเลือกใน Windows 10 พร้อมขั้นตอนการสำรองข้อมูลรีจิสทรี ตัวอย่างสี RGB เคล็ดลับการแก้ไขปัญหา และขั้นตอนการกู้คืนค่าเดิม

วิธีเชื่อมต่อไดรฟ์ USB ที่ถูกถอดออกใน Windows 10 อีกครั้ง

วิธีเชื่อมต่อไดรฟ์ USB ที่ถูกถอดออกใน Windows 10 อีกครั้ง

เชื่อมต่อไดรฟ์ USB ที่ถอดออกใน Windows 10 อีกครั้งด้วยการสแกนฮาร์ดแวร์, PnPUtil หรือ Device Manager เรียนรู้ว่าเมื่อใดที่ Windows ต้องการให้ถอดปลั๊กและเสียบไดรฟ์ USB ใหม่

คุณสามารถตั้งค่าการแจ้งเตือนเมื่อเพื่อนใน Facebook Messenger ออนไลน์ได้หรือไม่?

คุณสามารถตั้งค่าการแจ้งเตือนเมื่อเพื่อนใน Facebook Messenger ออนไลน์ได้หรือไม่?

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