问题标签 [registrykey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2345 浏览

c# - 通过 C# 从注册表中的“UserChoice”键中删除“拒绝”规则(权限)

我正在研究文件关联。我已经确定有一个键被调用UserChoice

UserChoice只要创建它并且它尚未由 Windows 创建,我就能够读取和写入密钥。但是,如果 Windows 已经创建了密钥UserChoice,那么我需要以管理员身份运行才能访问密钥。我的最终目标是删除密钥。UserChoice

我注意到 Windows 在密钥上设置了拒绝规则,UserChoice阻止我删除该密钥。如果我能成功删除该规则,我相信我将能够删除该UserChoice密钥。这是我尝试过的代码:

当 Windows 创建密钥时,它会为 Type DenyUserChoice的当前用户添加一个安全规则;许可:特殊。此规则不会被继承,仅适用于UserChoice键。

随着一些混乱和以管理员身份运行,我可以访问它RegistryAccessRule。但是,即使以管理员身份运行,我也无法删除此规则。我在研究中的某处读到,没有一种程序化的方法可以做到这一点。我可以通过 RegEdit 删除此规则。我还可以UserChoice使用 NirSoft 的文件类型管理器删除密钥。所以我认为有一些方法可以做到这一点。

摘要:有没有办法可以删除拒绝规则以便我可以删除UserChoice密钥?

0 投票
1 回答
1228 浏览

registry - 我怎么知道应该删除哪些注册表项?

我正在编写一个 Java 桌面应用程序,它的一个功能是删除旧的不需要的、无用的注册表项。如何确定可以删除哪些条目/键/值。

在查看注册表之后

  • 我安装然后卸载了我的应用程序,我注意到 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall 中我的程序的密钥仍然存在,但值已被删除。
  • 尽管密钥仍然存在,但该程序已不在“卸载程序”列表中,并且该程序已被卸载。
  • 然后我环顾四周,发现该位置还有其他没有任何值的键。

没有子键或值的键是否旧?这些可以安全删除吗?

  • 我还发现该位置的某些键没有 InstallDate 值。卸载程序中的所有程序/更新都有一个安装日期。

在决定是否删除注册表项时,我的政策应该是什么?我应该记住什么?

0 投票
1 回答
5260 浏览

c# - 无法使用 C# .NET 中的 RegistryKey 类设置注册表值

我正在使用 Visual C# 2010 并且在设置注册表项时遇到问题。我认为这与我一开始没有以管理员身份运行它有关,但我尝试构建版本,然后右键单击 exe 并选择“以管理员身份运行”无济于事。

我还尝试使用 RegistryPermission 类,这似乎没有任何区别。

这是代码:

每次运行它时,这都会给我来自异常的错误消息,即使使用“以管理员身份运行”也是如此。有什么想法可以解决这个问题吗?这似乎很奇怪,因为我的标准用户帐户允许我进入 regedit 并手动更改这些值没有问题。

0 投票
3 回答
5443 浏览

c# - 我添加了一个注册表项,但我无法以编程方式找到它

所以我使用 RegEdit 将以下内容添加到我的工作站上的注册表中:

HKLM\Software\Foo\Bar

酒吧有 ak/v 对“wtf”/“idk”。我通过关闭 regedit 并重新打开它来验证这些更改是否“发生”。嘿,他们还在!胀。

问题是,键为空。

什么时候。. .

被调用,Foo 并没有出现在许多 SubKeyNames 中。

所以,我显然错过了一些愚蠢的东西。我特别想念什么?

0 投票
1 回答
3450 浏览

c# - 在 Windows 启动时运行程序

如果有人可以向我解释如何让我的程序在启动时运行,我正在徘徊?我的程序是一个 C# WCF,带有一个必须在服务器上运行的小型 WPF UI,我需要确保该程序在服务器重新启动或出于任何其他原因时启动。

我环顾四周,看来我必须使用注册表项,但我不熟悉如何使用注册表项,有人可以向我解释如何使用它。我正在使用 VS2010 创建安装程序,我想在安装时设置注册表项:)

PS 我不希望应用程序成为 Windows 服务,我不能只将它放在用户的启动文件夹中(如果服务器重新启动并且没有人登录怎么办?)

0 投票
0 回答
551 浏览

c++ - enumdisplayDevices 为一张显卡返回多个实例

您好我正在使用以下代码片段来获取 Windows 7 系统中显示适配器的数量。我有一个连接到我的显示器的 NVidia GT 120,以及一个充当我的 GPU 处理器的 NVidia Quadro 4000。

