Ir al contenido principal

Verificar si una aplicación ya se encuentra Abierta

Uno de los primeros inconvenientes cuando empezamos a programar en c# aplicaciones mas completas es que necesitamos que los usuarios no puedan abrir mas de una vez una aplicación que ya se encuentra abierta, para realizar este proceso existen varias formas de hacerlo, ya sea importando una de las APIS de Windows que lo verifica o crear un método para poder verificar si se esta ejecutando un proceso previo que cumple con las características de nuestro programa, esta es la forma que utilizaremos ya que el importar un API de Windows evitara que nuestra aplicación pueda funcionar en Linux o cualquier otros S.O, esto lo podemos hacer de la siguiente forma.
Primero que nada tendremos que tener creada la clase Program.cs que ya a esta altura debemos de saber que es la clase principal donde ira ubicado el método Main de nuestra aplicación, accesamos al código y creamos un método que contenga la siguiente estructura:



Este método almacenara en un arreglo información sobre los procesos que se están ejecutando,  y mas en especifico sobre nuestro proceso, para después recorrer el arreglo y verificar si nuestro proceso se encuentra en ejecución si es así nos regresara Verdadero , en caso contrario falso, lo único que nos falta es agregar el uso del método, en el método Main.


De esta forma podremos Hacer esa comprobación para nuestras aplicaciones, espero te haya sido de utilidad saludos.

Comentarios

  1. util pero te falto poner que debemos poner el using arriba de using System.Diagnostics; ya que sino, no correra para los que no lo sabian

    ResponderEliminar
    Respuestas
    1. Gracias por responder y gracias por la recomendación, un saludo.

      Eliminar
  2. gracias por la ayuda
    pero cómo puedo evitar que al correr la aplicación por segunda ocasión me aparezca el windows installer de nuevo como si fuera a ejecutar el instalador este problema también se me presenta cuándo la PC se apaga o se corta la energía mientras la aplicación se esta ejecutando

    ResponderEliminar
    Respuestas
    1. La verdad hasta el momento no he usado el Windows Installer, los instaladores para mis aplicaciones por motivo de que son aplicaciones distribuidas los hago utilizando ClickOnce necesitaría conocer primero el porque pasa eso.

      Eliminar
    2. gracias por responder, me eh fijado que solo pasa con los accesos directos del resultado principal del proyecto creados en la carpeta de escritorio por ejemplo.
      si los creo manualmente después de la instalación no sucede eso

      Eliminar
    3. // --- para comprobar si la aplicacion ya esta en ejecucion existen dos metodos:
      bool enEjecucion;
      // comprobando la cantidad de elementos del array
      enEjecucion = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1;
      // comprobando el límite superior del array
      enEjecucion = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).GetUpperBound(0) > 0;
      Visto en http://www.elguille.info/NET/dotnet/prevInstance2.htm
      Espero que sirva:
      Andrés

      Eliminar

Publicar un comentario

Entradas populares de este blog

Crear un Sistema con conexión a BD paso a paso C#

Primero que nada esta estoy en un proceso de re-estructuración del Blog, anteriormente los artículos eran vagos con poca información y poco explícitos donde solo publicaba los enlaces de descarga de los proyectos, para cambiar esto ahora empezare a publicar soluciones completas, mejor estructurado el contenido de mis artículos y aunque no prometo hacerlo muy seguido debido a que pocas veces tengo tiempo, prometo que los contenidos serán de mayor calidad y mas útiles. Para demostrar esto primero que nada publicare una de las mayores herramientas que un programador novato y con un poco de experiencia pueden tener, la conexión con una BD, en este caso SQL Server que es la que mejor se integra con Visual Studio y la Plataforma .NET, empecemos.

Llenar un DropdownList con Datos ASP.NET C#

En Asp.net llenar un Dropdownlist es un poco distinto a cuando llenamos un Combobox en una aplicación de Windows Form, aunque son muy similares un Combobox tiene distintas funciones y por lo tanto diferentes propiedades, que cambian en un control DropdownList de ASP.NET y es necesario identificar cuales son y cual es la forma correcta de llenar un DropdownList, en este ejemplo lo haremos utilizando no datos estáticos sino que aprenderemos como hacerlos con datos de una consulta en SQL, lo demás a continuación.

Chart en C# - Control para Graficos en Windows Form

El siguiente articulo es un pequeño tutorial sobre como utilizar el Control "Chart" de .NET para crear gráficos en una aplicación, en este caso una aplicación para Windows, para su funcionamiento es simple y permite ayudarnos para crear gráficos en alguna de nuestras aplicaciones donde sea necesario este tipo de implementacion, así que tendremos que crear un proyecto nuevo del tipo Windows Form donde necesitaremos principalmente los siguientes componentes: - 3 Controles Textbox para ingresar los valores al gráfico. - 2 Botones para las 2 diferentes acciones que realizaremos. - 1 Control Chart que si no lo ubican se encuentra en la sección Data de su Visual Studio o Visual C# Express.
De tal forma que el resultado sea similar al de la imagen mostrada, ahora pasaremos al código para el primer botón que se encargara de asignar los valores al control Chart.