2014-12-08 3 views
0

У меня есть приложение C#, где он записывает запись в реестр после установки. Это делается для запуска приложения при загрузке системы. Он отлично работает с окнами 7, он добавляет запись, и приложение запускается вскоре после загрузки системы. Но на окнах 8.1 это не так. Было бы здорово, если кто-то поможет в этом. Благодарю.C# создание ключа реестра в Windows 8.1

Устранение неисправностей, выполненное мной.

1.получил следующее в app.manifest как с максимальным, так и с требованием администратора. <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> еще раз это отлично работает в win7, в то время как не удается выиграть 8.1.

2.added следующий в .cs файл перед InitializeComponent()

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)); 

после добавления этого приложения перестает работать, и он не может добавить ключ.

Пожалуйста, помогите мне в этом. Спасибо заранее.

+1

Возможно, вам понадобится '' - 'highAvailable' говорит ему использовать самые высокие права без использования ОАЭ. –

+0

как я упомянул в вопросе, я попробовал оба requireAdministrator и mostAvailable. Ни один из них не смог добавить. –

+0

Несомненно, просто сообщив, что вы можете исключить 'highAvailable'. В любом случае, возможно ли, что у вас установлен 64-разрядный установщик, и вы устанавливаете 64-битный раздел реестра вместо 32-битного? –

ответ

0

Спасибо за ответ, я решил его решить. Вот мое решение для дальнейшего использования.

Я создавал запись в CURRENT_USER, которая не срабатывала. с разрешениями «requireAdministrator» в app.manifest, я написал код, который создает ключ в LOCAL_MACHINE. Приложение теперь отлично работает как в win7, так и в 8 (спасибо Matthew).

Смежные вопросы