因为两个显示适配器都有多个输出端口,使用以下代码,我实际上得到了 GT120 的 2 个 Display_Device 实例和 Quadro 4000 的 2 个。我解决这个问题的方法实际上是使用 DeviceKey 组件(MSDN 说没有使用,但是它实际上是 DisplayDevice 结构的注册表项)作为删除重复实例的标准。

有没有人对这个问题有更好的或官方的解决方案?

0 投票
1 回答
921 浏览

wix - 无法在 Windows Server 2008 R2 上使用基于 Wix 的安装包注册 32 位自定义 BizTalk 适配器

我发现一个非常奇怪但 100% 可重现的问题,从 Windows Server 2008 R2(Service Pack 1)上使用 Wix v3.5 创作的相应 32 位 .MSI 包安装 32 位自定义 BizTalk 适配器。

基本上,安装程序运行良好并将适当的文件复制到 Program Files (x86) 文件夹,并在 HKCU\Wow6432Node\CLSID 下写入相应的注册表项以注册适配器。

在 BizTalk Server 管理控制台中,当尝试在Platform Settings\Adapters文件夹下添加适配器时,我调用了适配器属性对话框。在那里,我可以在适配器列表中成功找到自定义适配器并为其命名,但是当我尝试验证对话框时,我收到以下错误:

无法读取传输配置。验证适配器管理组件是否安装在本地机器上。从注册表读取传输配置时,无法读取“CLSID{7823EF8C-0D1E-4BC4-B110-2C16A0B8A63F}\BizTalk”键的值。该系统找不到指定的文件。

尽管如此,我可以确认相应的注册表项在那里。我可以使用 Windows 注册表编辑器 (regedit.exe)、reg.exe 命令行实用程序、从 x86 PowerShell 命令提示符和 C# 程序查看它......无论如何。

现在,这是奇怪的部分。

如果我将注册表项导出到临时 .reg 文件,然后删除该项并随后通过在 Windows 资源管理器中双击临时文件的内容来重新导入该临时文件的内容,现在可以将适配器成功添加到 BizTalk Server 管理控制台.

我使用 reg.exe 命令行实用程序(reg.exe /export;reg.exe /delete;reg.exe /import)执行了相同的步骤,效果相同。

我可能做错了什么?

我的 WiX 项目文件的编写是为了能够从同一个项目文件中同时针对 32 位和 64 位平台(尽管有两个连续的编译)。以下是脚本的适当部分,用于说明目的:

我对这个完全失去了理智!

0 投票
1 回答
37940 浏览

c++ - 为什么 RegQueryValueEx() 函数在尝试读取注册表项时返回 ERROR_FILE_NOT_FOUND?

系统:Windows 7 32bit
语言:C++

我试图访问 register HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\Scsi\\Scsi Port 0, key Driver(type REG_SZ) -- 没问题。

从 读取相同HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM,所有键(类型REG_SZ)都有斜线,例如\Device\Serial0

在读取此类键时,它始终返回 2(没有此类文件),并带有以下示例代码:

读取名称中带有斜杠的键值的正确方法是什么?


以上已由 Cody Gray 正确回答。
下面是另一个问题。


当我使用变量而不是文本字符串时,我遇到了同样的问题。
Iv 考虑了使用单斜杠和双斜杠的两种方法:

我已经尝试了所有带有“\Device..”、“/Device”、“\Device”等的变体。

0 投票
1 回答
1514 浏览

windows - 如何防止使用 LsaStorePrivateData 存储的数据被使用 LsaRetrievePrivateData 从远程机器上的任何人轻松读取?

我使用 LsaStorePrivateData 在计算机 A 上存储一些数据。问题是使用 LsaRetrievePrivateData api func 从同一本地网络上的任何其他 PC 很容易读取它。我怎样才能防止这种情况?停止“远程注册表”服务无济于事。防止远程访问使用 LsaStorePrivateData 存储的数据的任何其他技巧?

问候, 阿图尔

0 投票
2 回答
775 浏览

c# - 删除注册表项的问题

我正在尝试删除注册表项,到目前为止,我尝试了似乎正常的代码:

但我得到错误:

我用谷歌搜索了我的问题并搜索了 stackoverflow 并应用了一些解决方案,但似乎都使用了我正在使用的相同方法,所以我受够了,我希望你能帮助我。

编辑:抱歉,我在 registryKey 路径中使用了 CurrentUser 而不是 LocalMachine,这就是问题所在。