Página 1 de 1
Ejecutar exe externo y que quede delante de todo lo que este abierto?
Publicado: Jue Dic 16, 2021 11:20 pm
por Carlos Ortiz
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
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Publicado: Vie Dic 17, 2021 11:18 am
por XeviCOMAS
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.
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
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Publicado: Sab Dic 18, 2021 9:10 am
por Carlos Ortiz
Gracias lo probaré
Re: Ejecutar exe externo y que quede delante de todo lo que este abierto?
Publicado: Sab Ene 08, 2022 7:53 am
por bingen
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