Sítio do Piropo

B. Piropo

< Trilha Zero >
Volte de onde veio
06/11/2000

< Associações >


Sabemos que diferentes programas criam arquivos de tipos diferentes e sabemos ainda que para diferenciar os tipos usam-se extensões. Esta prática data dos imemoriais tempos do DOS mas tornou-se especialmente importante após a introdução de Windows, que é “orientado para documentos”. Parece complicado? Que nada: no DOS, que é “orientado para programas”, você precisa carregar o programa para, de dentro dele, “chamar” os documentos, ou arquivos. Já no Windows basta executar um duplo clique sobre o ícone do documento para exibi-lo no interior do programa, ou seja, é possível fazer o arquivo “chamar” o programa – uma filosofia radicalmente oposta que recebeu o nome de “orientação para documentos”. Mas como Windows sabe que programa carregar para abrir este ou aquele arquivo?

A resposta é óbvia: pela extensão. O que, embora verdadeiro, não é tão simples quanto parece. Porque há arquivos que podem ser abertos por mais de um programa (os mais comuns são os de extensão Doc, que podem ser abertos tanto pelo Word quanto pelo WordPad além de outros editores de texto, e os Gif, Jpg e outros formatos gráficos, que podem ser abertos por praticamente qualquer programa gráfico). Qual deles Windows irá escolher?

Bem, quando você executa um clique duplo sobre um ícone de um arquivo com o intuito de abri-lo, Windows lê sua extensão e consulta um banco de dados interno. Esse banco de dados faz parte do Registro, um imenso repositório de informações sobre configurações e programas mantido por Windows (se quiser saber mais sobre ele, leia a série de colunas iniciada em 31/03/97, disponível na seção Escritos / Trilha Zero de minha página pessoal em <www.bpiropo.com.br> que, apesar de abordar o registro de Windows 95, continua atual, já que o Registro não mudou significativamente desde então). No Registro, cada  extensão é associada ao programa que Windows usará para abrir o arquivo correspondente. É claro que o usuário não fica impedido de abrir o arquivo com outro programa: basta carregar o dito programa, acionar a opção “Abrir” de seu menu “Arquivo” e selecionar o arquivo desejado (ou usar técnicas alternativas, como arrastar o ícone do documento para cima do ícone do programa), pois a associação existente no Registro indica apenas o programa a que Windows dará preferência quando solicitado a abrir o arquivo.

Como essas associações são criadas? Bem, parte delas é incluída no Registro durante a instalação de Windows, que associa certos tipos de extensões aos programas que são fornecidos com o sistema operacional. Assim, a extensão Doc é inicialmente associada ao WordPad, a extensão Txt ao Bloco de Notas e a extensão Bmp ao Paint (breve veremos como verificar que extensões estão associadas a que programas e, o que é mais importante, como alterar as associações).

As demais associações, ligando os programas posteriormente instalados a seus arquivos, vão sendo criadas paulatinamente durante o procedimento de instalação desses programas. Quando você instalar, digamos, o Office, além de criar as associações entre todos os programas do pacote e seus arquivos, ele modificará algumas existentes (por exemplo: fará com que a extensão Doc, previamente associada ao WordPad, passe a ser associada ao Word). Este processo não tem fim: a cada novo programa instalado, o Registro é alterado com a criação ou modificação de algumas associações.

Em tese, tudo funciona muito bem. Os problemas surgem na medida que programas começam a entrar e sair do disco rígido. Porque, embora nunca deixem de criar as associações entre eles mesmos e as extensões que aceitam, não conheço programa que, ao ser removido, inclua no procedimento de desinstalação o singelo ato de refazer as associações anteriores que porventura tenha modificado. Resultado: algumas extensões ficam órfãs, sem programa associado. Quando se executa um duplo clique sobre o ícone de um desses arquivos, Windows perscruta o Registro e, não encontrando associação, exibe a caixa “Abrir com”, apresentando a lista de todos os programas instalados na máquina e solicitando que o usuário escolha o que deseja usar para abrir o arquivo (como é óbvio, o mesmo ocorre quando se tenta abrir um arquivo de um programa que não está nem jamais esteve instalado na máquina e cuja extensão é, portanto, desconhecida).

Diante da caixa “Abrir com”, que programa escolher? E, mais importante: como criar uma associação entre ele e a extensão agora órfã, para tornar a abertura automática?

Bem, esse é justamente o assunto da semana que vem.

B. Piropo