Wert aus Registry auslesen



  • hi

    ich möchte unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
    den Wert von "Cache" auslesen.

    ich weiß das geht mit RegOpenKeyEx() und RegQueryValueEx() aber ich kriegs nicht hin.... kann mir jemand hinschreiben wie das aussehen muss?

    thx

    mr.xxx



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ 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.



  • HKEY  key;
    TCHAR value[256];
    DWORD size=256;
    LONG  err;
    
    err=RegOpenKeyEx(HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders",0,KEY_READ,&key);
    if(err==ERROR_SUCCESS)
    {
      err=RegQueryValueEx(key,"Cache",0,REG_SZ,value,&size);
      RegCloseKey(key);
    }
    
    if(err!=ERROR_SUCCESS)
    {
      // default-wert in value eintragen
    }
    


  • hmmm... ich habs schon probiert
    aber bei dir kommen dieselben unsinnigen fehler wie bei mir (und zwar in der RegQueryValueEx() funktion):

    : error C2664: 'RegQueryValueExA' : cannot convert parameter 3 from 'const int' to 'unsigned long *'
    
    : error C2664: 'RegQueryValueExA' : cannot convert parameter 5 from 'char [256]' to 'unsigned char *'
    

    😞



  • int SteamDecode() {
      TCHAR cData[255];
        DWORD  StringSize = 255;
        HKEY hKey = NULL;
        if(RegOpenKeyEx(
       HKEY_CURRENT_USER,
       "Software\\Valve\\Steam",
       NULL,
       KEY_QUERY_VALUE,
       &hKey) == ERROR_SUCCESS)
       {
       cout<<"No steam installed on this computer!"<<endl;
       getch();
          return -1;
       }
        if(RegQueryValueEx(hKey,
       "SteamExe",
       NULL,
       NULL,
       (LPBYTE)cData,
       &StringSize) == ERROR_SUCCESS)
       {
          cout<<"Steam Value SteamExe does not exist.";
          getch();
          return -1;
       }
         RegCloseKey(hKey);
    if (strchr(strchr(cData,'/'),'/') != NULL) *strrchr(cData,'/') = '\0';
    cout<<cData<<endl; // Steamfolder, now you can do whatever you want
    
    return 0;
    }
    

    da isn beispiel list steam regkey aus


Anmelden zum Antworten