1

我有一个用 VB6 开发的旧应用程序,现在我在 C# 中附加了一些附加组件(DLL 作为组件),它需要管理员权限才能在 64 位系统(Windows 8)中编写注册表。

如果我通过右键单击“以管理员身份运行”来运行我的应用程序,程序可以正常工作并且 DLL 会写入注册表,但是如果我以普通用户身份运行它,则注册表写入会失败。

我知道如果我在 HKLM...AppCompatFlags->Layers 中添加注册表值,它会起作用,但是如何以编程方式或在设置期间添加该值(使用 WISE 9 制作)?

4

1 回答 1

3

您通常会通过安装 appcompat 数据库在安装时应用 appcompat。如果发布了新版本,请参阅应用程序兼容性工具包或当前版本。另请参阅为 Windows 7 部署应用程序兼容性数据库

然而,一个更简单的解决方案是在您的程序中嵌入一个请求提升的应用程序清单。

如果您不知道这一点以及如何完成它,那么您一定从 2006 年开始就一直在睡觉,但是搜索 MSDN 博客等网站应该会找到一些答案。对于食谱VB6 方法,您可以搜索流行的 VB6 论坛和博客站点,它们的格式往往比 StackOverflow 的教程和示例更友好。

于 2014-07-24T07:15:48.627 回答