Bildschirmauflösung ändern

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    Wahrscheinlich kommt gleich, das ist C# ich brauch aber VB.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Hier hast dus. Du brauchst nur die ChangeDisplayResolution-Methode aufzurufen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. <DllImport("user32.dll")>
    3. Public Shared Function EnumDisplaySettings(deviceName As String, modeNum As Integer, ByRef devMode As DEVMODE) As Integer
    4. End Function
    5. <DllImport("user32.dll")>
    6. Public Shared Function ChangeDisplaySettings(ByRef devMode As DEVMODE, flags As Integer) As Integer
    7. End Function
    8. Public Const ENUM_CURRENT_SETTINGS = -1
    9. Public Const CDS_UPDATEREGISTRY = &H1
    10. Public Sub ChangeDisplayResolution(width As Integer, height As Integer)
    11. Dim dm As DEVMODE
    12. dm.dmDeviceName = New String(New Char(31) {})
    13. dm.dmFormName = New String(New Char(31) {})
    14. dm.dmSize = Convert.ToInt16(Marshal.SizeOf(dm))
    15. EnumDisplaySettings(Nothing, ENUM_CURRENT_SETTINGS, dm)
    16. dm.dmPelsWidth = width
    17. dm.dmPelsHeight = height
    18. ChangeDisplaySettings(dm, CDS_UPDATEREGISTRY)
    19. End Sub
    20. End Class
    21. <StructLayout(LayoutKind.Sequential)> _
    22. Public Structure DEVMODE
    23. Public Const CCHDEVICENAME As Integer = 32
    24. Public Const CCHFORMNAME As Integer = 32
    25. <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCHDEVICENAME)> _
    26. Public dmDeviceName As String
    27. Public dmSpecVersion As Short
    28. Public dmDriverVersion As Short
    29. Public dmSize As Short
    30. Public dmDriverExtra As Short
    31. Public dmFields As DM
    32. Public dmOrientation As Short
    33. Public dmPaperSize As Short
    34. Public dmPaperLength As Short
    35. Public dmPaperWidth As Short
    36. Public dmScale As Short
    37. Public dmCopies As Short
    38. Public dmDefaultSource As Short
    39. Public dmPrintQuality As Short
    40. Public dmColor As Short
    41. Public dmDuplex As Short
    42. Public dmYResolution As Short
    43. Public dmTTOption As Short
    44. Public dmCollate As Short
    45. <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCHFORMNAME)> _
    46. Public dmFormName As String
    47. Public dmLogPixels As Short
    48. Public dmBitsPerPel As Integer
    49. Public dmPelsWidth As Integer
    50. Public dmPelsHeight As Integer
    51. Public dmDisplayFlags As Integer
    52. Public dmDisplayFrequency As Integer
    53. Public dmICMMethod As Integer
    54. Public dmICMIntent As Integer
    55. Public dmMediaType As Integer
    56. Public dmDitherType As Integer
    57. Public dmReserved1 As Integer
    58. Public dmReserved2 As Integer
    59. Public dmPanningWidth As Integer
    60. Public dmPanningHeight As Integer
    61. Public dmPositionX As Integer
    62. Public dmPositionY As Integer
    63. End Structure
    64. <Flags()> _
    65. Enum DM As Integer
    66. Orientation = &H1
    67. PaperSize = &H2
    68. PaperLength = &H4
    69. PaperWidth = &H8
    70. Scale = &H10
    71. Position = &H20
    72. NUP = &H40
    73. DisplayOrientation = &H80
    74. Copies = &H100
    75. DefaultSource = &H200
    76. PrintQuality = &H400
    77. Color = &H800
    78. Duplex = &H1000
    79. YResolution = &H2000
    80. TTOption = &H4000
    81. Collate = &H8000
    82. FormName = &H10000
    83. LogPixels = &H20000
    84. BitsPerPixel = &H40000
    85. PelsWidth = &H80000
    86. PelsHeight = &H100000
    87. DisplayFlags = &H200000
    88. DisplayFrequency = &H400000
    89. ICMMethod = &H800000
    90. ICMIntent = &H1000000
    91. MediaType = &H2000000
    92. DitherType = &H4000000
    93. PanningWidth = &H8000000
    94. PanningHeight = &H10000000
    95. DisplayFixedOutput = &H20000000
    96. End Enum


    Ich übernehme keine Gewähr dafür, dass das funktioniert, ich hab den Code selber nur kopiert.

    VisualBasicer schrieb:

    Ich glaub ich weiß jetzt was ich machen muss.
    Wie oft willst Du denn die Bildschirmauflösung ändern, dass Du ein Programm dafür schreibst?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Irgendwie hört sich das so an als ob die Windows Einstellung die Auflösung nicht anbietet und deswegen möchte er ein Prog schreiben welches sie umstellt. Fakt is aber wenn die Auflösung nicht utnerstützt wird, kannst sie auch nicht ändern, z.B. bei falschen Grafikkartentreiber oder so. In den Windowseinstellungen ließt Windows die verfügbaren Auflösungen aus und bietet sie dir als Slider oder Auswahl an.