Auflösung der Grafikkarte

  • Moin

    Ich habe eine Frage, die ich auch mittels Google- und Forenrechrerchie nicht lösen konnte. Ich versuche, mithilfe von AutoIt alle möglichen Auflösungen, die die Grafikkarte unterstützt in eine Datei zu schreiben. Ich weiß, dass man mit @DesktopHeight und @DesktopWidth die aktuell gesetzte Auflösung herausfindet, aber die Grafikkarte unterstützt ja mehrere Auflösungen.

    Es hilft mir auch nichts, einfach die Auflösungen mittels rechtsklick auf dem Desktop usw. herauszufinden, da ich später ein Programm erstellen möchte, welches auf verschiedenen Rechnern laufen soll, von daher sind die Auflösungen wieder verschieden. 8|

    Ich weiß nicht, ob etwas derartiges möglich ist. Ich hoffe natürlich, dass es geht, und, dass mir jemand helfen kann.

    Grüße

    Enno

    2 Mal editiert, zuletzt von Flachsmeer (15. Oktober 2010 um 01:00)

  • Hi

    ok, ich hab mir das jetzt runtergeladen, aber entweder hab ich das nun übersehen, oder es steht da nirgends. Wenn ich den Teil mit Monitor anzeigen lasse, so bekomme ich ja ein Quellcodestück angezeigt, welches mir ausgeführt Informationen über die Anzeige angibt. Unter anderem auch die aktuelle Auflösung, aber eben nicht die anderen...

    falls es da doch irgendwo steht, wäre es wunderbar, wenn mir jemand beschreiben könnte, wo, oder wenn jemand eben das entsprechende Codesegment schicken könnte.

    MfG

    Enno

  • Video Controller wärs gewesen^^

    Spoiler anzeigen
    [autoit]

    ; Generated by AutoIt Scriptomatic

    [/autoit] [autoit][/autoit] [autoit]

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    [/autoit] [autoit][/autoit] [autoit]

    $Output=""
    $Output = $Output & "Computer: " & $strComputer & @CRLF
    $Output = $Output & "==========================================" & @CRLF
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM CIM_VideoControllerResolution", "WQL", _
    $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit] [autoit][/autoit] [autoit]

    If IsObj($colItems) then
    For $objItem In $colItems
    $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
    $Output = $Output & "Description: " & $objItem.Description & @CRLF
    $Output = $Output & "HorizontalResolution: " & $objItem.HorizontalResolution & @CRLF
    $Output = $Output & "MaxRefreshRate: " & $objItem.MaxRefreshRate & @CRLF
    $Output = $Output & "MinRefreshRate: " & $objItem.MinRefreshRate & @CRLF
    $Output = $Output & "NumberOfColors: " & $objItem.NumberOfColors & @CRLF
    $Output = $Output & "RefreshRate: " & $objItem.RefreshRate & @CRLF
    $Output = $Output & "ScanMode: " & $objItem.ScanMode & @CRLF
    $Output = $Output & "SettingID: " & $objItem.SettingID & @CRLF
    $Output = $Output & "VerticalResolution: " & $objItem.VerticalResolution & @CRLF
    if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
    $Output=""
    Next
    Else
    Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "CIM_VideoControllerResolution" )
    Endif

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • Vielleicht verstehe ich das jetzt falsch, aber muss man sein Programm nicht immer an die eingestellte Auflösung anlehnen?
    Zumindest mache ich das immer so und verwende dabei die schon angesprochenen Makros @DesktopHeight und @DesktopWidth

  • Moin

    vielen tausend dank, damit hab ich es hinbekommen^^
    für gewöhnlich sollte man seine Programme an die eingestellte Auflösung anpassen, aber ich schreibe in einer anderen Sprache (Free Pascal)
    ein Grafisch recht aufwendiges Programm, in dem der Benutzer eine Auflösung einstellen können soll. Dafür muss ich natürlich wissen, welche Auflösungen der PC unterstützt. Dafür benutze ich nun ein zweites Programm (mit AutoIt erstellt) welches aus dem anderen Programm heraus gestartet wird und die Auflösungen in eine Datei schreibt, welche dann wiederum im anderen Programm eingelesen wird.

    klingt jetzt komplizierter, als es in wirklichkeit ist...

    trotzdem noch mal vielen Dank für die Hilfe

    Enno