Associar uma chave
Esta subchave sera criada na chave HKEY_CLASSES_ROOT, que é achave que contem as extensões de todos os programas gravados no seu computador. Antes de criar esta subchave verifique se a extensão que você esta criando não esta sendo utilizada por nenhum outro programa, para fazer isso siga os passos abaixo: (Estes passos são para o sistema windows XP)
Clique no menu Iniciar, e em seguida em Executar ...,
uma caixa aparecerá digite nela o seguinte: regedit e clique no botão Ok,
Aparecerá um dialogo chamado Editor de Registro, nela estara 5 chaves:
HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG,
Clique sobre o sinal de + da chave HKEY_CLASSES_ROOT para expandi-la, procure por .irf se existir escolha outra extensão, quando você encontrar uma extensão que não esteja sendo utilizada voê poderá copiar o codigo abaixo para um botão e verificar se funciona.
Se funcionar quando você der um clique duplo sobre um arquivo com a extensão .irf (ou outra extensão que você tiver criado com essa subchave) ele deverá ser aberto pelo seu software.
A respeito de mudar o icone do arquivo eu tambem estou procurando saber, até postei uma pergunta neste forum sobre este assunto, de uma olhada no link, talvez alguem responda.
http://social.msdn.microsoft.com/Forums/pt-BR/504/thread/d91e19ad-484b-4d02-9d27-a6c158b961ab
Caso você descubra por favor me avise.
private void Button1_Click(object sender, System.EventArgs e) { try { My.Computer.Registry.ClassesRoot.CreateSubKey(".irf\\shell\\"); My.Computer.Registry.SetValue("HKEY_CLASSES_ROOT\\.irf\\shell\\", "", "digite uma breve descrição do seu projeto aqui"); My.Computer.Registry.ClassesRoot.CreateSubKey(".irf\\shell\\Command");