Estoy llamando a un ejecutable externo y no siempre queda delante de todas las ventanas que el usuario puede llegar a tener abiertas, la llamada es la siguiente
ShellExecute( 0, "open", "ActualizaVersion.exe", "dbfarma", "", SW_SHOWNORMAL )
Muchas gracias
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Ejecutar exe externo y que quede delante de todo lo que este abierto?
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Carlos... lo mismo que me ocurría en mi post,
viewtopic.php?t=14169
que por cierto, ninguna respuesta por el foro...
Para solucionarlo, busqué una funcioncilla (creo que de Bingen) para buscar las tareas y poner a esa ventana como activa.
viewtopic.php?t=14169
que por cierto, ninguna respuesta por el foro...
Para solucionarlo, busqué una funcioncilla (creo que de Bingen) para buscar las tareas y poner a esa ventana como activa.
Código: Seleccionar todo
...
aTasks := ActiveTasks()
If (n := AScan( aTasks, {|x| x[2] = "título de la ventana a traer delante" } )) > 0
ShowWindow( aTasks[n,1], SW_MAXIMIZE )
EndIf
...
//------------------------------------------------------------------------------
#define GHW_HWNDFIRST 0
#define GHW_HWNDNEXT 2
#define GWW_HINSTANCE -6
Function ActiveTasks( nH )
Local hWnd := If( nH = Nil, GetWindow( GetActiveWindow(), GHW_HWNDFIRST ), nH )
Local nTask:=0, cTask, aTasks:={}
Local nHandle
while hWnd != 0
cTask = GetWindowText( hWnd )
If ! Empty(cTask)
* If AScan( aTasks, {|x| x[2] == cTask } ) == 0
Aadd(aTasks,{hWnd,cTask})
* EndIf
EndIf
hWnd = GetWindow( hWnd, GHW_HWNDNEXT )
end
Return aTasks
Un Saludo,
Xevi.
Xevi.
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Gracias lo probaré
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Otra manera es utilizar una de las joyitas escondidas de Windows PowerToys llamada allways_on_top
https://docs.microsoft.com/en-us/window ... ays-on-top
https://docs.microsoft.com/en-us/window ... ays-on-top
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es