• Viernes 19 de Abril de 2024, 15:23

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - tincho87

Páginas: [1]
1
C# / Re: Iniciar una aplicacion por unica vez
« en: Viernes 20 de Noviembre de 2009, 02:46 »
lo que podes hacer es lo siguiente:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace NCSoft_Apply_Update
{
static class Program
{
/// <summary>
/// Punto de entrada principal para la aplicación.
/// </summary>
[STAThread]

    static void Main()
       {
//Compruebo que la aplicación no se este ejecutando.
        if(ExistePrograma())
        {
            Application.Exit();
            return;
        }

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new main());
    }

    public static bool ExistePrograma()
    {
        bool t;

        System.Threading.Mutex m = new System.Threading.Mutex(true, "NombreSemaforo", out t);

        return !t;
    }

}
}


saludos

2
C# / Re: Iniciar una aplicacion por unica vez
« en: Jueves 19 de Noviembre de 2009, 19:59 »
Claro, la idea de la funcion es detectar lo antes posible que la aplicación ya se encuentra en ejecución.

Saludos

3
C# / Re: Iniciar una aplicacion por unica vez
« en: Jueves 19 de Noviembre de 2009, 18:32 »
Es una funcion estatica, entonces la podes llamar desde cualquier lado. Yo la tengo implementada en una clase estatica(tiene todas funciones estaticas que las invoco sin tener que crear una instancia de la clase) y la llamo cuando hago el Load del form principal, entonces si el programa ya está ejecutandose, lo cierro.

Saludos

4
C# / Re: Iniciar una aplicacion por unica vez
« en: Jueves 19 de Noviembre de 2009, 15:20 »
Hola, a mi me paso lo mismo y lo resolvi de la siguiente forma:

Implementé un semaforo a nivel del sistema, que lo crea por primera vez la aplicación y verifica que no esté creado. En caso de estar creado, quiere decir que la aplicación ya se encuentra corriendo. Con esto evitas por ejemplo que le cambien el nombre a la aplicacion(pepe.exe a pepito.exe) y lo ejecuten.

Citar
       
        public static bool ExistePrograma()
        {
            bool t;

            System.Threading.Mutex m = new System.Threading.Mutex(true, "NombreSemaforo", out t);

            return !t;
        }

Espero haberte ayudado.
Saludos

5
C# / No encuentra dll al cambiar el path
« en: Jueves 19 de Noviembre de 2009, 15:16 »
Hola gente, estoy teniendo este problema y no encuentro solucion :brickwall: . El problema es el siguiente:

Tengo armado un sistema de plugins. Cada plugin tiene como "referencia" una dll con funciones que desarrolle.
En base a esto, estoy desarrollando una aplicación que por medio de reflection "lee" lo que tiene el plugin(le indico un path y busca los plugins que tengan implementada cierta "interfaz") y dependiendo de la situacion ejecuta un metodo que contiene el plugin. Hasta aca funciona todo perfecto.
Cuando la aplicacion que "lee" los plugins se encuentra en el mismo directorio que el plugin funciona bien, pero cuando muevo la aplicacion (dejando el plugin con la dll a la que hace referencia, es decir, la que tiene otras funciones, en el mismo directorio) al querer invocar el metodo del plugin (este hace referencia a una funcion de la dll de funciones) me tira una excepcion diciendo que no encuentra esa dll de funciones.

Por si no me explique bien:
Caso en el que funciona bien:
C:aplicacion.exe
C:plugin.dll
C:funciones.dll

Caso en el que no funciona:
[C:otra carpetaaplicacion.exe]
C:plugin.dll
C:funciones.dll

Desde ya el que me pueda dar una mano voy a estar muy agradecido.

Saludos

Páginas: [1]