No ejecutar más de una vez el programa

12 views
Skip to first unread message

avazq...@gmail.com

unread,
Jan 25, 2026, 5:45:06 AM (6 days ago) Jan 25
to oo...@googlegroups.com, ado-h...@googlegroups.com

Buenas

Alguien me puede ayudar?
No quiero que se pueda ejecutar dos veces al mismo tiempo la aplicación.

Estoy dando vueltas, pero no lo consigo.

Alguna idea/ayuda?
gracias

Saludos.

Antonio Vázquez

 

Sergio Castellari

unread,
Jan 25, 2026, 8:30:47 AM (6 days ago) Jan 25
to ado-h...@googlegroups.com, avazq...@gmail.com, oo...@googlegroups.com

Hola Antonio,

Yo utilizo esta sentencia al inicio del programa:

Set Multiple Off Warning

Con esto no puedes ejecutar dos veces el mismo EXE.

Saludos,

Sergio Castellari

--
Has recibido este mensaje porque estás suscrito al grupo "ADO Harbour" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ado-harbour...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/ado-harbour/004701dc8de7%24a8f96270%24faec2750%24%40gmail.com.

Libre de virus.www.avg.com

Antonio Vázquez

unread,
Jan 25, 2026, 8:45:35 AM (6 days ago) Jan 25
to Sergio Castellari, ado-h...@googlegroups.com, oo...@googlegroups.com
Sergio, gracias por responder 
Lo he aplicado y si me deja ejecutar varias veces la aplicación.

Enviado desde Outlook para Android

From: Sergio Castellari <serc...@gmail.com>
Sent: Sunday, January 25, 2026 2:30:41 PM
To: ado-h...@googlegroups.com <ado-h...@googlegroups.com>; avazq...@gmail.com <avazq...@gmail.com>; oo...@googlegroups.com <oo...@googlegroups.com>
Subject: Re: [ADO Harbour] No ejecutar más de una vez el programa
 

Paola Bruccoleri

unread,
Jan 25, 2026, 9:38:23 AM (6 days ago) Jan 25
to oohg
Hola Anto, cómo estás??


Yo uso esto al inicio del programa, una de las formas que hace mucho alguien compartió en el grupo.

//---- PREVENIR QUE HAYA MAS DE UNA INSTANCIA DEL PROGRAMA EN EJECUCION ------
cProgName:= ''
cProgExt:= ''
hb_FNameSplit( hb_progname(), NIL, @cProgName, @cProgExt )
pMutex := wapi_CreateMutex(NIL, NIL, cProgName + cProgExt )

IF wapi_GetLastError() == 183
   Alert( "El programa ya esta siendo ejecutado!" )
   ExitProcess(0)
ENDIF




De: "avazquezc62" <avazq...@gmail.com>
Para: "oohg" <oo...@googlegroups.com>, ado-h...@googlegroups.com
Enviados: Domingo, 25 de Enero 2026 7:45:01
Asunto: [oohg] No ejecutar más de una vez el programa

--
Has recibido este mensaje porque estás suscrito al grupo "[oohg]" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a oohg+uns...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/oohg/004701dc8de7%24a8f96270%24faec2750%24%40gmail.com.

Sergio Castellari

unread,
Jan 25, 2026, 11:33:42 AM (6 days ago) Jan 25
to Antonio Vázquez, ado-h...@googlegroups.com, oo...@googlegroups.com

acabo de probar "comentando" ESA linea, y ahi SI me permite multiples ejecuciones...

Aclaro mi entorno:

ooHG + QPM (Todo establecido como defecto)....en el caso de QPM lo tengo configurado asi para compilar

Fernando Yurisich

unread,
Jan 25, 2026, 1:55:39 PM (5 days ago) Jan 25
to oo...@googlegroups.com, Sergio Castellari, ado-h...@googlegroups.com
Antonio:

A mi me funciona correctamente.
Prueba este ejemplo:

Saludos
Fernando
---
OOHG project is located at https://github.com/oohg and QPM project is located at https://github.com/teamQPM
If you value my work to support this project, please consider supporting me with a donation via Amazon Gift Card.

Has recibido este mensaje porque estás suscrito al grupo "[oohg]" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a oohg+uns...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/oohg/AS1P192MB1590122FD0D43F1E5439193FAB92A%40AS1P192MB1590.EURP192.PROD.OUTLOOK.COM.

David Field

unread,
Jan 26, 2026, 3:19:58 PM (4 days ago) Jan 26
to [oohg]
Esta es mi versión:

hb_FNameSplit( hb_progname(), @cPath, @cProgName, @cProgExt )
If IsExeRunning( cProgName+cProgExt )
If (hWnd := FindWindow(cProgName)) <> 0     // encontrar hWnd
If ISWINDOWMINIMIZED( hWnd )              // Si está minimizado
Restore( hWnd )                        // Restaurar
ELSE
SetForeGroundWindow( hWnd )            // Traer al frente
Endif
ExitProcess( 1 )
Else
hb_Run("taskkill /IM "+cProgName+".exe") // matar executable y continuar
Endif
Endif

Saludos,
David Field
Reply all
Reply to author
Forward
0 new messages