elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Como llamar una ventana on focus… con batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como llamar una ventana on focus… con batch  (Leído 8,171 veces)
Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Como llamar una ventana on focus… con batch
« en: 12 Octubre 2013, 08:58 am »

Como llamar una ventana on focus… con batch

Ejemplo tengo varios procesos:

Proceso1.exe   = nombre de ventana: reproductor de música
Proceso2.exe   = nombre de ventana: reloj
Ventana3.exe   = nombre de ventana: script batch


Y quisiera que el reloj pasara al frente visualemente la ventana queda seleccionada y encima de las otras


Proceso2.exe   = nombre de ventana: reloj
Proceso1.exe   = nombre de ventana: reproductor de música
Ventana3.exe   = nombre de ventana: script batch


gracias...


AMPLIO:


Encontre esto por alli: pero no se como modificarlo para que no haya que presionar enter
Código
  1. @echo off& setlocal enableextensions enabledelayedexpansion
  2. @if /i "%~1"==":focus" goto:focus& rem focus back to batch.
  3.  
  4. set /p what=  Press Enter: &&(
  5. echo.  You didn't say that !what! & pause & goto:eof )||(
  6. echo.  You said Enter.& pause)
  7.  
  8. set a=abc
  9. DsLogo.exe /e,C:\
  10. start "" call %~s0 :focus "%~0" "%~1" "%~2"& exit
  11.  
  12. :focus
  13. shift&shift
  14.  echo.
  15.  echo All arguments are okay; is good working:
  16.  echo.
  17.  echo   "0" is "%~0"
  18.  echo   "1" is "%~1"
  19.  echo   "2" is "%~2"
  20.  echo.
  21.  echo   "a" is "%a%" is "!a!"
  22.  echo.

la fuente:
https://groups.google.com/forum/#!topic/alt.msdos.batch.nt/PnYlN6Lj_V4


« Última modificación: 12 Octubre 2013, 09:15 am por Dsalomon » En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #1 en: 12 Octubre 2013, 09:17 am »

@Dsalomon

No es posible traer al frente (poner OnTop) una aplicación teniendo como única herramienta algo tan simple como Batch.

Si no me falla la memoria creo recordar que tenias una especie de pequeño estudio de transmisión de TV montado,
Pues solo por ese motivo creo que ya va siendo hora de que intentes aprender algún otro lenguaje que reálmente te sea útil para todas esas tareas que necesitas realizar de manera profesional, Batch, al igual que VBS y PowerShell, son para automatizar tareas del día a día, no para hacer grandes cosas.

Te muestro un ejemplo en VBS especificando el título de ventana, si quieres hacerlo especificando el nombre del proceso entonces puedes usar WMI, en Google tienes ejemplos:
Código
  1. MainWindowTitle = "Bloc de notas"
  2.  
  3. If createobject("wscript.shell").AppActivate(MainWindowTitle) then
  4.  
  5.  Wscript.Quit(0)
  6.  
  7. Else
  8.  
  9.  wsh.Echo "No se ha encontrado el título de la ventana: " _
  10.           & vbnewline _
  11.           & "" & MainWindowTitle & ""
  12.  
  13.  Wscript.Quit(1)
  14.  
  15. End If


Saludos


« Última modificación: 12 Octubre 2013, 09:30 am por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #2 en: 12 Octubre 2013, 09:25 am »

maesto lo estoy probando ahora mismo y funciona con solo cambiarle la linea

Código
  1. DsLogo.exe /e,C:\
al nombre del proceso que uno quiera pero por

Código
  1. set /p what=  Press Enter:

pero hay que presionar enter

yo quisiera que codigo se ejecute sin preguntas
En línea

Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #3 en: 12 Octubre 2013, 09:29 am »

...Si no me falla la memoria creo recordar que tenias una especie de pequeño estudio de transmisión de TV montado,
Pues solo por ese motivo creo que ya va siendo hora de que intentes aprender algún otro lenguaje que reálmente te sea útil para todas esas tareas que necesitas realizar de manera profesional, Batch, al igual que VBS y PowerShell, son para automatizar tareas del día a día, no para hacer grandes cosas.


si es cierto soy un  seguidor de tus post... claro que leo y leo ...
el dominio de un lenguaje va ha ser mi exito pero, que mejor si me ayudas... pues voy algo lento, claro se que ayudas si uno hace de su parte...

pero como ya todo esta funcionando como que se me ocurren cosas nuevas...  :xD
En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #4 en: 12 Octubre 2013, 09:39 am »

Te debes estar confundiendo, ese código no funciona para lo que necesitas, intenté explicártelo.

Además reemplazaste "explorer.exe" en el código original por "dslogo.exe":
Citar
Código:
DsLogo.exe /e,C:\

...pero "/e,C:\" son parámetros que recibe el proceso explorer.exe, no el "dslogo.exe", no necesitas añadir esos parámetros.

Sobre lo de que el script funcione, podría darse el caso de que la aplicación "DSLogo" NO fuese multi-instancia, es decir, que solo permita una instancia abierta del programa, y además tuvieses dicha instancia minimizada en la barra de tareas, en ese hipotético caso si que se reactivaría y se pondría al frente al usar el script de Batch, pero de lo contrario no.
es más, si ese fuese el caso, solo tendrías que hacer esto en consola (vuelvo a decir, el programa dslogo.exe debe estar minimizado y ser single-instance para que esto funcione):
Código:
Start "" "dslogo.exe"

Arriba te puse una solución 100% eficaz usando VBS, te aconsejo que dejes el Batch para otras cosas.

Saludos
« Última modificación: 12 Octubre 2013, 09:51 am por EleKtro H@cker » En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #5 en: 12 Octubre 2013, 09:55 am »

Te debes estar confundiendo, ese código no funciona para lo que necesitas intenté explicártelo.

Podría ser que la aplicación "DSLogo" no fuese multi-instancia y además la tuvieses minimizada, en ese caso si que se reactivaría y se pondría al frente, pero de lo contrario no.

Arriba te puse una solución eficaz,
Saludos

gracias maestro... claro que tus aportes siempre son los mejores... ;-)

la aplicacion DsLogo es un programita que me cree o mas bien recree con codigo AS2 de Flash y lo que hace es colocar un logo superpuesto en pantalla
o sea un logo sobre cualquier ventana o apliacion incluyendo video



aqui te mando mi creación para que la veas en funcionamiento, le quite la ventana o mas bien la puse transparente y la compile para que funcionara solo como proceso... lo cree sin multi instancia con la ventana en modo normal...
funciona a escritorio compartido... por que winamp que es mi reproductor predilecto lo uso para mis transmisiones.

http://sdrv.ms/19xDXWq

mide 22 mb.


como todos en este medio... mi amigo... somos entusiastas... sin demaciados fondos... yo encontre en batch la solución simple para automatizacion completa... y seguire viendo que mejoras hago... agrdezco enormemente que durante el paso de estos años me sigas ayidando que seguro seguire preguntandote...
En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #6 en: 12 Octubre 2013, 10:11 am »

pero entonces, ¿has podido solucioanr el problema de la ventana de algún modo ya?.

Un saludo
En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #7 en: 12 Octubre 2013, 10:19 am »

Si pero el codigo batch que te mande... me funciono y e VBS no me funciono.... plop...

quiesiera que el mismo batch llamara a mi ejecutable y luego lo pusiera encima...

el codigo lo pne encima pero me deja abierta una ventana CMD

Código
  1. @echo off& setlocal enableextensions enabledelayedexpansion
  2. @if /i "%~1"==":focus" goto:focus& rem focus back to batch.
  3. DsLogo.exe /e,C:\
  4. start "" call %~s0 :focus "%~0" "%~1" "%~2"& exit
  5.  
  6. :focus
  7. shift&shift
  8.  echo.
  9.  echo.
  10.  echo   "0" is "%~0"
  11.  echo   "1" is "%~1"
  12.  echo   "2" is "%~2"
  13.  echo.
  14.  echo   "a" is "%a%" is "!a!"
  15.  echo.
En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.878



Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #8 en: 12 Octubre 2013, 10:40 am »

Sigo viendo en el código los mismos errores que te comenté antes,
de todas formas no voy a seguir hablando más de este problema usando como herramienta Batch.

En la variable del Vbscript deberías poner "Ds canal" y con eso debería funcionar,
de lo contrario, si tuvieras complicaciones al ser un Flash, como ya digo puedes obtener el título correcto de la ventana usando WIM, o WMIC desde la cmd si lo prefieres.

Saludos
En línea



Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: Como llamar una ventana on focus… con batch
« Respuesta #9 en: 12 Octubre 2013, 10:55 am »

ciero se me ovidaba que le puse Ds Canal...gracias...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
mantener ventana en Batch
Scripting
dimitrix 3 4,814 Último mensaje 28 Abril 2007, 22:50 pm
por nhaalclkiemr
Batch que cambie las medidas de la ventana del CMD??? (SOLUCIONADO)
Scripting
SuperDraco 3 4,779 Último mensaje 10 Noviembre 2009, 18:45 pm
por SuperDraco
llamar desde una aplicación de consola una ventana win32 (del mismo proyecto)
Programación C/C++
while 0 2,129 Último mensaje 13 Octubre 2010, 13:21 pm
por while
[Batch] Imagen en ventana.
Scripting
Dany3j 2 3,031 Último mensaje 28 Enero 2012, 15:23 pm
por Dany3j
[BATCH] ¿Cómo abrir una ventana con un ancho y un alto? « 1 2 3 »
Scripting
z3nth10n 20 22,867 Último mensaje 13 Agosto 2012, 17:00 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines