RSS

Asociar extensiones de archivo a nuestra aplicación

24 Abr

En Windows Mobile al igual que en Windows podemos asociar una extensión de archivo para que se ejecute una aplicación determinada. Podemos asociar los archivos con una extensión (por ejemplo .rxr) para que sean abiertos con una aplicación desarrollada por nosotros.

En Windows Mobile esto lo podemos hacer modificando el registro.

AsociarArchivos

Las claves a generar se encuentran dentro de HKEY_CLASSES_ROOT.

Lo primero será crear una clave con el nombre de nuestra extensión (por ejemplo .rxr) en el valor por defecto especificamos la asociación (por ejemplo rxrfile).

Después crearemos una nueva clave en HKEY_CLASSES_ROOT con el nombre de la asociación (rxtfile), dentro de esta creemos la estructura HKEY_CLASSES_ROOT\rxrfile\Opend\Command y modificaremos el valor por defecto de Command por la ruta al ejecutable (en nuestro ejemplo nuestra propia aplicación) y lo haremos de modo que pueda recoger un parámetro (esto lo hacemos agregando %1), este parámetro se inicializara con la ruta del archivo que se esté ejecutando.

Si deseamos asociar el icono de nuestra aplicación a la extensión asociada podemos agregar la clave HKEY_CLASSES_ROOT\rxrfile\DefaultIcon y establecer el valor con la ruta del ejecutable y agregar ,0 al final.

Aquí os dejo un ejemplo de como podemos hacer todo esto.

/// <summary>
/// Asociar una extensi¢n de archivo a una aplicación
/// </summary>
/// <param name="extension">Extensión a asociar</param>
/// <param name="aplicacion">Aplicación a ejecutar</param>
private void AsociarArchivo(string extension, string aplicacion)
{
  //Creamos la key en HKEY_CLASSES_ROOT
  RegistryKey key1declaracion = Registry.ClassesRoot.CreateSubKey("." + extension);

  key1declaracion.SetValue("Default", extension + "file");

  //Creamos las siguientes claves en
//HKEY_CLASSES_ROOT\xxxfile\Shell\Open\Command
RegistryKey key2asociacion = Registry.ClassesRoot.CreateSubKey(@"\" + extension + "file" + @"\Shell\Open\Command");

// Establecemos el valor por defecto a la ruta al ejecutable a asociar,
// %1 ser  el parametro con el que se iniciar  la aplicación y
// equivaldr  al path del archivo.
key2asociacion.SetValue("Default",@"""" + aplicacion + @""" ""%1""");

//Asociamos el icono de nuestro ejecutable a la extensi¢n asociada
RegistryKey key3Icono = Registry.ClassesRoot.CreateSubKey(@"\" + extension + "file" + @"\DefaultIcon");
key3Icono.SetValue("Default", @"""" + aplicacion + @"""" + "0");
}

 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

AsociarArchivos2

Anuncios
 
Deja un comentario

Publicado por en 24 abril, 2009 en Desarrollo, Trucos

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: