วิธีปิดเสียงอัตโนมัติเมื่อถอดหูฟังใน 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 ของสคริปต์นั้น

ฝากความเห็น

วิธีการติดตั้ง Add-on ของ Minecraft บน Windows 10

วิธีการติดตั้ง Add-on ของ Minecraft บน Windows 10

นำเข้าไฟล์ Bedrock .mcpack หรือ .mcaddon บน Windows 10 เปิดใช้งานสำหรับโลกใหม่หรือโลกที่มีอยู่แล้ว และหลีกเลี่ยงการสับสนระหว่างส่วนเสริมกับม็อด Java

วิธีจำกัดการใช้งาน CPU ของ Microsoft Defender บน Windows 10

วิธีจำกัดการใช้งาน CPU ของ Microsoft Defender บน Windows 10

ตั้งค่าเป้าหมายการใช้งาน CPU สำหรับการสแกน Defender ใน PowerShell ให้ต่ำลง จัดการข้อยกเว้นการสแกนขณะไม่ได้ใช้งาน และตรวจสอบว่าการตั้งค่านี้มีผลต่อการสแกนใดใน Windows 10

วิธีปรับความสว่างหน้าจอตามช่วงเวลาของวันใน Windows 10

วิธีปรับความสว่างหน้าจอตามช่วงเวลาของวันใน Windows 10

ตั้งค่าระดับความสว่างในเวลากลางวันและกลางคืนบน Windows 10 ด้วย ClickMonitorDDC 7.2 และเรียนรู้เกี่ยวกับข้อจำกัดของ DDC/CI และทางเลือกโหมดแสงกลางคืน

วิธีแก้ไขปัญหา “เราไม่สามารถตั้งค่าฮอตสปอตมือถือได้” ใน Windows 10

วิธีแก้ไขปัญหา “เราไม่สามารถตั้งค่าฮอตสปอตมือถือได้” ใน Windows 10

กู้คืนฮอตสปอตของ Windows 10 โดยตรวจสอบแหล่งที่มาของอินเทอร์เน็ตและอะแดปเตอร์ไร้สาย ซ่อมแซมไดรเวอร์ และเก็บการรีเซ็ตเครือข่ายไว้เป็นขั้นตอนสุดท้าย

วิธีเปลี่ยนโหมดการฉายภาพใน Windows 10 ด้วยปุ่มลัดบนแป้นพิมพ์

วิธีเปลี่ยนโหมดการฉายภาพใน Windows 10 ด้วยปุ่มลัดบนแป้นพิมพ์

ตั้งค่าปุ่มลัดแบบกำหนดเองสำหรับแต่ละโหมดการฉายภาพใน Windows 10 ด้วย DisplaySwitch.exe รวมถึงโหมดขยาย โหมดทำซ้ำ และโหมดแสดงผลเฉพาะหน้าจอที่สอง

วิธีปรับสมดุลเสียงซ้าย/ขวาสำหรับหูฟังบลูทูธใน Windows 10

วิธีปรับสมดุลเสียงซ้าย/ขวาสำหรับหูฟังบลูทูธใน Windows 10

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

วิธีเปิดใช้งานการแสดงตัวอย่างภาพขนาดย่อของภาพ RAW ใน Windows 10

วิธีเปิดใช้งานการแสดงตัวอย่างภาพขนาดย่อของภาพ RAW ใน Windows 10

ติดตั้งส่วนขยาย Raw Image Extension ฟรีของ Microsoft และปรับการตั้งค่า File Explorer เพื่อแสดงตัวอย่างไฟล์ RAW จากกล้องที่รองรับใน Windows 10

วิธีปิดใช้งานคำแนะนำเกมบน Game Bar ใน Windows 10

วิธีปิดใช้งานคำแนะนำเกมบน Game Bar ใน Windows 10

หยุดการแสดงคำแนะนำเริ่มต้นเกมของ Xbox Game Bar ใน Windows 10 โดยยังคงใช้งานโอเวอร์เลย์และปุ่มควบคุมการจับภาพได้

วิธีการย้ายไฟล์ระหว่างไดรฟ์ด้วยการลากและวางบน Windows 10

วิธีการย้ายไฟล์ระหว่างไดรฟ์ด้วยการลากและวางบน Windows 10

ใน Windows 10 การย้ายไฟล์ระหว่างไดรฟ์ทำได้โดยการกดปุ่ม Shift ค้างไว้ขณะลากใน File Explorer ตรวจสอบการย้าย และใช้การตัดและวางเป็นทางเลือกสำรอง

วิธีตรวจสอบว่าไฟล์ EXE เป็นเวอร์ชัน 32 บิตหรือ 64 บิตบน Windows 10

วิธีตรวจสอบว่าไฟล์ EXE เป็นเวอร์ชัน 32 บิตหรือ 64 บิตบน Windows 10

ใช้ Windows PowerShell เพื่ออ่านประเภทเครื่อง PE ของไฟล์ EXE ระบุว่าเป็น 32 บิตหรือ 64 บิต และหลีกเลี่ยงการพึ่งพาชื่อไฟล์หรือไอคอน