Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Leggere chiave registro da servizio windows c#
Forum - C# / VB.NET - Leggere chiave registro da servizio windows c#

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 11:34
Giovedì, 08/12/2011
Ho un problema nel leggere la chiave HKEY_CURRENT_USER da un servizio windows sto usando questo codice :

Codice sorgente - presumibilmente C# / VB.NET

  1. RegistryKey popt = default(RegistryKey);
  2.                 popt = Registry.CurrentUser.OpenSubKey("Software" + PortalOPT, true);
  3.                 return popt.GetValue(key, string.Empty).ToString();



ma immagino che il problema non sia il codice dato che se lo uso su un progetto normale funziona benissimo :d come posso leggere quella chiave da un servizio windows ?

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 12:01
Giovedì, 08/12/2011
Un Servizio NT gira anche quando non esiste alcun utente loggato.

Molto probabilmente gira come LocalSystem.

Se devi accedere a parti di registro relative ad utenti, devi far impersonare prima l'utente dal servizio.

Molto meglio spostare i dati che ti servono in un file.

Si ma nel file ci sono impostazioni che dipendono da utente ad utente se ci sono piu utenti loggati come faccio a decidere quale file leggere e che fare ? non c'è un modo per associare il servizio ad un singolo utente e nn farlo funzionare se non c'è nessun utente loggato ? - jaco94++ - 08/12/11 12:47


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 17:00
Giovedì, 08/12/2011
Ma scusa, un servizio si sceglie proprio perché funzioni a prescindere dall'utente loggato ... è stato "pensato" per questo.

Se la tua applicazione deve girare solo con un utente loggato, allora fai una applicazione "normale" e falla eseguire al login (nella cartella di Startup).


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM