Programmiertip
Vorherige Seite
Zurück zur Übersicht
 - Ende -


Visual Basic & Access (VBA): Monitorparameter II

Wie bekomme ich die aktuelle Bildschirmauflösung und Farbtiefe meines Monitors heraus?

Lösung:


Public Const HORZRES = 8    '  Breite in Pixel

Public Const VERTRES = 10   '  Höhe in Pixel

Public Const BITSPIXEL = 12 '  Anzahl Bits pro Pixel

Public Const PLANES = 14    '  Anzahl Farbebenen

 

Private Declare Function GetDesktopWindow& Lib "user32" ()

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetDeviceCaps Lib "gdi32" _

                (ByVal hDC As Long, ByVal nIndex As Long) As Long

Private Declare Function ReleaseDC Lib "user32" _

                (ByVal hwnd As Long, ByVal hDC As Long) As Long

 

Public Function GetScreenInfo(nIndex As Long) As Long

    Dim DesktophWnd As Long ' Windows - Handle

    Dim hDC As Long ' Device Context

    Dim dummy As Long

    '

    ' Handle für Desktop ermitteln:

    '

    DesktophWnd = GetDesktopWindow()

    '

    ' Device Context ermitteln:

    '

    hDC = GetDC(DesktophWnd)

    '

    ' Info holen:

    '

    GetScreenInfo = GetDeviceCaps(hDC, nIndex)

    '

    ' Device Context freigeben:

    '

    dummy = ReleaseDC(DesktophWnd, hDC)



End Function

Anwendungsbeispiele:
    Debug.Print "Auflösung horizontal: "; GetScreenInfo(HORZRES)

    Debug.Print "Auflösung vertikal: "; GetScreenInfo(VERTRES)

    Debug.Print "Bits pro Pixel: "; GetScreenInfo(BITSPIXEL)

    Debug.Print "Anzahl Farbebenen: "; GetScreenInfo(PLANES)

    Debug.Print "Anz. Farben: "; 2 ^ (GetScreenInfo(PLANES) * GetScreenInfo(BITSPIXEL))

Anmerkung:

Die interne Speicherorganisation ist bei Grafikkarten - je nach Modell - unterschiedlich:

Die Informationen werden in einer oder mehreren Farbebenen gespeichert, wobei für jeden Bildschirmpunkt pro Farbebene eine - je nach Farbtiefe - unterschiedliche Anzahl an Bits verwendet wird.

Die Anzahl der für ein Pixel verwendeten Bits erhält man durch multipilizieren der beiden Werte.

Die gebräuchlichsten Kombinationen sind:

Bezeichnung
Farbebenen
Bits pro Pixel
Anzahl möglicher Farben
  Standard VGA
4
1
  2 ^ (4 *  1) =            16
  Super VGA
1
8
  2 ^ (1 *  8) =           256
  High Color
1
16
  2 ^ (1 * 16) =        65.536
  True Color
1
32
  2 ^ (1 * 32) = 4.294.967.296


Siehe auch:

Tip 6: Wie bekomme ich heraus, wieviele Twips ein Pixel hat?


Vorherige Seite
Zurück zur Übersicht
 - Ende -

© 1999 T. Prötzsch
Erstellt am 31. Mai 1999 / geändert am 01. Juni 1999