Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/07/2012, 17:05
Avatar de Dradi7
Dradi7
 
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 6 meses
Puntos: 220
Respuesta: Abrir archivo en programa abierto

Para esto debes realizar una SingleInstanceApplication

Ejemplo de como debes hacerlo

Con este código no importa si tienes abierto tu programa solamente estará permitido una sola instancia de tu aplicación y podrás recibir los parámetros como lo deseas

Código C#:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Forms;
  5. using System.Threading;
  6. using Microsoft.VisualBasic.ApplicationServices;
  7.  
  8. namespace Demo
  9. {
  10.     static class Program
  11.     {
  12.         /// <summary>
  13.         /// Punto de entrada principal para la aplicación.
  14.         /// </summary>
  15.         [STAThread]
  16.         static void Main(string[] args)
  17.         {
  18.             Application.EnableVisualStyles();
  19.             Application.SetCompatibleTextRenderingDefault(false);
  20.             SingleInstanceApplication.Run(new Form1(), StartupNextInstanceEventHandler); // Aqui pones tu formulario
  21.         }
  22.  
  23.         public static void StartupNextInstanceEventHandler(object sender, StartupNextInstanceEventArgs e)
  24.         {
  25.             if (e.CommandLine.Count > 0)
  26.             {
  27.                 MessageBox.Show(e.CommandLine[1]); //No se pone indice 0 ya que corresponde al nombre de la aplicacion, a partir del 1 comienza los parametros
  28.                // Aca haces lo que quieras al tomar la ruta de tu archivo
  29.             }
  30.         }
  31.     }
  32.  
  33.     public class SingleInstanceApplication : WindowsFormsApplicationBase
  34.     {
  35.         private SingleInstanceApplication()
  36.         {
  37.             base.IsSingleInstance = true;
  38.         }
  39.  
  40.         public static void Run(Form f, StartupNextInstanceEventHandler startupHandler)
  41.         {
  42.             SingleInstanceApplication app = new SingleInstanceApplication();
  43.             app.MainForm = f;
  44.             app.StartupNextInstance += startupHandler;
  45.             app.Run(Environment.GetCommandLineArgs());
  46.         }
  47.     }
  48. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones