18 de agosto de 2004

Saber si una aplicación ya está activa (2)

Una manera más para saber si una aplicación ya está activa, esto para evitar cargar dos veces la misma.

Cortesía del MVP turco: Çetin Basöz
*** En el PRG inicial de tu aplicación***
If AppAlreadyRunning()
  Messagebox('Another instance is already running.')
...

Function AppAlreadyRunning
Local hsem, lpszSemName
#Define ERROR_ALREADY_EXISTS 183
Declare Integer GetLastError In win32API
Declare Integer CreateSemaphore In WIN32API ;
 string @ lpSemaphoreAttributes, ;
 LONG lInitialCount, ;
 LONG lMaximumCount, ;
 string @ lpName
lpszSemName = "CadenaUnicadetuAplicacion"
hsem = CreateSemaphore(0,0,1,lpszSemName)
Return (hsem # 0 And GetLastError() == ERROR_ALREADY_EXISTS)
PS:FindWindow() works with ClassNames too.

Çetin Basöz
MS Foxpro MVP, MCP
Welcome to FoxyClasses

No hay comentarios. :

Publicar un comentario