Segredos do Windows: A chave do mistério

Algumas configurações nunca devem ser alterados ou manipulados. Quando você encontrar uma dessas, deixe-a em paz.

Raymond Chen

"Por que o sistema age engraçado quando eu modificar essa chave do registro não documentados?" Isso nunca é o tipo de pergunta que você quer ouvir.

Um cliente uma vez observou que uma caixa de seleção particular parecia estar associado com uma chave de registro não documentadas particular. Porque o cliente queria controlar essa caixa de seleção por meio de programação, ele escreveu um script para manipular essa chave, mas então o sistema começou a agir estranhamente. Imagine isso.

"Se eu começar com a chave definida como 0 e defini-lo manualmente para 1, quando vou ao painel de controle, mostra a caixa de seleção marcada, mas o sistema se comporta como se a caixa de seleção é desmarcada ainda. Ainda mais estranho; Se eu tentar alternar a caixa de seleção no painel de controle, ele não alterna. Só fica marcado. Eu aprecio sua entrada."

Às vezes as pessoas então pego no descrevendo o seu problema que eles esquecem de fazer uma pergunta. Neste caso, o cliente descrito todas as coisas que eles fizeram e o que observaram. No entanto, ele realmente não indicar que tipo de ajuda que ele precisava. Um desenvolvedor lendo isto pode-se dizer, "isso faz sentido," ou, eventualmente, "meu, que é uma história interessante."

Vamos supor que a pergunta é: "Pode me ajudar desenvolver uma maneira de controlar a caixa de seleção por meio de programação? A edição do registro não parece estar funcionando."

Não modifique

Bem, a chave do registro em questão está em situação irregular por um motivo: Modificação direta não é suportada. Modificação direta provoca Estados internos ficar fora de sincronia. Então você adquire comportamento estranho como aquele descrito pelo cliente.

Considere que você está em um restaurante chique. Este restaurante chique mantém uma cópia mestre do menu diário na cozinha. No início do dia, cada cozinheiro e garçom Olha para o menu e compromete-se a isso a memória. Às vezes, o chef executivo vai fazer uma mudança para o menu no meio do dia. Quando ela faz, ela diz o pessoal sobre isso assim que todo mundo sabe e fica de acordo. "Ficamos sem alabote, então riscar o halibut para o resto da noite." Assim, os garçons não vai oferecer aos hóspedes pratos que não existem.

Esse menu é como o registro. Suponha que um cliente foge para a cozinha, pega uma caneta, cruza o filé mignon e grava Nova York bife, então volta para a sala de jantar e tenta pedir a Nova Iorque bife. (Talvez o cliente também altera o preço de $45 a $35 para uma boa medida.)

O garçom vai dizer, "Desculpe, senhor, mas não temos bife de Nova Iorque hoje. Posso sugerir o filé mignon?"

Então o cliente diz, "você está errado. Hoje tem bife de Nova York. Volte para a cozinha e olha para o menu principal. Você verá que está lá. Este restaurante está espera pessoal procedimentos claramente são falhos."

O menu principal na cozinha está em situação irregular. Como o cliente sabe sobre o menu principal? Clientes fazer alterações para o menu principal é o comportamento totalmente sem suporte. Só porque você risca o filé mignon e escreve Nova York bife não significa Nova York bife irá aparecer de repente na cozinha.

O garçom nem sequer viu a mudança do cliente porque o garçom memorizado o menu no início do dia e não olhou para o menu principal desde então. Não havia necessidade, porque o chef executivo não fez nenhum anúncio de mudança de menu. O cliente deve ser lançado fora do restaurante e pediu para nunca mais voltar.

O pessoal da equipe de compatibilidade de aplicativo provavelmente ler isto e exclamar, "Oh como desejamos a última parte da analogia transitadas em software!" Algumas coisas simplesmente não devem ser alterados ou manipulados. Às vezes, só tens de deixar as coisas em paz.

Raymond Chen's

Raymond Chen  Web site, The Old New Thing e livro intitulado idêntico (Addison-Wesley, 2007) tratam Windows histórico, programação Win32 e negociação dos doces.

Conteúdo relacionado