FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ShellExecute (abre ventana en segundo plano - ayuda)
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Sat Jul 19, 2008 04:57 PM
Hola a todos,

Estoy usando

ShellExecute(0,"open",cFile,,,1 )


Pero al abrir el documento word, me deja la ventana de word aierta en segundo plano, es decir, detras del programa.

Curiosamente, si abro un .txt (invoca al bloc de notas de windows) y este, sí que me lo muestra en primer plano. Pero cuando se trata de un documento word o excel, éste queda detras.

¿hay alguna forma de hacer que muestre el documento delante de la pantalla del programa?
Javier,

FWH 8.04 2008
Posts: 476
Joined: Sat Feb 03, 2007 06:36 AM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Sun Jul 20, 2008 04:21 PM
Favi, prueba haciendolo de esta forma:

Local oWS
oWS = Createobject("WScript.Shell")
oWS:Run(cFile,0,"False" )


Saludos.

Carlos.
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Mon Jul 21, 2008 09:37 AM

Hola Carlos,

Parece que tu método, solo funciona bien cuando se trata de Word.
En el caso de Excell, me genera un error y en el caso del bloc de notas, no lo invoca.

No se cual puede ser la causa. ¿tal vez alguno de los parametros que se usan en el metodo oWS:Run( ... ), aunque ignoro para qué sirven.

:(

Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Mon Jul 21, 2008 11:01 AM

Javier,

Una vez lo abras con ShellExecute(), tendrias que encontrar el handle
de la ventana con FindWindow() y teniendo el handle probar con varias
opciones como SetFocus(), BringWindowToTop(), ó SetForegroundWindow()

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Mon Jul 21, 2008 11:28 AM
Gracias Antonio,

Parece que la solución ha funcionado de la siguiente forma:

ShellExecute(0,"open",cFile,0,0,9 )
SetForeGroundWindow( FindWindow() )
Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Mon Jul 21, 2008 11:50 AM

Javier,

No le has pasado ningún parámetro a FindWindow() ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Tue Jul 22, 2008 10:59 AM

Pues no,

Entonces ha funcionado de chiripa!

¿puedes facilitarme algún ejemplo?
¿como se cual es el handle de la ventana que se abre con shellexecute?

Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Tue Jul 22, 2008 11:53 AM

Javier,

Puedes localizar el handle de la ventana asi:

hWnd := FindWindow( 0, "Titulo_de_la_ventana" )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
ShellExecute (abre ventana en segundo plano - ayuda)
Posted: Tue Jul 22, 2008 11:59 AM

Gracias Antonio,

;-)

Javier,

FWH 8.04 2008

Continue the discussion