Enviar a ... mi aplicación

by Valeriano Tortola 23. febrero 2008 08:06
image

Si desarrollamos una aplicación que manipule archivos puede ser útil disponer en el menu contextual "Enviar a" (SendTo) un enlace que permita enviar los archivos seleccionados directamente a nuestra aplicación trabajar con ellos. Esta es la típica cosita facilona y que lleva 5 minutos pero que resulta extremandamente útil cuando lo que desarrollamos es una herramienta de uso cotidiano.

Los elementos SendTo se encuentran en la carpeta %homepath/SendTo% de cada usuario, pero explicaré como añadirlo directamente con el instalador de nuestra aplicación.

Lo primero, es preparar nuestra aplicación WinForm para recibir una lista de argumentos al igual que puede hacer una aplicación de consola. Primero indicamos que constructor de nuestro formulario recibirá dicha lista y como trabajará con ellos, en este caso simplemente los añado a un ListView:

private String[] args;
public Form1(String[] args)
{
    InitializeComponent();
    this.args = args;
}
 
private void Form1_Shown(object sender, EventArgs e)
{
    if (this.args != null)
    {
        foreach (String s in this.args)
        {
            listView1.Items.Add(
                new ListViewItem(new String[]{Path.GetFileName(s),s}));
        }
    }
}

Y luego modificamos el punto de entrada de la aplicación para que se los pase:

[STAThread]
static void Main(String[] args)
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1(args));
}

 

UPDATE 25-02-2008: Hay un error en lo que explico a continuación, lo explico en la siguiente entrada

Para hacer que el instalador de nuestra aplicación añada un enlace en SendTo:

  1. Vamos al Setup Project.
  2. Vamos al File System Editor.
  3. Botón derecho sobre File System on Target Machine.
  4. Add Special Folder -> User's Send To Menu

Una vez dentro de esta nueva carpeta, hacemos un Create New Shortcut, y seleccionamos la salida activa de nuestro proyecto, le damos un nombre y eso será lo que aparezca en nuestro "Enviar a" (ó SendTo :P )

image

Probando... si selecciono una ristra de iconos de mi escritorio y los mando a mi aplicación....

image
 

Tags: ,

.NET 2.0 | C# 2.0 | WinApps

Comentarios

23/02/2008 9:19:38 #

trackback

Trackback from vtortola

Enviar a ... mi aplicacion

vtortola |

23/02/2008 9:21:22 #

trackback

Trackback from Pensando en asíncrono

Enviar a ... mi aplicacion

Pensando en asíncrono |

Comentarios no permitidos