Alle unterstützten Bildschirmauflösungen ermitteln

Peter86

Erfahrenes Mitglied
Hallo!

Ich möchte alle unterstützten Bildschirmauflösungen ermitteln, doch leider find ich keinen Weg das zu bewerkstelligen. Ich habe schon alles ausprobiert, sowie Google bis ins hintereck durchforstet, vergeblich. Ich hoffe jemand von euch weiß Rat und kann mir behilflich sein.

MfG,
Peter86.
 
Lösung:

Code:
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure DEVMODE1
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
        Public dmDeviceName As String
        Public dmSpecVersion As Short
        Public dmDriverVersion As Short
        Public dmSize As Short
        Public dmDriverExtra As Short
        Public dmFields As Integer

        Public dmOrientation As Short
        Public dmPaperSize As Short
        Public dmPaperLength As Short
        Public dmPaperWidth As Short

        Public dmScale As Short
        Public dmCopies As Short
        Public dmDefaultSource As Short
        Public dmPrintQuality As Short
        Public dmColor As Short
        Public dmDuplex As Short
        Public dmYResolution As Short
        Public dmTTOption As Short
        Public dmCollate As Short
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
        Public dmFormName As String
        Public dmLogPixels As Short
        Public dmBitsPerPel As Short
        Public dmPelsWidth As Integer
        Public dmPelsHeight As Integer

        Public dmDisplayFlags As Integer
        Public dmDisplayFrequency As Integer

        Public dmICMMethod As Integer
        Public dmICMIntent As Integer
        Public dmMediaType As Integer
        Public dmDitherType As Integer
        Public dmReserved1 As Integer
        Public dmReserved2 As Integer

        Public dmPanningWidth As Integer
        Public dmPanningHeight As Integer
    End Structure

    <DllImport("user32.dll")> _
    Public Shared Function EnumDisplaySettings(ByVal deviceName As String, ByVal modeNum As Integer, ByRef devMode As DEVMODE1) As Integer
    End Function

    Function GetSupportedResolutions() As List(Of String)
        Dim list1 As New List(Of String)

        Dim lResult As Long
        Dim i As Long
        Dim DevM As New DEVMODE1

        i = 0
        Do
            lResult = EnumDisplaySettings(Nothing, i, DevM)
            If lResult = 0 Then Exit Do
            With DevM
                Dim res As String = .dmPelsWidth & "x" & .dmPelsHeight
                If Not list1.Contains(res) AndAlso .dmBitsPerPel = 32 Then
                    list1.Add(res)
                End If
            End With
            i = i + 1
        Loop

        Return list1
    End Function
 
Zurück