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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Informática
| |-+  Software
| | |-+  ¿Método para "reiniciar" el monitor?
0 Usuarios y 4 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Método para "reiniciar" el monitor?  (Leído 11,261 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.721


Hackentifiko!


Ver Perfil
¿Método para "reiniciar" el monitor?
« en: 2 Julio 2025, 23:10 pm »

A veces cuando enciendo la PC, el monitor muestra imagen y luego nada. Tengo que apagarlo y prenderlo muchas veces para que quede... un poco rojo u oscuro en un costado, pero "bien". Una forma más cómoda es abrir ZSNES, un programa de DOS parece, y hacer alt+tab cada vez que el monitor deja de mostrar imagen. Porque ir a "DOS" y volver a Windows, o viceversa, hace que el monitor se apague o algo así por un momento.

Lo dejo encendido siempre ya con la esperanza de que no dé problemas, pero estar como 5 minútos o no sé cuánto, haciendo alt+tab sin poder hacer mucho más, es como, desastrozo. No puedo mandar a arreglarlo ni conseguir otro.

Pregunto cómo podría, con un programa o test, causar el efecto de "reinicio" de monitor, o apagado y reencendido, como expliqué.
Recuerdo que sucedía con los test de Direct X, posiblemente también con un emulador de Playstation y posiblemente con el cambio de tamaño del escritorio o pantalla en Windows.
Imaginen que no pueden ver. Yo muevo el mouse para un costado, hago clic, apreto Z, sé que se selecciona el ZSNES que está en el escritorio, pongo un juego y empiezo a hacer alt+tab como ¿boludo? hasta que el monitor quede bien.
Me gustaría algo más simple, algo que lo ponga en el monitor, lo abra así con una tecla (puedo ponerle un nombre con X por ejemplo), y que luego tenga el efecto usando sólo 1 tecla.

¿Qué se les ocurre?

Hablando con GPT me dijo algo de crear un programa que se ponga en pantalla completa. Tendría que cerrarse cuando yo le diga. Que se abra con Enter, claro, y en lo posible con Enter también se cierre, pero que el detector de Enter empiece luego de unos segundos para que no se cierre enseguida.
Pero no cualquier pantalla completa sirve. Por ejemplo la de Chrome creo que no sirve, debe ser una que "reinicie" al monitor.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.996



Ver Perfil
Re: ¿Método para "reiniciar" el monitor?
« Respuesta #1 en: 3 Julio 2025, 01:58 am »

Hablando con GPT me dijo algo de crear un programa que se ponga en pantalla completa.

ChatGPT y su "inteligencia" sobre humana siempre capaz de idear y ofrecer las soluciones más sencillas e ingeniosas para cualquier problema informático... nótese la ironía. Esa IA es un montón de *****. >:D La de veces que a mi me ha hecho perder el tiempo (y me ha sacado de quicio) sugiriendo soluciones tediosas y rebuscadísimas para aspectos de software y programación, y luego casi siempre termino hallando por mis propios medios (investigando muy a fondo, por que ChatGPT muchas veces no sirve ni para orientar) soluciones óptimas y simplificadas que hacen lo mismo, de forma más robusta y sin complicaciones.

posiblemente con el cambio de tamaño del escritorio o pantalla en Windows.

Exacto, con eso debería ser suficiente. Es lo primero que pensé: si el objetivo para que puedas solucionar el problema pasa por apagar y reactivar el monitor entonces no debería ser necesario cambiar a modo de pantalla completa exclusiva ('fullscreen exclusive mode' en inglés) como posiblemente se hace al ejecutar el emulador ZSNES para DOS, o un juego cualquiera que renderice en pantalla completa exclusiva, vaya, sino simplemente realizar un cambio de resolución de forma directa en tu dispositivo, y luego restaurar ese cambio de resolución para dejarlo como estaba al principio, claro.

Para ello te sirve cualquier programa por línea de comandos orientado a esa función. Yo he elegido este para la siguiente solución:
 - https://www.tools.taubenkorb.at/change-screen-resolution/

Y aquí te dejo la solución, que consiste en un Batch-script que he escrito para automatizar los ciclos de cambio de resolución:

Resolution Changer.cmd
Código
  1. @ECHO OFF
  2.  
  3. SET /A "OriginalWidth=1920"
  4. SET /A "OriginalHeight=1080"
  5.  
  6. SET /A "TempWidth=800"
  7. SET /A "TempHeight=600"
  8.  
  9. SET /A "DisplayIndex=0"
  10.  
  11. SET /A "RepeatCount=2"
  12.  
  13. SET /A "StartDelay=5"
  14. SET /A "ChangeDelay=8"
  15.  
  16. ECHO:Original Resolution:  %OriginalWidth%x%OriginalHeight%
  17. ECHO:Temporary Resolution: %TempWidth%x%TempHeight%
  18. ECHO:Starting resolution change cycle for %RepeatCount% times...
  19. TIMEOUT /T %StartDelay%
  20.  
  21. FOR /L %%i IN (1,1,%RepeatCount%) DO (
  22.    CLS
  23.    ECHO:Cycle %%i of %RepeatCount%: Changing to %TempWidth%x%TempHeight%...
  24.    (TIMEOUT /T 1 /NOBREAK)1>NUL
  25.    ".\ChangeScreenResolution.exe" /d=%DisplayIndex% /w=%TempWidth% /h=%TempHeight% 1>NUL
  26.    TIMEOUT /T %ChangeDelay%
  27.  
  28.    ECHO+
  29.    ECHO:Cycle %%i of %RepeatCount%: Changing to %OriginalWidth%x%OriginalHeight%...
  30.    (TIMEOUT /T 1 /NOBREAK)1>NUL
  31.    ".\ChangeScreenResolution.exe" /d=%DisplayIndex% /w=%OriginalWidth% /h=%OriginalHeight% 1>NUL
  32.    IF %%i NEQ %RepeatCount% (
  33.        TIMEOUT /T %ChangeDelay%
  34.    )
  35. )
  36.  
  37. ECHO:Resolution change cycle completed.

Asegúrate de configurar correctamente el valor de las variables antes de utilizarlo, y asignar resoluciones soportadas en tu monitor. Puedes utilizar la combinación de teclas CTRL+C para abortar el cambio de resolución durante el tiempo de espera ('TIMEOUT /T %ChangeDelay%').

PD: el parámetro con valor "/d=%DisplayIndex%" hace referencía al índice cero de los monitores disponibles (display=zero). Si no tienes una configuración multimonitor entonces este valor no te afecta.

Atentamente,
Elektro.


« Última modificación: 3 Julio 2025, 16:33 pm por Eleкtro » En línea



Tachikomaia


Desconectado Desconectado

Mensajes: 1.721


Hackentifiko!


Ver Perfil
Re: ¿Método para "reiniciar" el monitor?
« Respuesta #2 en: Hoy a las 07:00 »

Me acostumbré al ZSNES, y el problema dejó de ocurrir, tu solución era un poco complicada.

Ahora quizá por el Invierno que se viene acá, empezó a pasar de nuevo, y ya el ZSNES no hace el efecto, antes tenía Windows 7, ahora 10, ni idea qué pasó, o es otra versión del ZSNES, pero no parece. Acabo de copiar la que tenía, de momento no puedo ver si es distinta.

La cosa es que ahora la mejor solución es estar con el brazo estirado hacia el botoncito, prendo, espero, apago, repito. Media hora a veces. No, también uso esto:
Código:
@echo off
title Reseteador de Monitor Unico
cls

:: 1. Apaga el monitor físicamente
nircmd.exe monitor async_off

:: 2. Espera 4 segundos en negro para que el hardware reaccione
timeout /t 4 /nobreak >nul

:: 3. ENCIENDE el monitor simulando presionar la tecla SHIFT (no altera nada en pantalla)
nircmd.exe sendkey shift down
nircmd.exe sendkey shift up

:: 4. Fuerza tu resolución de Intel (1024x768) para asegurar el estirado
nircmd.exe setdisplay 1024 768 32

:: 5. Hace un sonido de "bip" para avisarte que terminó el proceso
echo 

exit

Pero es muy lento, no sé bien qué pasa, es como que tarda en reencender el monitor, y necesito que se haga rápìdo, es como que necesita calentarse, si el programa lo mantiene apagado no sirve. Estar encendido mostrando la pantalla negra creo que tampoco sirve, debe apagarse y volverse a prender para mostrar imagen, hasta que deje de hacerlo, y repito.

Tengo también esto:
Código:
@echo off
title Reseteador de Monitor Infinito
:bucle

:: 1. Apaga el monitor físicamente
nircmd.exe monitor async_off

:: 2. Espera 4 segundos en negro para que el hardware reaccione
timeout /t 4 /nobreak >nul

:: 3. ENCIENDE el monitor simulando presionar la tecla SHIFT (no altera nada en pantalla)
nircmd.exe sendkey shift down
nircmd.exe sendkey shift up

:: 4. Fuerza tu resolución de Intel (1024x768) para asegurar el estirado
nircmd.exe setdisplay 1024 768 32

:: 5. Hace un sonido de "bip" para avisarte que terminó un ciclo
echo 

:: 6. Espera 3 segundos antes de volver a intentar
timeout /t 3 /nobreak >nul

goto bucle

Pero es como que no vuelve a prenderse, mientras se prende ya se apaga de nuevo. Puse que el tiempo de espera al final sea 10 pero fue igual. No tiene mucho sentido probar cambios ahora, o será que no quiero, sino capaz que el monitor deja de funcionar de nuevo.

Cuando pueda lo mando arreglar ¿pero mientras qué puedo hacer?

Opción 1:
Algún programa que me mande al DOS como antes ¿el DOSbox? ¿debo automatizar que se ponga en pantalla completa y que entre a un juego?

Opción 2:
Cambiar algo en los programas que puse. La IA que me lo dijo dijo que el tiempo de espera del hardware es necesario, o la orden de reencenderlo podría ocurrir antes de que se apague. El del final, no sé cuánto debería ponerle, pero el tiempo que el monitor deja de funcionar es variable (puede que parpadeé un rato, o sólo parpadeé su luz de encendido, para en cierto punto mostrar imagen bien, pero puede que dure 1 segundo o 2 nada más hasta quedar definitivamente negro con la luz siempre encendida), si le pongo poco parece que no se vuelve a encender, o no tiene tiempo para hacer esos parpadeos, y si le pongo mucho tiempo de espera supuse que iba a tardar demasiado en volver a prenderse luego de apagarse.

Edit:
Las 2 versiones de mi ZSNES:

Son iguales parece, la diferencia de 1 hora es un error que hubo en mi PC.

En cuanto a la configuración, usando un comparador de textos vi varias diferencias, la más sospechosa me parece esta:

¿Qué significa?
« Última modificación: Hoy a las 07:19 por Tachikomaia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines