Diferença entre HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE

HKEY_CURRENT_USER vs HKEY_LOCAL_MACHINE

HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE são duas chaves raiz no registro do Windows que são parte vital de toda instalação de sistema operacional Windows desde o Windows 3.1. O registro do Windows contém configurações do dispositivo, opções de software e outras informações sobre o computador, o SO e os aplicativos nele contidos. A principal diferença entre HKEY_CURRENT_USER e HKEY_LOCAL_MACHINE é a que eles pertencem. HKEY_LOCAL_MACHINE mantém informações relevantes para o computador como um todo, enquanto HKEY_CURRENT_USER contém informações específicas para o usuário. Portanto, há apenas uma cópia do HKEY_LOCAL_MACHINE enquanto há várias cópias do HKEY_CURRENT_USER com valores diferentes.

Se um usuário decidir editar as entradas do registro em HKEY_CURRENT_USER, ele somente alterará as configurações para si próprio. Mas se ele alterar as entradas em HKEY_LOCAL_MACHINE, ele estará alterando as configurações para todos que usam esse computador. Um bom exemplo disso seria instalar um novo software. Muitos softwares perguntam, durante a instalação, se seria apenas para o usuário atual ou para todos. Selecionar apenas para o usuário atual resultaria em entradas feitas em HKEY_CURRENT_USER, enquanto selecionar para todos colocaria as entradas em HKEY_LOCAL_MACHINE. Obviamente, escolher o primeiro significa que apenas o usuário que instalou o software poderá usá-lo, enquanto a última opção permitirá que todos vejam e usem o software.

Outra diferença importante entre HKEY_LOCAL_MACHINE e HKEY_CURRENT_USER é quem pode editá-lo. O primeiro pode ser editado por qualquer usuário que tenha acesso ao registro, enquanto o último só pode ser editado pelo usuário individual. Você não pode fazer login em uma conta e editar as entradas HKEY_CURRENT_USER em outra conta.

Por fim, há a questão de quando as entradas do registro são carregadas. HKEY_LOCAL_MACHINE são carregados durante a inicialização do sistema operacional. Em comparação, o HKEY_CURRENT_USER é carregado apenas depois que o usuário efetua login na sua conta, o que é bastante razoável, pois o sistema operacional não sabe qual HKEY_CURRENT_USER carregaria. Se o usuário não fizer login em uma conta específica ou acessar a conta de convidado, as configurações padrão de HKEY_CURRENT_USER serão carregadas. Para um novo usuário, as entradas HKEY_CURRENT_USER também seriam as mesmas que as configurações padrão..

Resumo:

1.HKEY_CURRENT_USER é aplicável apenas a um usuário, enquanto HKEY_LOCAL_MACHINE é aplicável a todos
2.HKEY_LOCAL_MACHINE está sempre disponível, enquanto HKEY_CURRENT_USER para um usuário específico só está disponível quando ele faz logon
3.HKEY_LOCAL_MACHINE são carregados na inicialização enquanto HKEY_CURRENT_USER são carregados no logon