以编程方式禁用播放/录音设备(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 文件,我猜这些注册表被用户帐户或其他东西阻止了,对吗?

相关内容