Programmatically change screen resolution?

前端 未结 4 876
感动是毒
感动是毒 2020-11-28 12:20

Is there a way to programmatically change the screen resolution or enable/disable multiple monitors in Windows XP? For example to change from 1024x768 with one monitor to 1

相关标签:
4条回答
  • 2020-11-28 12:43

    You can use EnumDisplayDevices to figure out what displays you have available and EnumDisplaySettings to get a list of available resolutions for your displays. Use ChangeDisplaySettings to set the resolution you need.

    0 讨论(0)
  • 2020-11-28 12:46

    Read the given link its easy.

    just download the dll the good to go..

    MyTactics.blogspot.in

    Screen Srn=Screen.PrimaryScreen;
    
    int tempWidth=Srn.Bounds.Width;
    int tempHeight=Srn.Bounds.Height;
    Console.WriteLine("Current Screen width is {0} and height is {1}.",
                       tempWidth,
                       tempHeight);
    
    0 讨论(0)
  • 2020-11-28 12:51

    Yes, but its not part of .NET. You will need to use, invoke or write a wrapper to access the Win32 API.

    See ChangeDisplaySettings and related function.

    Here you can find a basic example.

    0 讨论(0)
  • 2020-11-28 12:52

    You can easily script this with http://www.autohotkey.com

    Here's a script for swapping between one monitor and two monitors with Windows+1 and Windows+2

    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    #Warn  ; Recommended for catching common errors.
    SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
    #1::
    Send {LWin}
    WinWaitActive Start menu
    Send Adjust Screen Resolution
    Send {enter}
    WinWaitActive Screen Resolution
    ControlClick ComboBox3
    Send {PgDn}
    Send {Up} ; Select "Show desktop only on 1"
    Send {enter}
    Sleep 3000 ; workaround - cannot select accept/revert window?
    Send {left}
    Send {enter} ; accept changes
    Return
    #2::
    Send {LWin}
    WinWaitActive Start menu
    Send Adjust Screen Resolution
    Send {enter}
    WinWaitActive Screen Resolution
    ControlClick ComboBox3
    Send {PgDn}
    Send {Up}
    Send {Up} ; Select "Extend these displays"
    Send {enter}
    Sleep 3000 ; workaround - cannot select accept/revert window?
    Send {left}
    Send {enter} ; accept changes
    Return
    
    0 讨论(0)
提交回复
热议问题