Lendo o status ativo / inativo de programas de inicialização no registro

1

No software em que estou trabalhando atualmente, encontramos um cenário em que precisamos saber se um software está listado como um programa de inicialização ou não.

Para saber se esse programa está habilitado ou não pela ferramenta msconfig, usei a resposta sugerida por esta questão .

No entanto, nem todos os softwares usam o valor binário "02 00 00 00 ..." quando ativado, encontramos um que tem o valor "06 00 00 00 ...".

Para entender melhor, analisei os dois cenários lendo os valores do registro dos softwares antes de desabilitá-los e depois:

  • O cenário esperado foi alterado de 02 00 00 00 00 00 00 00 00 00 00 00 para 03 00 00 00 17 79 BD 01 17 D9 D1 01 ;
  • O cenário inesperado foi alterado de 06 00 00 00 00 00 00 00 00 00 00 00 para 07 00 00 00 71 C9 33 AE 16 D9 D1 01

Estou inclinado a assumir que o primeiro byte contém a resposta correta. Em ambos os casos, o bit 1 mudou de 0 para 1. Parece que este bit contém o valor ativo / inativo. Mas ainda não tenho certeza.

Então, minha pergunta é: posso supor que esse bit contenha o valor correto ou alguém tem uma resposta melhor para isso?

    
por Naftali 08.07.2016 / 15:36

1 resposta

0

Parece baseado no seu exemplo que você só precisa definir o 0º bit (baseado em zero) do primeiro byte. Então, em essência, apenas adicione 1 ao primeiro byte hexadecimal (ou à direita, caso isso facilite pensar) para desabilitar (ou seja, desativar o aplicativo durante a inicialização).

Portanto, se o primeiro byte for: X0, X2, X4 ou X6, ele se tornará X1, X3, X5 ou X7, respectivamente, onde X é um não importa.

    
por 08.07.2016 / 15:47