Como obtener los tipos de archivos de Windows?

06/08/2006 - 13:00 por VicBcn | Informe spam
Hola,

Estoy hacciendo algo parecido a un explorador de archivos,y me gustaria
saber como obtener la lista de los archivos y extensiones asociadas en
Windows, es decir al hacer
Herramientas --> Opciones de Carpeta : Tipos de Archivo.

No me importaria tener que ller el registro...pero nose bien que
seccion y clave tengo que ir leyendo ya que encuentro una información
un poco "desperdigada"

Alguna idea?
Grácias!
 

Leer las respuestas

#1 Eduardo Alvarado Meza
06/08/2006 - 18:49 | Informe spam
No tengo la respuesta directa pero si buscas en el regedit, veras que en
"HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES" se encuentran todas las extensiones y
se identifican porque empiezan con un punto.

Digamos que yo eligiera el ".midi", su valor predeterminado es "mdifile",
entonces busco "midfile" que tambien se encuentra en
"HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES".
Cuando encuentro la llave "midfile", su valor predeterminado es la
descripción, y ha de tener (casi seguro) un valor predeterminado en
sheel\open\command\ que te dira con que ruta de programa abrirlo.

Entonces la idea basica es filtrar todos los que empiezen por un punto que
serian las extensiones, y luego buscarle sus programas asociados. Algo como:

Primero
Dim extensiones As win32.Registrykey =
Win32.registry.Localmachine.Opensubkey("SOFTWARE\CLASSES")

-Segundo leerla y guardarlas en un arreglo
ext() = extensiones.getsubkeynames

Tercero recorrer el arreglo y eliminar las que no empiezen con un punto
for i = 0 to ext.lenght
..
next

-Cuarto paso seria recoger leer el valor predeterminado y guardarlo en otro
arreglo, coleccion, lo que sea. Esto nos daria por ejemplo el "midfile" que
te puse de ejemplo
for i = 0 to ext.lenght
xxx(i) = Extensiones.OpenSubKey(ext(i)).GetValue("")
next

Y el ultimo paso es recorrer todo el arreglo nuevo, leer el valor
predeterminado que nos dara la descripcion de la asociacion, y leer la
subkey 'shell\open\command' para leer la ruta del programa que lo abre.

Espero te sirva, ha de haber algun ejemplo en internet, no creo que no se
encuentre, te ahorraria tiempo. Suerte

Preguntas similares