Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bildschirmfrequenz ermitteln und ändern (https://www.delphipraxis.net/1438-bildschirmfrequenz-ermitteln-und-aendern.html)

Christian 26. Nov 2002 13:10


Bildschirmfrequenz ermitteln und ändern
 
hallo,
mein problem ist, daß wenn ich die bildschirmauflösung auf 1024*768 mit meinem programm setze, springt meine monitorfrequenz auf 60hz. ich habe aber keine ahnung, wie ich diese auch ändern kann.

danke schon mal im vorraus

RomanK 26. Nov 2002 14:47

Bei dem erste Beispiel sollte man die Frequenz auch einstellen können:
http://www.swissdelphicenter.ch/de/showcode.php?id=158

Christian 26. Nov 2002 17:36

danke für deine antwort.

ich kann zwar jetzt die frequenz ändern, aber ich kann sie noch nicht auslesen.

OregonGhost 27. Nov 2002 18:28

Code:
var dm: TDevMode;
...
EnumDisplaySettings(nil, ENUM_CURRENT_SETTINGS, @dm);
Gerade kein Delphi drauf, vielleicht musst du das @ auch weglassen. Statt ENUM_CURRENT_SETTINGS kannst du auch ENUM_REGISTRY_SETTINGS nehmen, dann werden die derzeit für das Gerät gespeicherten Werte genommen (falls der Modus nur temporär geändert ist).

Luckie 27. Nov 2002 20:38

Ich wäre da vorsichtig. Eventuell ust die Frequenz zurückgesprungen, weil dein Monitor bei der Auflösung nicht mehr kann. Und wenn du es dann erzwingst, kann das in die Hose gehen.

OregonGhost 30. Nov 2002 09:37

Aus dem Grund zeigt Windows beim manuellen Ändern der Auflösung ja auch fünfzehn Sekunden lang einen Dialog "Möchten Sie die neue Auflösung beibehalten?" an und schaltet danach die Auflösung zurück, wenn der Benutzer nicht gerade JA angeklickt hat.

Mit EnumDisplaySettings aber kann man, wie der Name suggeriert, wenn der Monitor und die Grafikkarte korrekt installiert sind, sämtliche erlaubten Display-Modi auflisten. Wenn du das machst, kannst du gucken, ob das System die Frequenz bei der Auflösung beherrscht, oder z.B. immer in die höchste erlaubte Frequenz schalten.

Aber wenn das nicht funktioniert, müsste ChangeDisplaySettings() dann nicht DISP_CHANGE_FAILED zurückgeben?

Übrigens: Das mit den 60 Hz ist ein Bug in Windows XP und ich glaube auch in W2K. In XP SP1 ist das glaub ich behoben, ansonsten tut es auch ein Tool à la Refreshlock (das verwende ich zurzeit), weil diese deutlich einfacher (und kostenloser (c; ) als PowerStrip sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz