FoxPro/Visual FoxPro - handle de la ventana

 
Vista:

handle de la ventana

Publicado por Iñaki (47 intervenciones) el 20/03/2007 12:02:08
Hola a todos!

Tengo una aplicación desde donde abro distintos ejecutables, puedo abrir mas de una vez el mismo ejecutable, como puedo saber en handle de la aplicación que he abierto.

No puedo usar el findwindow , porque tengo el ejecutable abierto mas de una vez y son de la misma clase y tienen el mismo nombre.

Para cada una ventan abierta voy a crear un botón en el formulario principal para ponerlos visible o invisibles y si tengo abiertas varias ventanas con esa aplicación, siempre me abre el primero.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:handle de la ventana

Publicado por jesus cordero (405 intervenciones) el 20/03/2007 17:01:12
DECLARE long FindWindow IN WIN32API ;
STRING cClassName, ;
STRING cWindName

Handle = findwindow(0,_Screen.caption)

este ejemplo obtiene el handle de _screen
asi, que solo tendrias que reemplazar la cadena
por el caption del formulario que quieras conocer su handle.

digamos:

Handle = findwindow(0, "´Calculadora")
si la ventana "Calculadora" Existe, nos daria el handle del mismo.
de lo contrario devolvera 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Esta tambien

Publicado por jesus cordero (405 intervenciones) el 20/03/2007 17:10:46
**** PROGRAMA PRINCIPAL
****
**** VERIFICA APLICACION SI ESTA ACTIVA
****
IF F_ActivaWin("APLICACION")
quit
ENDIF
****
*
* CONTINUACION DEL PROGRAMA PRINCIPAL
*
*

*FIN DEL PROGRAMA PRINCIPAL

****
****************************************************************************
* Función que verifica ejecución del sistema *
****************************************************************************
****
*-----------------------------
FUNCTION F_ActivaWin(cCaption)
*-----------------------------
****
DECLARE INTEGER FindWindow IN Win32API STRING lpClassName, STRING lpWindowName
DECLARE INTEGER BringWindowToTop IN Win32API INTEGER hwnd
DECLARE INTEGER SendMessage IN Win32API INTEGER hwnd, INTEGER Msg, INTEGER WParam, INTEGER LParam
#DEFINE WM_SYSCOMMAND 274
#DEFINE SC_MAXIMIZE 61488
****
lnHwnd = FindWindow(0, cCaption)
****
IF lnHwnd > 0
BringWindowToTop(lnHwnd) && Mandar la ventana de la aplicación al frente
SendMessage(lnHwnd, WM_SYSCOMMAND, SC_MAXIMIZE ,0) && Maximizar la ventana de la aplicación
RETURN .T.
ELSE
RETURN .F.
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar