以程式方式停用播放/錄製裝置(cmd、c#)Windows

以程式方式停用播放/錄製裝置(cmd、c#)Windows

我正在嘗試從 cmd 或 c# 停用麥克風。 在此輸入影像描述

我嘗試使用 devcon.exe,但它會在裝置管理員中停用該設備,但不會在聲音屬性中停用該設備。

我嘗試寫入註冊表:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{6f512f63-a7a0-4f4f-b24c-73dd352b6709}" /v DeviceState /d 0x10000001 /t Reg_DWord /f

即使在 cmd 的提升模式下,我也會收到錯誤:

ERROR: Access is denied.

我讀到這是因為註冊表受到保護,我必須在應用該更改之前獲得註冊表的所有權。

當我使用 .reg 檔案時:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{6f512f63-a7a0-4f4f-b24c-73dd352b6709}]
"DeviceState"=dword:0x10000001

一切似乎都很好,沒有顯示錯誤,但註冊表沒有更改。

我還嘗試從 Windows 服務(本機系統)執行上述命令,但沒有成功。

我可以嘗試以程式方式停用播放/錄音設備的其他方法是什麼?

編輯:
我稍微修改了 reg 檔案。我使用 Procmon.exe 檢查單擊“禁用”時發生的更改,現在 reg 檔案如下所示:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{6f512f63-a7a0-4f4f-b24c-73dd352b6709}]
"DeviceState"=dword:10000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\{6f512f63-a7a0-4f4f-b24c-73dd352b6709}\FxProperties]
"{00123682-6AD4-4737-98CC-6092E12453CC},0"=dword:00000000
"{10786EAC-45AF-49ea-9182-4B994BD075E8},1"=dword:00000003
"{10786EAC-45AF-49ea-9182-4B994BD075E8},0"=hex:41,00,00,00,01,00,00,00,00,00,\
  00,00,3c,4f,01,00,00,00,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
\\....

當我以使用者身分套用此 .reg 檔案(透過點擊該檔案)時,錄音裝置會被正確停用。我現在有兩個問題:
1.這似乎是一個非常混亂的解決方案,使用這個reg檔案安全嗎?
2.我無法使用Windows服務應用這個reg文件,我猜測,這些註冊表被用戶帳戶或其他東西阻止了,對嗎?

相關內容