我创建了一个 C# 应用程序,它侦听并响应自定义 uri 方案。这很容易实现,但是我必须手动编辑注册表来注册我的应用程序。如果我要与其他人共享我的应用程序,我如何确保在他们的注册表中正确设置所有内容?
在我的应用程序启动时以编程方式创建所需的注册表项是有问题的,因为写入权限HKEY_CLASSES_ROOT需要管理员权限。我不想让我的应用程序总是需要以管理员身份运行,所以我正在考虑为注册表创建第二个可执行文件。我的另一个想法是包含一个用户必须手动运行的 .reg 文件。然而,这些解决方案似乎是解决我的问题的一种不寻常的方式。
我尝试将以下内容添加到我的app.manifest:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
我的应用程序现在可以访问我需要的注册表项,但它使 UAC 每次都提示用户提供管理员权限。这个解决方案感觉不对……我希望让我的应用程序简单易用。我很少看到任何生产应用程序提示管理员权限。
我想知道,“现实生活”应用程序如何解决这个问题?还是开发人员不能在 之外编写密钥HKEY_LOCAL_USER?