Sie fragen nach der "vertikalen Synchronisation des Monitors". Bei der vertikalen Synchronisierung handelt es sich um eine Grafikkarteneinstellung, mit der die Bildwiedergaberate an die Aktualisierungsrate des Monitors gebunden wird. Laut NVida "verbessert dies die Bildqualität, indem horizontale Reißerffekte im 3D-Bild eliminiert werden." Möchten Sie wissen, ob die vertikale Synchronisierung aktiviert ist oder ob Sie nach der Aktualisierungsrate des Monitors suchen? Ich weiß nicht, wie die ersteren zu tun, aber Sie können diese auf diese Weise erhalten:
Private Const CCHDEVICENAME = 32
Private Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Long
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32.dll" Alias _
"EnumDisplaySettingsA" (ByVal lpszDeviceName As String, _
ByVal iModeNum As Long, ByRef lpDevMode As DEVMODE) As Long
Private Function GetRefreshRate() As Long
Dim dm As DEVMODE
dm.dmSize = Len(dm)
EnumDisplaySettings vbNullString, ENUM_CURRENT_SETTINGS, dm
GetRefreshRate = dm.dmDisplayFrequency
End Function