José
Estuve probando el ejemplo de Navarro y funciona perfectamente (usando una vieja clase que tenia por ahi suelta, supongo que es la misma) tanto en windows 7 como en 10.
Es más, lo he modificado asi:
Code: Select all
FUNCTION prueba
local oWnd, nPos
WINEXEC( "notepad.exe" )
oWnd := TWCapture():New( "Sin título: Bloc de notas")
oWnd:SetSize( 700, 200 )
for nPos := 1 to 10
SetWindowPos( oWnd:hWnd, 0, 10*nPos, 10*nPos, 711, 211, 4 )
syswait(1)
next
RETURN NIL
//----------------------------------------------------------------------------//
CLASS TWCapture FROM TWindow
DATA lCaptured
METHOD New( cTitle ) CONSTRUCTOR
METHOD WCapture( cTitle )
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( cTitle ) CLASS TWCapture
if( ValType( cTitle ) == "C", ::WCapture( cTitle ), ::lCaptured := .f. )
return( Self )
//----------------------------------------------------------------------------//
METHOD WCapture( cTitle ) CLASS TWCapture
local hWnd := FindWindow( 0, cTitle )
::lCaptured := ( hWnd > 0 )
::hWnd := if( ::lCaptured, hWnd, 0 )
return( ::lCaptured )
//----------------------------------------------------------------------------//
Y se va moviendo de posición como debe ser.
Con respecto al segundo parametro, te paso una ayuda:
Identifica la ventana que precede a la ventana posicionada en el orden Z. Este parámetro debe ser un identificador de ventana o uno de los siguientes valores:
HWND_BOTTOM
Coloca la ventana en la parte inferior del orden Z. Si el parámetro hWnd identifica una ventana superior, la ventana pierde su estado más alto y se coloca en la parte inferior de todas las demás ventanas.
HWND_NOTOPMOST
Coloca la ventana sobre todas las ventanas que no están en la parte superior (es decir, detrás de todas las ventanas superiores). Esta bandera no tiene efecto si la ventana ya es una ventana no superior.
HWND_TOP
Coloca la ventana en la parte superior del orden Z.
HWND_TOPMOST
Coloca la ventana sobre todas las ventanas que no están en la parte superior. La ventana mantiene su posición más alta incluso cuando está desactivada