Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# c在windows 8.1中创建注册表项_C#_Registry_Windows 8.1 - Fatal编程技术网

C# c在windows 8.1中创建注册表项

C# c在windows 8.1中创建注册表项,c#,registry,windows-8.1,C#,Registry,Windows 8.1,我有一个C应用程序,它在安装时将一个条目写入注册表。这是为了使应用程序在系统启动时启动。它在Windows7上运行良好,添加了条目,应用程序在系统启动后很快启动。但在Windows8.1上,它没有。如果有人能帮上忙,那就太好了。谢谢 故障排除由我完成 1.在app.manifest中添加了以下内容,包括highestAvailable和requireAdministrator。 同样,这在win7中运行良好,但在Win8.1中失败 2.在初始化组件之前在.cs文件中添加了以下内容 Registr

我有一个C应用程序,它在安装时将一个条目写入注册表。这是为了使应用程序在系统启动时启动。它在Windows7上运行良好,添加了条目,应用程序在系统启动后很快启动。但在Windows8.1上,它没有。如果有人能帮上忙,那就太好了。谢谢

故障排除由我完成

1.在app.manifest中添加了以下内容,包括highestAvailable和requireAdministrator。 同样,这在win7中运行良好,但在Win8.1中失败

2.在初始化组件之前在.cs文件中添加了以下内容

RegistrySecurity rs = new RegistrySecurity();
    string user = Environment.UserDomainName + "\\" + Environment.UserName;
    rs.AddAccessRule(new RegistryAccessRule(user, 
        RegistryRights.ReadKey | RegistryRights.Delete, 
        InheritanceFlags.None, 
        PropagationFlags.None, 
        AccessControlType.Allow));
添加此项后,应用程序停止工作,无法添加密钥


请帮我做这个。非常感谢。谢谢你的回答,我已经解决了。这是我的解决方案,供将来参考

我正在当前用户中创建一个条目,但失败了。
使用app.manifest中的权限requireAdministrator,我编写了一个代码,在本地机器中创建一个密钥。该应用程序现在在win7和Win8中都可以正常运行,谢谢Matthew。

您可能需要-highestAvailable告诉它在不使用UAE的情况下使用最高权限。正如我在问题中提到的,我尝试了requireAdministrator和highestAvailable。他们中的任何一个都没有添加。当然,只是让你知道你可以消除highestAvailable。不管怎样,您是否有可能有一个64位安装程序,并且您正在设置64位注册表项而不是32位注册表项?这是新的,我对此没有任何想法。我正在尝试在当前用户windows 8.1 64位中设置注册表项。同样的代码适用于Windows7。