• Viernes 26 de Abril de 2024, 22:01

Autor Tema:  Re: Solo Abrir Una Vez La Aplicacion  (Leído 2878 veces)

patolinpcn

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Solo Abrir Una Vez La Aplicacion
« en: Martes 11 de Abril de 2006, 21:57 »
0
Necesito saber por favor como controlar que una aplicación en power no pueda ser habierta más de una vez .gracias.

pierpiter

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Solo Abrir Una Vez La Aplicacion
« Respuesta #1 en: Miércoles 12 de Abril de 2006, 15:54 »
0
Mirá, encontre esto. Usa las api de windows, lo que hace es chequear si una aplicación esta ejecutandose, si es así, la detiene. Quizás esto se pueda adapatar a lo que vos querés, poniendo esto en el script inicial, si detecta que la aplicación esta ejecutandose que no la ejecute, sino, que arranque normalmente.

Código: Text
  1. Por Sameer N Phatak -- sameerp@meghdoot.mastek.com
  2. este truco chequea si una aplicación esta en ejecución, y si lo está la detiene.
  3. Primero se chequea si la aplicación está en ejecución usando la llmada API FindWindowA(). Entonces, si la ventana está en ejeución y el usuario quiere detenerla se usa la llamada API PostMessageA() que muestra la ventana de mensaje WM_QUIT para detener la aplicación.
  4. - Declaraciones de funciones externas:
  5. FUNCTION ULong FindWindowA(ULong classname, String windowname) LIBRARY "user32.dll"
  6. FUNCTION boolean PostMessageA(ulong hwndle,UINT wmsg,ulong wParam,ulong lParam) Library "User32.dll"
  7. - Power Script
  8. Ulong lul_handle, lul_class
  9. String ls_name
  10. // El valor hexadecimal de wm_quit es 0x0012. Convertido a valor decimal es 18.
  11. UInt lui_quit = 18
  12. // Pone la Clase a NULL. Esto no es obligatorio, puedes pasarle 0 también a la función FindWindowA().
  13. SetNull(lul_class)
  14. // Este es el código de la ventana. Por ejemplo la calculadora de Windows
  15. ls_name = "Calculator"
  16. // Usa la llamada API para obtener el puntero de la ventana si la aplicación está en ejecución.
  17. lul_handle = FindWindowA(lul_class, ls_name)
  18. IF lul_handle > 0 THEN // Si se encuentra el puntero de la ventana se muestra el mensaje wm_quit
  19. PostMessageA(lul_handle, lui_quit, 0, 0);
  20. return
  21. Else
  22. MessageBox("Aviso", "La aplicación no está en ejecución. !")
  23. END IF
  24.  

Espero te sirva, no lo probé.

:P

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Solo Abrir Una Vez La Aplicacion
« Respuesta #2 en: Miércoles 12 de Abril de 2006, 17:47 »
0
hace como hacen algunas aplicaciones en linux.
cuando ejecutas la aplicacion crea un archivo vacio que se llame por ejemplo miAplicacion.lock en la carpeta de la aplicacion o en temp.
cuando se abre la aplicacion se fija si ese archivo existe, si existe no se ejecuta.
cuando se cierra el programa que se esta ejecutando borra el archivo.

pierpiter

  • Miembro activo
  • **
  • Mensajes: 58
    • Ver Perfil
Re: Solo Abrir Una Vez La Aplicacion
« Respuesta #3 en: Miércoles 12 de Abril de 2006, 18:49 »
0
Cita de: "bob esponja"
hace como hacen algunas aplicaciones en linux.
cuando ejecutas la aplicacion crea un archivo vacio que se llame por ejemplo miAplicacion.lock en la carpeta de la aplicacion o en temp.
cuando se abre la aplicacion se fija si ese archivo existe, si existe no se ejecuta.
cuando se cierra el programa que se esta ejecutando borra el archivo.

No es mala idea, pero el problema se puede dar cuando tu aplicación se cierre mal (ya sea por un fallo o por un corte de luz). Al no cerrar normalmente, no se ejecutaría el script para borrar el archivo y te quedaría y ya no podrías ejecutar de nuevo la aplicación.

:P

leoandres

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Solo Abrir Una Vez La Aplicacion
« Respuesta #4 en: Miércoles 26 de Abril de 2006, 01:00 »
0
Cita de: "patolinpcn"
Necesito saber por favor como controlar que una aplicación en power no pueda ser habierta más de una vez .gracias.
En esta dirección hay muchos tips de PB. te dirijo a lo que estas buscando.
http://www.pbdr.com/pbtips/ap/onlyonce.htm


Que lo disfrutes.

Leopoldo Taylhardat

Maracay, Venezuela.
leopoldotaylhardat@hotmail.com

Leopoldo Taylhardat

Software, Organización y Sistemas

Maracay, Venezuela


"En computación solo hay una cosa segura...
   que no hay nada seguro" - Leopoldo Taylhardat

"Cada alternativa que tengas durante la búsqueda,
      será una meta en sí misma" - Jorge Olguín.