Abrir solo dos instancias de mi programa

Iniciado por Gorky, 26 Marzo 2006, 15:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Gorky

Buenas a todos. Si nosotros queremos que al ejecutar nuestro programa se nos abra otra vez podemos poner en el FormLoadShell(app.path & "\" & app.exename & ".exe")
Sin embargo al abrirse nuevamente volveria a abrir otra instancia de si mismo y asi hasta tener el mismo programa infinitas veces en ejecucion.
Pero yo lo que quiero es tener solo dos ejecuciones del mismo, una la que yo ejecuto manualmente y otra la que se ha abierto despues. Espero me puedan ayudar con esto.

Robokop

#1
Y si no lo pones en el formload y lo pones en un command o condicionas un evento para que se ejecute otra vz

NYlOn

Podes usar la API FindWindow y si se encuentran 2 ventanas con el titulo de tu form que no se ejecute nuevamente el programa.

Saludos.-

Gorky

Cita de: ®ØßÖkÖÞ en 26 Marzo 2006, 19:32 PM
Y si no lo pones en el formload y lo pones en un command o condicionas un evento para que se ejecute otra vz

He de ponerlo en el FormLoad y no en un boton ya que necesito que su ejecucion sea transparente para el usuario y que no necesite de la intervencion del mismo.
Es obvio que necesito una condicion pero no se cual.

Cita de: NYlOn en 26 Marzo 2006, 19:38 PM
Podes usar la API FindWindow y si se encuentran 2 ventanas con el titulo de tu form que no se ejecute nuevamente el programa.

Esta podria ser una buena condicion pero creo que para mi programa no serviria ya que sus ventanas estarian ocultas. Es mas, no tienen ni ventanas, solo modulos.

Alguna otra sugerencia mas?

LeandroA

busca en los procesos si encontras mas de dos pues end

LaN

el metodo que yo utilizaria seguro q es el peor pero yo escribiria en un archivo.txt las veces q esta abierto y si es >= 2 pues end x'D

Gorky

Cita de: LaN en 27 Marzo 2006, 15:58 PM
el metodo que yo utilizaria seguro q es el peor pero yo escribiria en un archivo.txt las veces q esta abierto y si es >= 2 pues end x'D

Eso mismo lo habia pensado pero en su version mas... profesional. ;) Y seria escribiendo en el registro cuando el primero abre, y cuando el segundo lo lea que no abra y borre lo escrito.

LaN


LeandroA

hola estamos ablando de dos corriendo, no tres ni uno, ni mas si decimos una entonese utilizamos el app.instanse, pero ablamos de dos para que no se abra un tercero no???
y con lo que decian del archivo de texto o el registro, esto traeria una complicacion que si el programa se cuelga y hay que cerrarlo forzado pues seguramente el archvio o el registro quedaria incompleto (firgurarian dos mientras que posiblemnete aya uno o ninguno)
entonces lo recomendable es contar en los procesos cuantas veces figura el exe

Gorky

Ahi esta, con dos cojones, defendiendo tu idea!!! ;D
Bromas a parte, llevas razon. En este mismo instante no se como leer los procesos en ejecucion pero se que se puede hacer y se donde buscar. Otra cosa: crees que podre seguir esa idea si uso taskbar.hide = false?