Api "EnumDisplayDevice"
-
Wie verwende ich die Api Funktion "EnumDisplayDevice". Bin über Tuts oder infos sehr dankbar !
-
Ist dir noch nicht aufgefallen, dass wir hier über ein spezielles WinAPI-Forum verfügen?
Dahin geht jetzt die Reise.
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum Borland C++ Builder (VCL/CLX) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Du meinst sicher EnumDisplayDevices

Zur Verwendung: einfach in einer while-Schleife Aufrufen und jeweils iDevNum erhöhen, bis FALSE zurückgeliefert wird
-
Danke, das ist ja in der Hilfe sehr gut erklärt.
Weiß jemand wie ich diesen Api call verwende um z.B den aktuell genutzten Registry Key des Grafik Treibers zu ermitteln ?
Ich glaube dazu verwendet man EnumDisplaySettings" aber die Hilfe ist etwas dürftig
-
Was für einen Registry-Key willst du ermitteln - und wozu überhaupt?
Und was ist dir bei der Verwendung unklar?! Du übergibst einfach den Device-Name (den du von EnumDisplayDevices hast) oder NULL, dann ENUM_CURRENT_SETTINGS bzw. ENUM_REGISTRY_SETTINGS (je nach dem, was für Infos du haben willst) bzw. wieder einen Zähler (wenn du die verschiedenen verfügbaren Modi auslesen willst), und dann noch einen Pointer auf eine DEVMODE-Struktur, in der du dann nachher die Einstellungen stehen hast
-
Mein Problem ist das ich auf die OpengL Registry Settings des ATI Catalyst zugreifen muss und ein weiteres Problem ist das sich der schlüssel von Version zu Version ändert, habe es bisher immer wie folgt gemacht:
String key1 = "System\\CurrentControlSet\\Services\\ati2mtag\\Enum"; String key2 = "System\\CurrentControlSet\\Enum\\"; TRegistry *reg = new TRegistry(); //Catalyst GUID ermitteln reg->RootKey = HKEY_LOCAL_MACHINE; if(reg->OpenKey(key1, false)) { key2 += reg->ReadString("0") + "\\Device Parameters"; reg->CloseKey(); if(reg->OpenKey(key2, false)) driverpath = reg->ReadString("VideoID"); } delete reg; //Dann in Pfad springen mit ermittelter GUID: // 2 AA if (globalstate == true) { if (Sound == false) PlaySound("Sound\\click.wav",NULL, SND_FILENAME | SND_ASYNC); TRegistry *mb = new TRegistry; mb->RootKey = HKEY_LOCAL_MACHINE; mb->OpenKey("System" ,false); mb->OpenKey("CurrentControlSet",false); mb->OpenKey("Control",false); mb->OpenKey("Video",false); mb->OpenKey(driverpath,false); mb->OpenKey("0000",false); if (mb->ValueExists("OGLFullSceneAAScale")) mb->WriteInteger("OGLFullSceneAAScale",0x00000002); if(mb->ValueExists("OGLSmoothPref")) mb->WriteInteger("OGLSmoothPref",0x00000000); if(mb->ValueExists("OGLAliasSlider")) mb->WriteInteger("OGLAliasSlider",0x00000001); if (mb->ValueExists("OGLCustomSettings")) mb->WriteInteger("OGLCustomSettings",0x00000001);Das Problem ist das dieser code nur bei aktuellen Catalyst Treiber funktioniert und nicht bei älteren. Ich dachte mir das es auch einfacher geht. Den Tip die Winapi zu benutzen habe ich vom ober Guru das Rivatuner, Quelltext wollte er mir leider nicht zeigen

Ich muss erzwingen das er immer der aktuell verwendeten Schlüssel des Catlyst Treibers verwnedet wird damit die config auch funktioniert.
-
@ jansen Nein ist mir noch nicht aufgefallen da ich mich ausschliesslich im BCB Forum rumtreibe. Ich denke jetzt weiß ich es aber

-
Keine Ahnung - evtl. ist ati2mtag der DeviceName, den du über EnumDisplayDevices bekommst

-
Der Device Name ist nebensache, es ist viel wichtiger den aktuell verwendeten Treiber zu ermitteln.
Habe eben einen neuen interessanten Key gefunden der wahrscheinlich das Problem schnell lösen kann:
LOCAL_MACHINE\Software\ATI Technologies\CDS\0000\0\Driver und dann den Wert "Driver Key". Das einzigste was mich irgendwie irritiert ist das man an jeder Ecke in der Registry ähnliche Einträge zum Catalyst findet. Irgendwie muss doch der vom System benutze Key zu ermitteln sein. Bin echt kurz vorm durchdrehen, zuvor war jedes Problem irgendwie zu lösen, hier ist echt alles verloren. Das ist so ein ärger wenn man Einstellungen machen will und findet 50000 ATI Keys mit den gleichen Values
.