Domanda

So che non dovremmo più utilizzare il registro per archiviare i dati dell'applicazione, ma nell'aggiornamento di un'applicazione legacy (e volendo apportare il minor numero di modifiche), quali hive del registro possono utilizzare i non amministratori?

Posso accedere a tutti HKEY_CURRENT_USER (l'applicazione attualmente accede HKEY_LOCAL_MACHINE) senza privilegi di amministratore?

È stato utile?

Soluzione

In generale, un utente non amministratore ha questo accesso al registro:

Leggi/Scrivi su:

  • HKEY_CURRENT_USER

Sola lettura:

  • HKEY_LOCAL_MACHINE
  • HKEY_CLASSES_ROOT (che è solo a collegamento A HKEY_LOCAL_MACHINE\Software\Classes)

È possibile modificare alcune di queste autorizzazioni chiave per chiave, ma è estremamente raro.Non dovresti preoccuparti di questo.

Per i tuoi scopi, l'applicazione dovrebbe scrivere impostazioni e configurazione su HKEY_CURRENT_USER.Il luogo canonico è ovunque all'interno HKEY_CURRENT_USER\Software\YourCompany\YourProduct\

Potresti potenzialmente mantenere impostazioni globali (per tutti gli utenti). HKEY_LOCAL_MACHINE.È molto raro che sia necessario farlo e dovresti evitarlo.Il problema è che qualsiasi utente può "leggerli", ma solo un amministratore (o per estensione, il programma di configurazione/installazione) può "impostarli".

Altra fonte comune di problemi:la tua applicazione non dovrebbe scrivere nulla nel file Program files o il Windows directory.Se è necessario scrivere su file, sono disponibili diverse opzioni;descriverli tutti sarebbe una discussione più lunga.Tutte le opzioni finiscono per essere scritte in una sottocartella o in un'altra %USERPROFILE% per l'utente in questione.

Infine, la tua domanda dovrebbe rimanere fuori HKEY_CURRENT_CONFIG.Questo hive contiene la configurazione hardware, le configurazioni dei servizi e altri elementi che il 99,9999% delle applicazioni non dovrebbe aver bisogno di guardare (ad esempio, contiene l'attuale elenco dei dispositivi plug-and-play).Se hai bisogno di qualcosa da lì, la maggior parte delle informazioni sono disponibili tramite API supportate altrove.

Altri suggerimenti

Sì, dovresti essere in grado di scrivere in qualsiasi posizione sotto HKEY_CURRENT_USER senza avere i privilegi di amministratore.Ma questo è effettivamente un archivio privato a cui nessun altro utente su questa macchina potrà accedere, quindi non puoi inserire alcuna configurazione condivisa lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top