Refreshrate von 2. Monitoranschluss

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von xChRoNiKx.

    Refreshrate von 2. Monitoranschluss

    hallo zusammen

    ich habe folgenden code um die refreshrate meines displays auszulesen, funktioniert tiptop.
    Wie kann ich die Refreshrate des 2. Monitors auslesen? Hab ziemlich viel probiert, bin aber nicht weitergekommen.
    Es hat vermutlich mit der Zeile: Dim desktop As IntPtr = g.GetHdc(), zu tun....
    Danke für Hilfe
    H.

    Quellcode

    1. Imports System.Runtime.InteropServices
    2. <DllImport("gdi32.dll")>
    3. Private Shared Function GetDeviceCaps(hdc As IntPtr, nIndex As Integer) As Integer
    4. End Function
    5. sub Show_Refreshrate
    6. Dim g As Graphics = Graphics.FromHwnd(IntPtr.Zero)
    7. Dim desktop As IntPtr = g.GetHdc()
    8. Msgbox (GetDeviceCaps(desktop, 116).ToString & " Video Hardware refresh rate Hertz. (FPS).")
    9. End sub
    So funktioniert es bei mir, bekommst du das übersetzt?:

    C#-Quellcode

    1. class Program {
    2. public delegate bool EnumDisplayMonitorsFunc(IntPtr monitor, IntPtr hdcMonitor, IntPtr lprcMonitor, IntPtr dcs);
    3. [DllImport("user32.dll")]
    4. public static extern bool EnumDisplayMonitors(IntPtr hdc, IntPtr lprcClip, EnumDisplayMonitorsFunc lpfnEnum, IntPtr dwData);
    5. [DllImport("gdi32.dll")]
    6. public static extern int GetDeviceCaps(IntPtr hdc, int index);
    7. static void Main(string[] args) {
    8. using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) {
    9. IntPtr desktop = g.GetHdc();
    10. EnumDisplayMonitors(desktop, IntPtr.Zero, (monitor, hdcMonitor, lprcMonitor, dcs) => {
    11. Console.WriteLine(GetDeviceCaps(hdcMonitor, 116) + "Hz");
    12. return true;
    13. }, IntPtr.Zero);
    14. g.ReleaseHdc(desktop);
    15. }
    16. Console.ReadKey();
    17. }
    18. }
    probier auch mal, den selbstgebastelten Delegaten wegzulassen:

    C#-Quellcode

    1. class Program {
    2. [DllImport("user32.dll")]
    3. public static extern bool EnumDisplayMonitors(IntPtr hdc, IntPtr lprcClip, Func<IntPtr, IntPtr, IntPtr, IntPtr, bool> lpfnEnum, IntPtr dwData);
    4. [DllImport("gdi32.dll")]
    5. public static extern int GetDeviceCaps(IntPtr hdc, int index);
    6. static void Main(string[] args) {
    7. using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) {
    8. IntPtr desktop = g.GetHdc();
    9. EnumDisplayMonitors(desktop, IntPtr.Zero, (monitor, hdcMonitor, lprcMonitor, dcs) => {
    10. Console.WriteLine(GetDeviceCaps(hdcMonitor, 116) + "Hz");
    11. return true;
    12. }, IntPtr.Zero);
    13. g.ReleaseHdc(desktop);
    14. }
    15. Console.ReadKey();
    16. }
    17. }