Skocz do zawartości

Recommended Posts

Napisano
bool odczytaj_wartosc_ciag_(HKEY glowny_klucz, //nazwa klucza glownego
                                      LPCTSTR adres_klucza, // nazwa podklucza
                                          LPCTSTR nazwa_wartosci, // nazwa wartosci ktora chcemy odczytac
                                          LPCTSTR sprawdzana_wartosc
                                          )
{
// Funkcja odopwiedzialna jest za srprawdzenie czy podana wartosc w kluczu istnieje
char buffer[1024];
LPCTSTR koncowy;
HKEY hKey;
if(RegOpenKeyEx(glowny_klucz,adres_klucza,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)
{
       
        DWORD dwSize;
                dwSize = sizeof(buffer);
        RegQueryValueEx(hKey,nazwa_wartosci,NULL,NULL,reinterpret_cast<BYTE *>(&buffer),&dwSize);
                koncowy = buffer;
                RegCloseKey(hKey);
                if (koncowy == sprawdzana_wartosc)
                {
                        return true;
                }
                else
                {
                        return false;
                }
}

} // koniec odczytaj_watosc

Kto wie co jest nie tak
pisze w DevC++ Błędu mi zadnego nie wywala ale cos jest nie tak fo mi nie dziala :)

Napisano
bool odczytaj_wartosc_ciag_(HKEY glowny_klucz, 
                  LPCTSTR adres_klucza, 
                 LPCTSTR nazwa_wartosci, 
                 LPCTSTR sprawdzana_wartosc 
                 ) 
{ 
char buffer[1024]; 
bool takie_same = false ;
char koncowy [1024] ; 
HKEY hKey; 
if(RegOpenKeyEx(glowny_klucz,adres_klucza,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS) 
{ 
        
        DWORD dwSize; 
      dwSize = sizeof(buffer); 
        RegQueryValueEx(hKey,nazwa_wartosci,NULL,NULL,reinterpret_cast<BYTE *>(&buffer),&dwSize); 
      
      strcpy(koncowy, buffer) ; 
      RegCloseKey(hKey); 
      
      int koncowy_len = strlen(koncowy) ;
      int spr_len = strlen(sprawdzana_wartosc) ;
      
      takie_same = true ;
      if(koncowy_len == spr_len)
      {
          for(int i = 0 ; i < spr_len ; i++)
          {
              if(koncowy[i] != sprawdzana_wartosc[i])
              {
                  takie_same = false ;
                  break ;
              }    
          }    
      }  
      else
      {
          takie_same = false ;
      }      
} 
return takie_same ;
} 

Skompilowałem program z tą funkcją co widzisz i działa...
Najpierw funkcja sprawdza długość dwóch łańcuchów, a potem (jeśli są równe) sprawdza czy ich wartości są takie same... ;)

Pozdro

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...