2013-10-01 9 views
5

Szukałem google i odpowiedzi tutaj przez chwilę teraz i dochodzę do wniosku, że pisząc do rejestru, HKEY_CURRENT_USER powinien być dostępny bez UAC, prawda? Tak przynajmniej wydaje się każda nić. Moje problemy polegają na tym, że otrzymuję błąd odmowy dostępu podczas próby uzyskania dostępu do tego klucza i napisania nowej wartości. Czy dzieje się tak dlatego, że coś jest nie tak z moim rejestrem, czy też robię coś nie tak? Oto kod, którego używam:Nie mogę napisać do HKEY_CURRENT_USER klucz rejestru w C#

string runKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; 
RegistryKey startupKey = Registry.CurrentUser.OpenSubKey(runKey, true); 
startupKey.SetValue("Arebokerts application", '"' + Environment.CurrentDirectory +  "\\arebokert.exe" + '"', Microsoft.Win32.RegistryValueKind.String); 

Czy ktokolwiek może być tak miły i rzucić nieco światła na ten temat? Chciałbym trzymać się z daleka od wszelkiego rodzaju poleceń UAC i być w stanie go uruchomić bez uprawnień UAC. Ten kod zgłasza "UnauthorizedAccessException". Co jest nie tak?

poważaniem, arebokert

EDIT

Jak David i Hans w komentarzach wskazał, ten problem był spowodowany coś blokuje mi zmianę klucza. Dowiedziałem się, że to był program antywirusowy comodo, więc go wyłączyłem. To sprawiło, że aplikacja działała prawidłowo. Dziękuję za wszystkie odpowiedzi!

+0

Prawa dostępu mogą być nadpisane na każdym pojedynczym kluczu przez administratora. Ten znajdzie się wysoko na liście. Uruchom regedit.exe, kliknij prawym przyciskiem myszy, Uprawnienia. –

+0

To nie jest opłacalne rozwiązanie dla mnie Obawiam się. Ta aplikacja będzie działać również na innych moich komputerach, więc zmiana uprawnień na każdym komputerze nie jest opcją. Dzięki za twoją radę. – arebokert

+0

@arebokert To nie jest to, co mówi Hans. Hans sugeruje, że jest możliwe, że twój rejestr został zabezpieczony z uprawnieniami, które odmawiają ci praw użytkownika do robienia tego, co próbujesz. W takim przypadku nie pomoże żadna ilość prośby o inne rozwiązania. Jeśli zabezpieczenie uniemożliwia dostęp, nie można go obejść. Gdybyś mógł, nie byłby, um, bezpieczny. –

Odpowiedz

5

Twój kod jest w porządku, a standardowy użytkownik domyślnie może pisać pod numerem HKCU. Problem polega na tym, że system odmawia Ci prawa do zapisu w tej części rejestru. Najbardziej prawdopodobne wyjaśnienia są:

  1. Maszyna, na której ten kod miał tego konkretnego klucza zabezpieczone, aby ograniczyć dostęp do zapisu. Sprawdź, czy tak jest w przypadku regedit. Przejdź do klucza, kliknij prawym przyciskiem myszy w widoku drzewa i wybierz Uprawnienia. Wybierz swoją nazwę użytkownika i zobacz jakie masz uprawnienia. Powinieneś mieć zaznaczone Zezwalaj na pełną kontrolę i Odczyt.

  2. Masz uruchomiony produkt antywirusowy lub anty-malware, który blokuje dostęp do tego klucza. Ponieważ klucz ten jest szeroko wykorzystywany przez złośliwe oprogramowanie, nie jest rzadkością w przypadku produktów zwalczających szkodliwe oprogramowanie. Możesz zdiagnozować, czy nie jest to przyczyną, tymczasowo wyłączając wszystkie produkty antywirusowe lub zabezpieczające przed złośliwym oprogramowaniem.

+0

To jest rozwiązanie mojego problemu. Program antywirusowy Comodo uniemożliwiał mi pisanie do rejestru, a kiedy go wyłączyłem, pisanie zakończyło się sukcesem! Dziękuję bardzo David! – arebokert

+0

No dobrze: str – Nyerguds

Powiązane problemy