我尝试使用 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 文件,我猜这些注册表被用户帐户或其他东西阻止了,对吗?