Mrrrr's Forum (VIEW ONLY)
Un forum care ofera solutii pentru unele probleme legate in general de PC. Pe langa solutii, aici puteti gasi si alte lucruri interesante // A forum that offers solutions to some PC related issues. Besides these, here you can find more interesting stuff.
Lista Forumurilor Pe Tematici
Mrrrr's Forum (VIEW ONLY) | Reguli | Inregistrare | Login

POZE MRRRR'S FORUM (VIEW ONLY)

Nu sunteti logat.
Nou pe simpatie:
Kitana 25 ani
Femeie
25 ani
Bucuresti
cauta Barbat
25 - 48 ani
Mrrrr's Forum (VIEW ONLY) / Tutoriale si Ghiduri Utile // Tutorials and useful guides / [WINDOWS] White Banner Problem Moderat de TRaP, TonyTzu
Autor
Mesaj Pagini: 1
Mrrrr
AdMiN

Inregistrat: acum 17 ani
Postari: 2186
It's happened quite a few times on a work laptop running Windows 10 with a 2nd screen / monitor, and it's happened to me once at home 2 weeks ago.

I did various stuff and in the past 2 weeks it hasn't happened anymore. I think this might be the one that nailed it:

Open regedit, and navigate to the following key: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics

Add a new DWORD value named: DisableHWAcceleration

Set its value to 1.

Restart your PC.

* * * *

In case you don't want to disable HW Acceleration, changing resolution seems to work. Just change it to something else on the big screen / monitor, then back to your default. The problem should be fixed.

To do it a bit faster you could either use an AHK script to change resolution, or a PS script to do that.

1. AHK Script (need AutoHotkey installed or use it to compile an exe file)



#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance, force

detecthiddenwindows, on
; Use command prompt to open display settings
Run, %comspec% \k,,hide, cmd_pid
WinWait, ahk_pid %cmd_pid%
ControlSend, , control desk.cpl'n, ahk_pid %cmd_pid%

; Wait for display settings to open
WinWaitActive, Settings
sleep, 2000
; Send the appropriate key strokes to the settings menu to change the resolution

Send,{Tab 4}
sleep 100
Send,{Enter}

sleep 100
; Change this as needed to move to the desired display settings
Send,{Down 4}

sleep 100
Send,{Enter}
return


2. PS Script (need to right click it and select Run with PowerShell)



Function Set-ScreenResolution {

<#
    .Synopsis
        Sets the Screen Resolution of the primary monitor
    .Description
        Uses Pinvoke and ChangeDisplaySettings Win32API to make the change
    .Example
        Set-ScreenResolution -Width 1024 -Height 768    -Freq 60         
    #>
param (
[Parameter(Mandatory=$true,
           Position = 0)]
[int]
$Width,

[Parameter(Mandatory=$true,
           Position = 1)]
[int]
$Height,

[Parameter(Mandatory=$true,
           Position = 2)]
[int]
$Freq
)

$pinvokeCode = @"

using System;
using System.Runtime.InteropServices;

namespace Resolution
{

    [StructLayout(LayoutKind.Sequential)]
    public struct DEVMODE1
    {
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public string dmDeviceName;
        public short dmSpecVersion;
        public short dmDriverVersion;
        public short dmSize;
        public short dmDriverExtra;
        public int dmFields;

        public short dmOrientation;
        public short dmPaperSize;
        public short dmPaperLength;
        public short dmPaperWidth;

        public short dmScale;
        public short dmCopies;
        public short dmDefaultSource;
        public short dmPrintQuality;
        public short dmColor;
        public short dmDuplex;
        public short dmYResolution;
        public short dmTTOption;
        public short dmCollate;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
        public string dmFormName;
        public short dmLogPixels;
        public short dmBitsPerPel;
        public int dmPelsWidth;
        public int dmPelsHeight;

        public int dmDisplayFlags;
        public int dmDisplayFrequency;

        public int dmICMMethod;
        public int dmICMIntent;
        public int dmMediaType;
        public int dmDitherType;
        public int dmReserved1;
        public int dmReserved2;

        public int dmPanningWidth;
        public int dmPanningHeight;
    };



    class User_32
    {
        [DllImport("user32.dll")]
        public static extern int EnumDisplaySettings(string deviceName, int modeNum, ref DEVMODE1 devMode);
        [DllImport("user32.dll")]
        public static extern int ChangeDisplaySettings(ref DEVMODE1 devMode, int flags);

        public const int ENUM_CURRENT_SETTINGS = -1;
        public const int CDS_UPDATEREGISTRY = 0x01;
        public const int CDS_TEST = 0x02;
        public const int DISP_CHANGE_SUCCESSFUL = 0;
        public const int DISP_CHANGE_RESTART = 1;
        public const int DISP_CHANGE_FAILED = -1;
    }



    public class PrmaryScreenResolution
    {
        static public string ChangeResolution(int width, int height, int freq)
        {

            DEVMODE1 dm = GetDevMode1();

            if (0 != User_32.EnumDisplaySettings(null, User_32.ENUM_CURRENT_SETTINGS, ref dm))
            {

                dm.dmPelsWidth = width;
                dm.dmPelsHeight = height;
                dm.dmDisplayFrequency = freq;

                int iRet = User_32.ChangeDisplaySettings(ref dm, User_32.CDS_TEST);

                if (iRet == User_32.DISP_CHANGE_FAILED)
                {
                    return "Unable to process your request. Sorry for this inconvenience.";
                }
                else
                {
                    iRet = User_32.ChangeDisplaySettings(ref dm, User_32.CDS_UPDATEREGISTRY);
                    switch (iRet)
                    {
                        case User_32.DISP_CHANGE_SUCCESSFUL:
                            {
                                return "Success";
                            }
                        case User_32.DISP_CHANGE_RESTART:
                            {
                                return "You need to reboot for the change to happen.\n If you feel any problems after rebooting your machine\nThen try to change resolution in Safe Mode.";
                            }
                        default:
                            {
                                return "Failed to change the resolution";
                            }
                    }

                }


            }
            else
            {
                return "Failed to change the resolution.";
            }
        }

        private static DEVMODE1 GetDevMode1()
        {
            DEVMODE1 dm = new DEVMODE1();
            dm.dmDeviceName = new String(new char[32]);
            dm.dmFormName = new String(new char[32]);
            dm.dmSize = (short)Marshal.SizeOf(dm);
            return dm;
        }
    }
}

"@

Add-Type $pinvokeCode -ErrorAction SilentlyContinue
[Resolution.PrmaryScreenResolution]::ChangeResolution($width,$height,$freq)
}

Set-ScreenResolution -Width 1600 -Height 900 -Freq 60

Set-ScreenResolution -Width 1920 -Height 1080 -Freq 60


_______________________________________


pus acum 2 ani
   
Pagini: 1  

Mergi la