Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Registry Key auslesen und als Pfad verwenden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
18.08.2004, 08:34 Uhr
Zero



Hi leute, hab folgendes Problem:


C++:
   String driverkey;

   TRegistry *ati = new TRegistry;
   ati->RootKey = HKEY_LOCAL_MACHINE;
   ati->OpenKey("System" ,false);
   ati->OpenKey("CurrentControlSet",false);
   ati->OpenKey("Services",false);
   value = ati->KeyExists("ati2mtag");


   if (value == false)
  {
   RadioButton14->Enabled = false;
   .
   ..
   .....
   delete ati;
  }

   else
  {


   ati->OpenKey("ati2mtag",false);
   ati->OpenKey("Enum",false);
   driverkey = ati->ReadString("0");


   ati->RootKey = HKEY_LOCAL_MACHINE;
   ati->OpenKey("System" ,false);
   ati->OpenKey("CurrentControlSet",false);
   ati->OpenKey("Enum",false);
   ati->OpenKey(driverkey,false);
   ati->OpenKey("Device Parameters",false);
   driverkey = ati->ReadString("VideoID");
   delete ati;
  }




Warum kann ich keine Keys im Format "bla\bla\blava\" als Registrypfad verwenden ??
Ixch möchte somit immer dynamisch den aktuell verwendeten Grafiktreiber (oder eher gesagt sein Key) holen und verwenden.

Mit driverkey = ati->ReadString("VideoID") möchte ich mir den endgültigen
Schlüssel( {12&455.............} ) holen und verwenden.

Verwendet wird er so:

C++:

   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(driverkey,false);
   mb->OpenKey("0000",false);
   mb->OpenKey("OpenGL",false);
   mb->WriteInteger("OGLWaitVerticalSync",0x00000003);
   delete mb;




aber warum funktioniert das so nicht ?

Dieser Post wurde am 18.08.2004 um 08:52 Uhr von Zero editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.08.2004, 09:54 Uhr
Zero




Zitat von Zero:


Mit driverkey = ati->ReadString("VideoID") möchte ich mir den endgültigen
Schlüssel( {12&455.............} ) holen und verwenden.

[/cpp]




Ich meine den Treiberkey den man unter:

LOCAL_MACHINE
System
CurrentControlSet
Control
Video

finden kann.

Ich vermute das das Problem nur darin liegt das OpenKey("") nicht mit diesem Format umgehen kann: z.B. PCI\blbl\blbl\blbl (String driverkey)

z.B. driverkey = PCI\blbl\blbl\blbl steckt als String in der variable driverkey


oder ist ganz einach ati->OpenKey(driverkey,false) wegen dem string ein Fehler ?


Bitte helft mir, bin doch so dicht am Ziel
Bitte bitte bitte

Dieser Post wurde am 18.08.2004 um 10:39 Uhr von Zero editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.08.2004, 20:11 Uhr
Zero



Hier ist die Lösung:



C++:

   String key1 = "System\\CurrentControlSet\\Services\\ati2mtag\\Enum";
   String key2 = "System\\CurrentControlSet\\Enum\\";


  TRegistry *reg = new TRegistry();
  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;




damit könnt ihr dynamisch jede ATI Catalyst Treiber Version ermitteln.

Dieser Post wurde am 18.08.2004 um 20:13 Uhr von Zero editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: