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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Poner imagen en pantalla completa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Poner imagen en pantalla completa  (Leído 3,580 veces)
Mauricio De Abreu

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Poner imagen en pantalla completa
« en: 12 Enero 2022, 23:13 pm »

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.

Código:
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
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.159



Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #1 en: 13 Enero 2022, 01:28 am »

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

Código
  1. set Sh = WScript.CreateObject("WScript.Shell")
  2. Sh.AppActivate "foto.jpg - Visualizador de fotos de Windows"
  3. 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 Desconectado

Mensajes: 24


Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #2 en: 13 Enero 2022, 14:01 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.159



Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #3 en: 14 Enero 2022, 00:06 am »

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í:

Código:
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 + F4
Si 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):

Código
  1. Set sh = WScript.CreateObject("WScript.Shell")
  2. img = sh.ExpandEnvironmentStrings("%UserProfile%") & "\Desktop\img.jpg"
  3. txt = "about:<hta:application contextmenu=no scroll=no windowstate=maximize /><title>Hola Mundo</title><img src='" & img & "' width=100% />"
  4. 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 Desconectado

Mensajes: 24


Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #4 en: 14 Enero 2022, 14:51 pm »

Muchas gracias por responder.

Como es algo sencillo lo que pides (mostrar una imagen en pantalla completa), basta con invocarlo directamente así:

Código:
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
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.159



Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #5 en: 14 Enero 2022, 19:11 pm »

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:

Código:
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=no
Se 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:

Código:
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 Desconectado

Mensajes: 24


Ver Perfil
Re: Poner imagen en pantalla completa
« Respuesta #6 en: 16 Enero 2022, 16:32 pm »

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.

Código:
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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No se ve la pantalla completa.
Dudas Generales
NaXo__ 2 4,639 Último mensaje 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 Último mensaje 18 Noviembre 2008, 09:34 am
por kabanya
(ayuda) imagen pantalla completa vb6
Programación Visual Basic
Psyke1 0 1,597 Último mensaje 19 Febrero 2010, 15:03 pm
por Psyke1
[Batch]Poner pantalla completa durante procesamiento
Scripting
Diego_Schneider 9 10,982 Último mensaje 23 Diciembre 2010, 23:02 pm
por Diego_Schneider
[?] Pantalla completa en C/C++
Programación C/C++
branon32 2 3,685 Último mensaje 6 Diciembre 2018, 21:23 pm
por branon32
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines