Skip to main content

How to change PC resolution with VB.NET



Ok, Hi guys, After very long time I back with a surprise a code to change resolution of PC with VB.NET just copy this and past it and Call it with ChangeRes( 1024 , 768 , 32 )

The CODE 



function generate() {
Public Class Form1
    ' change resolution Constants, Types and Declares

    ' Using this option to shutdown windows does not send
    ' the WM_QUERYENDSESSION and WM_ENDSESSION messages to
    ' the open applications. Thus, those apps may loose
    ' any unsaved data.
    '
    Const EWX_FORCE As Short = 4
    Const CCDEVICENAME As Short = 32
    Const CCFORMNAME As Short = 32
    Const DM_BITSPERPEL As Integer = &H40000
    Const DM_PELSWIDTH As Integer = &H80000
    Const DM_PELSHEIGHT As Integer = &H100000
    Const CDS_UPDATEREGISTRY As Short = &H1S
    Const CDS_TEST As Short = &H2S
    Const CDS_FULLSCREEN As Short = &H4S
    Const DISP_CHANGE_SUCCESSFUL As Short = 0
    Const DISP_CHANGE_RESTART As Short = 1

    Const HWND_BROADCAST As Integer = &HFFFF
    Const WM_DISPLAYCHANGE As Integer = &H7E
    Const SPI_SETNONCLIENTMETRICS As Short = 42

    Private Structure DEVMODE
         Public dmDeviceName As String
        Dim dmSpecVersion As Short
        Dim dmDriverVersion As Short
        Dim dmSize As Short
        Dim dmDriverExtra As Short
        Dim dmFields As Integer
        Dim dmOrientation As Short
        Dim dmPaperSize As Short
        Dim dmPaperLength As Short
        Dim dmPaperWidth As Short
        Dim dmScale As Short
        Dim dmCopies As Short
        Dim dmDefaultSource As Short
        Dim dmPrintQuality As Short
        Dim dmColor As Short
        Dim dmDuplex As Short
        Dim dmYResolution As Short
        Dim dmTTOption As Short
        Dim dmCollate As Short
         Public dmFormName As String
        Dim dmUnusedPadding As Short
        Dim dmBitsPerPel As Short
        Dim dmPelsWidth As Integer
        Dim dmPelsHeight As Integer
        Dim dmDisplayFlags As Integer
        Dim dmDisplayFrequency As Integer
    End Structure

    Private Overloads Declare Function EnumDisplaySettings Lib "user32" Alias 
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer, ByVal iModeNum As Integer, 
ByRef lpDevMode As DEVMODE) As Boolean
    'Private Overloads Declare Function EnumDisplaySettings Lib "user32" Alias 
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer, ByVal iModeNum As Integer, 
ByRef lpDevMode As Long) As Boolean

    Private Overloads Declare Function ChangeDisplaySettings Lib "user32" Alias 
"ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE, ByVal dwFlags As Integer) 
As Integer
    'Private Overloads Declare Function ChangeDisplaySettings Lib "user32" Alias 
"ChangeDisplaySettingsA" (ByRef lpDevMode As Long, ByVal dwFlags As Integer) 
As Integer

    Public Function ChangeRes(ByVal width As Integer, ByVal height As Integer,
 ByVal BPP As Short) As Integer
        Dim DevM As Form1.DEVMODE
        Dim lResult As Integer
        Dim iAns As Short
        lResult = EnumDisplaySettings(0, 0, DevM)
        With DevM
            .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
            .dmPelsWidth = width
            .dmPelsHeight = height
            .dmBitsPerPel = BPP
        End With
        lResult = ChangeDisplaySettings(DevM, CDS_FULLSCREEN)
        Select Case lResult
            Case DISP_CHANGE_SUCCESSFUL
                Call ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
            Case Else
                MsgBox("Mode not supported", MsgBoxStyle.SystemModal, "Error")
        End Select
        Return 0
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim x As Integer = Screen.PrimaryScreen.BitsPerPixel
        ChangeRes(1024, 768, x)
    End Sub
End Class
}


Change Form1 to Your Form Name 
And Button1 to Your Control Name

Please Leave Comment !!!

Comments

Post a Comment