Page 1 of 1
Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 04 Jan 2018, 15:55
by sebaramos
Hola Estimados,
Por tercera vez recurro a su sabiduría en este lenguaje que me ha hecho la vida bastante mas fácil.....
Mi consulta es: Estoy trabajando con dos programas; QlikView y Excel, donde necesito copiar información desde Excel a QlikView, por lo que me gustaría saber como traer al frente (Como ventana activa) a cualquiera de estos programas cunado lo necesite y así poder interactuar con ambos. Desde ya se los agradezco!
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 04 Jan 2018, 16:15
by A_AhkUser
Hola
sebaramos,
Prueba este ejemplo con la bloca de notas y paint:
Code: Select all
run, notepad,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
run, mspaint,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
return
!s::GroupActivate, miGrupoDeVentanas ; <<<< para interactuar con ambos
!w::WinRestore, ahk_group miGrupoDeVentanas
!y::WinMinimize, ahk_group miGrupoDeVentanas
!x::WinClose, ahk_group miGrupoDeVentanas
Saludos!
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 05 Jan 2018, 12:29
by sebaramos
Hola Estimado,
Me corre muy bien el ejemplo pero cuando lo adapto a mis programas solo se cargan estos mismos pero nada mas....
Esto es lo que estoy haciendo...
Code: Select all
#p::
run, C:\Users\kibernum.sramos\Desktop\Aes\Reportes\Semanal\Importar datos web8.xlsm,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
run, C:\Program Files\Qlikview\Qv,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
return
#s::GroupActivate, miGrupoDeVentanas ; <<<< para interactuar con ambos
#w::WinRestore, ahk_group miGrupoDeVentanas
#y::WinMinimize, ahk_group miGrupoDeVentanas
#x::WinClose, ahk_group miGrupoDeVentanas
Quedo atento y como siempre muchas gracias
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 05 Jan 2018, 13:33
by sebaramos
Con tu ejemplo A_AhkUser, Paint y el Bloc funcionan muy bien pero al querer interactuar con mis programas, ejemplo: llevar al frente con #s:: a excel o Qlik, no se puede....tienes alguna idea de por donde pueda ir el problema...
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 06 Jan 2018, 20:35
by A_AhkUser
Hola,
Code: Select all
#p::
run, C:\Users\kibernum.sramos\Desktop\Aes\Reportes\Semanal\Importar datos web8.xlsm,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
MsgBox, OK
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
run, C:\Program Files\Qlikview\Qv,,, PID
WinWait, ahk_pid %PID%
ID := WinExist()
MsgBox, OK
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
return
#s::GroupActivate, miGrupoDeVentanas ; <<<< para interactuar con ambos
#w::WinRestore, ahk_group miGrupoDeVentanas
#y::WinMinimize, ahk_group miGrupoDeVentanas
#x::WinClose, ahk_group miGrupoDeVentanas
Si el script no tira dos veces
OK, vale la pena intentar utilizando otra cosa que el PID - por ejemplo el nombre del proceso:
Code: Select all
run, myProgram.exe
WinWait, ahk_exe myProgram.exe
ID := WinExist()
MsgBox, OK
GroupAdd, miGrupoDeVentanas, ahk_id %ID%
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 08 Jan 2018, 09:11
by sebaramos
Hola A_AhkUser,
Me tira los dos "OK", pero una vez abierto los programas no puedo traer uno y otro al frente con #s::
Probé con el nombre del proceso y tampoco.......lo que me parece extraño es que con Paint y el Bloc de notas funcione.......es lo último que me falta para automatizar por completo una tarea muy aburrida....
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 08 Jan 2018, 12:02
by A_AhkUser
Hola
sebaramos,
Prueba eso:
Code: Select all
#If (GroupAdd("miGrupoDeVentanas", "ahk_exe mspaint.exe", "ahk_exe notepad.exe")) ; hace que los hotkeys esten sensibles al contexto
#s::
MsgBox, OK
GroupActivate, miGrupoDeVentanas
return
; #y::WinMinimize
#y::WinMinimize, ahk_group miGrupoDeVentanas
; #x::WinClose
#x::WinClose, ahk_group miGrupoDeVentanas
#If
#w::WinRestore, ahk_group miGrupoDeVentanas
GroupAdd(__groupName, __windows*) {
for __each, __window in __windows
GroupAdd, % __groupName, % __window
return WinExist("ahk_group " . __groupName) ; devuelve un ID ('true') si al menos una ventana sigue existiendo, en caso contrario - 'false'
}
A diferencia del codigo anterior esté utiliza el nombre del proceso y actualiza el grupo cada vez que presiona
#s.
Asegurase que el nombre del proceso es correcto ayudándose de
AU3_Spy (que se puede encontrar en la carpeta de instalación de AHK).
Code: Select all
!r::
SplitPath, % A_AHKPath,, carpeta
run % carpeta . "\AU3_Spy.exe"
return
Saludos.
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 08 Jan 2018, 14:23
by sebaramos
Esta es la información que me entrega AU3_Spy , podrías indicarme por favor cual sería en este caso el nombre del proceso para esta ventana
>>>>>>>>>>>>>>>>>>>>>>>>>><<<Window Title & Class<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Importar datos web8 - Excel
ahk_class XLMAIN
>>>>>>>>>>>>>>>>>>>>>>>>>(Mouse Position)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
etc.....
probé de las siguientes formas y no compilo:
ahk_exe importar datos web8 - excel.exe
ahk_class importar datos web8 - excel.class
ahk_exe XLMAIN.exe
ahk_class XLMAIN.class
.....
Tu ejemplo nuevamente funciona muy bien con paint y el bloc.....si uso AU3_Spy con Paint, me arroja esta información:
>>>>>>>>>>>>>>>>>>>>>>>>>><<<Window Title & Class<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sin titulo - Excel
ahk_class MSPaintApp
>>>>>>>>>>>>>>>>>>>>>>>>>(Mouse Position)<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
etc.....
Re: Como traer una ventana minimizada, al frente (Que quede como principal)
Posted: 08 Jan 2018, 14:45
by sebaramos
ya lo solucione, encontre el nombre del proceso en administrador de tareas
muchas gracias amigo mio me sirvió muchisimo tu ayuda!!