czytanie Rejestru z poziomu uslugi

0

Witam
Piszę programik, który pewne ustawienia odczytuje z rejestru. Sam program jest zainstalowany w systemie jako usługa na LocalSystem. Klucz rejestru jest trzymany w CURRENT_USER.
W momencie kiedy program odpalam jako program np. konsolowy to wszystko jest ok, natomiast w przypadku kiedy program jest uruchamiany jako usługa to już jest lipa i nie chce odczytać danych. Proszę o pomoc. Dzięki :)

Pozdrawiam
Stefan

0

Usługa systemowa działa na innym koncie niż zalogowany domyślnie użytkownik i zapewnie na tym koncie nie ma dostępu do rejestru.

Polecam poczytać więcej w tym artykule na MSDN.

0

Poczytałem na MSDN'ie, ale nie ma tam rozwiązania mojego problemu. A problem jest chyba w prawach dostępu do rejestru. Czy można w jakiś sposób nadać prawo odczytu lub zapisu do rejestru? Chodzi mi o rozwiązanie, które będzie realizowane w kodzie, żeby nie angażować usera w celu ręcznego przypisania uprawnień.

0

Wg. mnie rozwiązaniem twojego problemu jest uruchomienie usługi w kontekscie innego konta. Próbowałeś tego? Nie wiem dlaczego uważasz, że trzeba usera angażować - przy tworzeniu usługi możesz ustawić w ramach jakiego konta ona działa (o ile dobrze pamiętam - dawno usług nie tworzyłem)

0

Oczywiście uruchomienie usługi pod innym kontem niż wbudowane rozwiąże problem, ale żeby przypisać usera do usługi to albo trzeba przez panel sterowania itd albo w instalatorze określić, że trzeba się zapytać. Więc wyświetla on wtedy okno z zapytaniem o login i haslo. I wtedy tak czy inaczej trzeba zaangażować usera. Może w niewielkim stopniu ale zawsze :) Od biedy jest to jakieś rozwiązanie, ale myślałem, że można to jakoś ominąć i nadać prawa albo coś takiego bezpośrednio z kodu.

0

Być może tak jest - tak jak pisałem usług dawno nie programowałem. Jednak z tego co teraz piszesz wynika, że twoja usługa nie do końca miałby być pomocna użytkownikowi - skoro martwisz się, że raz nie mógłby on zaakceptować tego okienka i wpisać hasło.

0

po co piszesz do HKCU? usługa nie ma dostępu do tego klucza, bo nie ma Current Usera. masz dostęp do innych kluczy, HKLM/SOFTWARE na przykład.

1 użytkowników online, w tym zalogowanych: 0, gości: 1