Dê uma olhada nesta entrada do registro:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ CSDBuildNumber
Verificar este artigo sobre o que é (obrigado pelos comentários)
Quando a versão do service pack do Vista está no nível 1 (SP1), esse número de versão é mostrado em "Control Painel / Sistema ". No entanto, no meu sistema esta informação desapareceu, provavelmente porque estou usando agora o SP2. Eu gostaria de verificar isso, então posso ter certeza.
Conclusão : graças ao Ivo , encontrei as configurações de registro que armazenam a versão do service pack número. Porque eu estava (incorretamente) convencido de que eu tinha instalado um service pack e porque o "CSDBuildNumber" era 2 no meu sistema, fiz algumas pesquisas sobre as informações no registro. Aqui estão os resultados:
Imagem fresca do Windows Vista sem SP:
Nova imagem do Windows Vista com o SP1:
Imagem fresca do Windows Vista com o SP2:
Então, de fato, meu problema era que - ao contrário do que eu acreditava - eu não tinha nenhum service pack instalado. Assim, a caixa de diálogo "Painel de controle / sistema" pode ser confiável .
Dê uma olhada nesta entrada do registro:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ CSDBuildNumber
Verificar este artigo sobre o que é (obrigado pelos comentários)
Execute winver
na caixa de seleção do menu Iniciar (ou em qualquer outro lugar onde você possa executar comandos arbitrários).
Este pequeno utilitário abre uma caixa de mensagem que lista a versão atual do Windows e o nível do service pack.
Minha resposta (a correta resposta) para a posteridade:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\CSDVersion (a REG_DWORD)
O valor do nível do Service Pack (se houver) é obtido fazendo CSDVersion >> 8
, isto é, deslocando para a direita o CSDVersion REG_DWORD em 8 bits; por exemplo. o valor REG_DWORD será 0x100
para o SP1, 0x200
para o SP2 e assim por diante.
Isso funciona para as versões do Windows desde o NT4, e é a maneira preferida da Microsoft de obter o nível de SP antes da introdução do estrutura OSVERSIONINFOEX , conforme descrito no Requisitos Fundamentais do Windows [1], especificamente o requisito" 7. Execute a Verificação de Versão do Windows Corretamente "(consulte o link de referência abaixo para obter mais detalhes)
[1] Referência: link