Picacodigos
« Una nueva esperanza
|
Mas Reciente
|
Hacer invisible un formulario »
No ejecutar más de una vez el mismo proceso
Published 153 weeks, 6 days ago
Wed
Jan
25
2006
Todos sabemos que, normalmente, el punto de arranque de una aplicación WinForms es la función Main(). Un pequeño truco que nos puede quitar muchos quebraderos de cabeza más adelante es
impedir activamente
que una aplicación pueda ejecutarse más de una vez. Para ello, podemos usar el siguiente código:
/// <summary>
///Punto de entrada de la aplicación
/// </summary>
[STAThread]
static void
Main()
{
if
(Process.GetProcessesByName(
Process.GetCurrentProcess().ProcessName).GetUpperBound(
0
)
==
0
)
{
Application.Run(
new
frmMain())
;
}
}
Colorized by:
CarlosAg.CodeColorizer
La clave de todo esto está en la clase
Process
. Perteneciente al espacio de nombres System.Diagnostics, una de sus utilidades es obtener el nombre del proceso actual (mediante Process.GetCurrentProcess().ProcessName, que devuelve un tipo string) y otra es la de obtener todos los procesos de un determinado nombre (Process.GetProcessesByName, que devuelve un array de objetos Process). Efectivamente, lo que hace el if() en esa línea es buscar el proceso que estamos arrancando en la lista de procesos en uso en la máquina y si
no
lo encuentra, o lo que es lo mismo el tamaño del array devuelto por GetProcessesByName es 0, arranca la aplicación.
Categorías:
Trucos
|
Comments [0]
Comments are closed.
Buscar
Estadísticas
Total Posts: 112
This Year: 0
This Month: 0
This Week: 0
Comments: 328
Comentarios Recientes
RE: Microsoft Techdays y...
by Erick Alejan...
RE: Microsoft Techdays y...
by Venkman
RE: Microsoft Techdays y...
by Jesús
RE: Microsoft Techdays y...
by espinete
RE: Microsoft Techdays y...
by Pavleras
Software
Peeker
Acerca de...
Curriculum
Resume
Suscripcion
Suscribirse por correo
Categorias
.NET
Artículos
Blog
Eventos
Gadgets
Hardware
Herramientas
Opinión
Personal
ReSharper
Trucos
Ubuntu
Web
Archivo
January, 2008 (3)
December, 2007 (7)
November, 2007 (13)
October, 2007 (6)
September, 2007 (10)
August, 2007 (1)
July, 2007 (2)
June, 2007 (4)
May, 2007 (3)
March, 2007 (3)
February, 2007 (5)
January, 2007 (5)
December, 2006 (3)
November, 2006 (5)
September, 2006 (2)
August, 2006 (4)
July, 2006 (7)
June, 2006 (3)
May, 2006 (4)
April, 2006 (5)
March, 2006 (5)
February, 2006 (4)
January, 2006 (3)
Los blogs que leo
.Avery Blog
47 hats
Coding Horror
El lado del mal
Haacked
Jon Galloway
NET slave
Rob Conery
secretGeek
The daily WTF
The old new thing
Thinking in .NET
Velocidad de Escape
Contacto
Microblogging
Login
Sign In
Herramientas
Addicted to
The best C# & VB.NET refactoring plugin for Visual Studio 2005
Powered by
newtelligence dasBlog 1.9.7174.0
Tema basado en
Dandelion
, de Tim Sherrill