Page 1 of 1

Saber cuantas veces se encuentra ejecutando un programa

PostPosted: Tue Feb 10, 2009 6:55 pm
by miarcod
Hola no se si es posible saber cuantas veces se está ejecutando el programa:

La idea es poder guardar las coordenadas de la ventana al salir para restaurarlas al entrar, pero el programa se puede ejecutar varias veces con lo que la primera vez que se ejecute se restauraría en la posición en la que estaba la primera vez que se ejecutó, si se ejecuta una segunda vez aparecería la ventana en la segunda posición (que sería la almacenada cuando se cerro la ventana) y así sucesivamente.

Esto lo guardaría en un fichero en el que guardaría la posición de la ventana según el momento en que se abriera o cerrara, primera, segunda, etc.

Un saludo y gracias.

Re: Saber cuantas veces se encuentra ejecutando un programa

PostPosted: Tue Feb 10, 2009 7:23 pm
by JmGarcia
Esta parte de código te da las ventanas que hay en el escritorio (el array aNombres):

Code: Select all  Expand view
#define GW_CHILD    5
#define GW_HWNDNEXT 2
#define GW_OWNER    4

function main()

local hWnd:=GETWINDOW(GETDESKTOPWINDOW(),GW_CHILD)
WHILE hWnd != 0
   cTitle:=alltrim(GETWINDOWTEXT(hWnd))
   if cTitle<>""
      if IsWindowVisible(hWnd) .and. GETWINDOW(hWnd,GW_OWNER)==0 .and. cTitle<>"Program Manager"
         aadd(aNombres,cTitle)
      endif
   endif
   hWnd:=GETWINDOW(hWnd,GW_HWNDNEXT)
ENDDO

MsgList(aNombres)

return nil

Re: Saber cuantas veces se encuentra ejecutando un programa

PostPosted: Tue Feb 10, 2009 8:40 pm
by Antonio Linares
Con FindWindow( 0, cTituloVentanaPrincipal ) --> hWnd puedes localizar si la aplicación ya está en uso.

Si devuelve cero es que no se encuentra.