You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何管理员权限的C#程序无法修改音频设备注册表项,而注册表编辑器可以

C#修改音频设备注册表项时遇权限异常问题

我在C#中尝试启用音频设备时,抛出异常:System.Security.SecurityException: 'Requested registry access is not allowed.'。仅读取注册表项可正常执行,说明路径无误。即使以管理员身份运行该C#程序,问题仍存在。

代码片段如下:

string baseKeyName = device.RegistryPath;
RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey? regKey = localMachine.OpenSubKey(baseKeyName, true);
// System.Security.SecurityException: 'Requested registry access is not allowed.'
if (regKey == null) return false; // 设为false(只读)时能正常获取regKey
                
regKey.SetValue("DeviceState", deviceState, RegistryValueKind.DWord);
regKey.Close();

但在Registry Editor(注册表编辑器)中执行相同操作却完全正常。请问为何C#程序无法获得相应权限?

更新内容

  • 更新1:已尝试RegistryView.Registry64和RegistryView.Registry32(后者无法找到注册表项),均未解决问题。即使以管理员运行,仍无法修改(仅读取正常)。
  • 更新2:本不抱期望,因为已尝试过“以管理员身份运行”,但在清单中添加<requestedExecutionLevel level="highestAvailable" uiAccess="false" />也无济于事。

相关主题

  • 通过Win32 API程序化启用/禁用设备
  • Windows系统启用/禁用麦克风教程
  • 程序化启用录音设备

内容的提问来源于stack exchange,提问作者Horst Walter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:55:26