Good Morning
Hoping someone has some experience with this, when the power settings are set to set the monitors to go to sleep after x number of minutes, the monitors then refuse to wake back up. On laptops, this also stops the display on the laptop when opening the lid.
No amount of button presses or combination of buttons wakes the monitors up and has to be hard powered.
At the moment we have had to set VIDEOLOCK and VIDEOCONLOCK to ridiculous timeout settings to stop people losing their work when going on breaks etc but at a loss as to what is causing the displays to drop out completely - PCI Express power saving has also been turned off but made no impact.
Changed power settings and registries through Group Policies and through powercfg but nothing seems to stop the monitors from dropping out after the display goes to sleep.
Related
I have 3 monitors and I have set Windows to turn off my screen when the computer is idle after 5 minutes because. After the computer wakes up all of my windows lose their positions and I need to move again each window to the position I want in each monitor, this is a tedious activity.
Is there any way or configuration to avoid this behavior in Windows?
I'm using Windows 10.
I am trying to develop a background utility for Windows with the following features :
store position of open application windows for the current display resolution Rx
scan for any change in display resolution Rx -> Ry (e.g. related to docking/undocking my laptop to/from its docking station)
wait for Windows to finish automatic repositioning of the windows (messy desktop reconfiguration; see below)
restore the previously stored windows position for the display resolution Ry
I have successfully implemented features 1, 2 and 4. For feature 2, I intercept the WM_DISPLAYCHANGE event, telling me that a change in display resolution has occurred.
Immediately after the resolution change occurs, Windows automatically repositions many (if not all) windows to meet the new display constraints. This phase (which I call the messy desktop reconfiguration) lasts several seconds and causes a real mess in the windows layout (which is why I want to develop the said utility).
Now I have the following problem:
I can only apply feature 4 when Windows has finished the messy desktop reconfiguration phase (3). However, I have not found any acceptable way to detect when this phase ends.
I did try to observe the automatic repositioning of windows by intercepting the EVENT_OBJECT_LOCATIONCHANGE event, and then wait for the last one to be issued. It almost works: I am well notified when it happens, however, I'm not satisfied because the time interval between each of these events can last up to 5 seconds (or maybe more), which makes it difficult to identify the last of these events by a classic timeout method. Currently, I have set this timeout to 10 seconds, which is not satisfactory because I would like to be able to detect the end of the messy desktop reconfiguration earlier and, more importantly, there is no guarantee that another of these events will not occur after the timeout.
Does anyone have a solution to properly detect the end of automatic windows repositonning, when changing the display resolution ?
I'm wondering if there's a good way to automate changing my display configuration in Windows 10?
I have 3 monitors attached, and I find myself wanting to configure my system in one of 3 ways:
All monitors set up to extend the desktop.
Only my central (largest) monitor enabled, others both disabled.
Only my right-most monitor enabled, others both disabled (I think hook up a spare HDMI cable on my center monitor to my laptop, and the monitor automatically switches to that input).
Manually, this involves opening the Display Settings panel, selecting the monitors, and either marking them as "Disconnected" or "Extend desktop on this display".
Is there some nice, scripting-friendly way to do this? I'm more comfortable doing this sorta thing on Linux, where I'd whip up a quick shell script to call the xrandr command a few times, or something like that...
Mostly out of curiosity, i was wondering how should i approach this. I'd like to make it so that when i turn off my screen, the computer shuts down. In essence, i'd like to make a service that constantly check whether the screen is on or off.
Any ideas/suggestions are welcome. Thank you for taking the time and i wish you all a plesant day.
Well, if there would be a way to check the status of the connected monitors and you shut your computer down when the screen goes off, how do you plan to turn your computer on again? I expect then you have to use the normal hardware button on your tower. Why not stick to these buttons? It has worked the last 30 years or so...
To make an actual suggestion:
Setup a webcam to monitor your screen. Using simple picture analysis you can detect if the screen is on or off
Shutdown your computer down when screen goes off
Also you can monitor the szenario when turning your screen on. You should see a manufacturers logo for a few seconds or somethinglike this. (Now you need a second computer with a second webcam)
With the second computer you can build some little machine that pushes the power on button on your first computer to turn it on
But how to turn on/off the second computer? Well, you need another one for that...
I've noticed that the running times of my CUDA kernels are almost tripled the moment the screensaver kicks in. This happens even if it's the blank screensaver.
Oddly enough, this appears to have nothing to do with the power settings. When I disable the screen saver and let the screen power off, the performance stays the same. When I set the "Turn off monitor" to "Never" and lets the screen saver kick in, it happens.
Why does this happen?
Is there a way to counteract this phenomena?
Is there a way to tell windows not to kick in the screen saver? (How do media players do it?)
I'm working on XP SP2 x64
Firstly, its interesting that CUDA is so impacted.
But here is the recipe in win32 for avoiding the screensaver kicking in:
A normal approach is to send yourself 'fake' key presses occasionally using the SendInput API, to reset the inactivity timer that triggers the screensaver.
It is possible to stop applications doing this, however, using the SPI_SETBLOCKSENDINPUTRESETS parameter for SystemParametersInfo.
Another approach is just to turn the screensaver off programmatically, using SPI_SETSCREENSAVEACTIVE for SystemParametersInfo. However, this is a global setting for the whole user - what if two programs use this overlapping? Try to avoid this!