Autor
|
Tema: Poner imagen en pantalla completa (Leído 3,580 veces)
|
Mauricio De Abreu
Desconectado
Mensajes: 24
|
Buenas tardes amigos. Antes que nada pido disculpas si he posteado en un foro erroneo. El asunto es que tengo este código, que pone en pantalla completa una imagen que fue abierta con el Visor de imagenes de Windows desde un archivo Batch. Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Wscript.Sleep 4
' Alt+Shift+Enter
WshShell.Sendkeys "+%{ENTER}"
'WshShell.Sendkeys "+%~
'F11
'WshShell.SendKeys "{F11}"
WScript.Quit Como pueden ver, he probado dos metodos de Alt+Shift+Enter, y uno de F11, los cuales funcionan en mi Desktop, todas y cada una de las veces que ejecuto el codigo, pero en la Laptop del trabajo, funciona la primera vez y despues no pone en pantalla completa la imagen. Alguien sabrá que estoy haciendo mal, o hay que cambiar algo en el codigo ¿? Agradecido de antemano por la ayuda que me puedan brindar.
|
|
|
En línea
|
|
|
|
EdePC
|
Quizá esté perdiendo el Foco del programa y no se le está enviando los SendKeys al programa correcto. Una alternativa es Activar la ventana y enviarle el SendKeys set Sh = WScript.CreateObject("WScript.Shell") Sh.AppActivate "foto.jpg - Visualizador de fotos de Windows" Sh.SendKeys "{F11}"
El detalle es el Título de la ventana a activar, el Visualizador de fotos de Windows tiene su Título cambiante de acuerdo al nombre de la foto, tienes que considerar eso. Todo esto sin considerar otras cosas como el visualizador por defecto, como estás abriendo la imagen, Windows 10 y 11 traen otro visualizador aunque siempre es posible activar el viejo, el Alt + Shift + Enter previo puede que haga el problema, etc
|
|
|
En línea
|
|
|
|
Mauricio De Abreu
Desconectado
Mensajes: 24
|
Gracias por responder.
Lo que comentas es totalmente cierto y es parte del problema, las pruebas las he estado haciendo en Win 10 (Casa y trabajo).
Lo otro es que el Batch (cuando lo termine) debo adaptarlo a Win Xp, Win Seven y Win 10.
Por lo que supongo que presentara mas que un reto colocar parte del titulo de la ventana (si se pudiera).
Por otro lado, las imágenes son diferentes dependiendo de la alerta que deba mostrarse, en total son 9 alertas en formato PNG cuyo tamaño es la resolución del monitor, y todas se levantan desde el archivo Batch.
El Vbs lo uso para poner la imagen en pantalla completa para que el operador no obvie, o pase por alto la alerta.
Así que no se como hacer para resolver el problema, si alguien tiene una idea se lo agradecería mucho.
Edicion:
De hecho, una de las cosas extrañas que pasan (en la laptop), es que al mostrar la imagen de la alerta, si yo manualmente trato de maximizarla con F11 o Alt + Shift + Enter, esta no se pone en pantalla completa. Pero en la Desktop de la casa si.
Sera otra cosa lo que impide que funcione bien el VBS ¿?
|
|
« Última modificación: 13 Enero 2022, 14:09 pm por Mauricio De Abreu »
|
En línea
|
|
|
|
EdePC
|
Correcto, pues para compatibilidad y de interfaz gráfica se usa mshta.exe que funciona en Windows XP, Vista, 7, 8, 8.1, 10 y 11. Básicamente es un mini Internet Explorer y puede interpretar código HTML, javascript, VBScript, JScript y CSS. Como es algo sencillo lo que pides (mostrar una imagen en pantalla completa), basta con invocarlo directamente así: mshta "about:<hta:application border=none contextmenu=no scroll=no windowstate=maximize /><img src='%userprofile%\desktop\img\imagen.jpg' width=100% />" La ruta a la imagen debe ser absoluta Como se muestra sin bordes y maximizado el resultante será una pantalla completa PERO para cerrarlo hay que dar Alt + F4Si no se quitan los bordes y se especifica maximizado el resultado será una ventana maximizada que tiene sus botones para cerrar y no se oculta la barra de tareas Para llamarlo desde un batch (.cmd o .bat) basta con lo descrito anteriormente, pero para hacerlo desde un .vbs se debe usar algo similar a esto (este ejemplo usa barra de título): Set sh = WScript.CreateObject("WScript.Shell") img = sh.ExpandEnvironmentStrings("%UserProfile%") & "\Desktop\img.jpg" txt = "about:<hta:application contextmenu=no scroll=no windowstate=maximize /><title>Hola Mundo</title><img src='" & img & "' width=100% />" sh.Run("mshta """ & txt & """")
Considera que Windows XP el escritorio es "Escritorio" en lugar "Desktop" pero asumo que la ruta a la imagen la vas a preparar antes
|
|
|
En línea
|
|
|
|
Mauricio De Abreu
Desconectado
Mensajes: 24
|
Muchas gracias por responder. Como es algo sencillo lo que pides (mostrar una imagen en pantalla completa), basta con invocarlo directamente así: mshta "about:<hta:application border=none contextmenu=no scroll=no windowstate=maximize /><img src='%userprofile%\desktop\img\imagen.jpg' width=100% />" No tenia idea del mshta, es Excelente!!, y prefiero usarlo en el Batch, así reduzco código y archivo Cambie el 100 por la resolución de la pantalla 1366, ya que la imagen quedaba en la esquina superior izquierda de un tamaño pequeño. Pero tengo una duda, queda una especie de marco en L sobre la imagen, hay forma de quitarlo ? Agradecido de antemano por la ayuda.
|
|
|
En línea
|
|
|
|
EdePC
|
No es solo 100 sino 100% para que independientemente de la resolución la imagen siempre ocupe el todo el ancho visible Con respecto al margen (marco L), pues por defecto se le agrega un margen al body (no sé si estés familiarizado con HTMl, CSS, JS), pero siempre puedes quitarlo con Estilos: mshta "about:<hta:application contextmenu=no scroll=no windowstate=maximize caption=no /><style>body{margin:0}</style><img src='%userprofile%\escritorio\img.jpg' width=100%>" Ese ejemplo también muestra en pantalla completa pero esta vez gracias al caption=noSe puede ver la etiqueta <style></style>, dentro se ponen reglas CSS, en este caso margin:0 quita el margen del body--- Pues claro! XD, si estás ejecutando en un .bat o .cmd hay que escapar los % cuando no son para variables, es decir, hay que ponerlo dos veces, esto si debe funcionar: mshta "about:<hta:application contextmenu=yes scroll=no windowstate=maximize caption=no /><style>body{margin:0}</style><img src='%userprofile%\escritorio\img.jpg' width=100%%>"
|
|
« Última modificación: 14 Enero 2022, 19:30 pm por EdePC »
|
En línea
|
|
|
|
Mauricio De Abreu
Desconectado
Mensajes: 24
|
Pido disculpas por la demora en responder, las actividades laborales se incrementaron a tal punto que no había podido ingresar al foro. Antes que nada, quiero dar las gracias por responder. El código ha funcionado perfectamente, desde el Batch, ahora cubre por completo la pantalla y funciona perfectamente en los 3 sistemas operativos. mshta "about:<hta:application contextmenu=yes scroll=no windowstate=maximize caption=no /><style>body{margin:0}</style><img src='%userprofile%\escritorio\img.jpg' width=100%%>" Podemos dar por concluida la consulta. Gracias nuevamente.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
No se ve la pantalla completa.
Dudas Generales
|
NaXo__
|
2
|
4,639
|
22 Diciembre 2010, 15:24 pm
por Edu
|
|
|
como jugar en pantalla completa en una pantalla panorámica
Juegos y Consolas
|
blha
|
1
|
4,219
|
18 Noviembre 2008, 09:34 am
por kabanya
|
|
|
(ayuda) imagen pantalla completa vb6
Programación Visual Basic
|
Psyke1
|
0
|
1,597
|
19 Febrero 2010, 15:03 pm
por Psyke1
|
|
|
[Batch]Poner pantalla completa durante procesamiento
Scripting
|
Diego_Schneider
|
9
|
10,982
|
23 Diciembre 2010, 23:02 pm
por Diego_Schneider
|
|
|
[?] Pantalla completa en C/C++
Programación C/C++
|
branon32
|
2
|
3,685
|
6 Diciembre 2018, 21:23 pm
por branon32
|
|