Ĺadny brzuch
Czy ktoś wie, co w tym kodzie jest nieprawidłowego?
TRegistry *Rejestr = new TRegistry;
TStrings *s;
Rejestr->RootKey = HKEY_CURRENT_USER;
Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False);
Rejestr->GetValueNames(s);
Rejestr->CloseKey();
delete Rejestr;
cytat:piepik napisał:
Czy ktoś wie, co w tym kodzie jest nieprawidłowego?
TRegistry *Rejestr = new TRegistry;
TStrings *s;
Rejestr->RootKey = HKEY_CURRENT_USER;
Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False);
Rejestr->GetValueNames(s);
Rejestr->CloseKey();
delete Rejestr;
Sadze ze blad jest w drugiej linijce tego kodu.
Na co wskazuje *s ?
Moze na dowolne miejsce w pamieci w ktorym moga byc jakies wazne dane ktorych nie mozna nadpisac, a moze na cos innego.
Zamiast:
TStrings *s;
wpisz:
TStrings s[100];
lub:
TStrings *s = new TStrings;
dwie sprawy ;]
uzyj zamiast TStrings TStringList i nie zapominaj ze w c++ znak sluzy do wprowadzania znakow specjalnych ;)
TRegistry *Rejestr = new TRegistry; TStringList *list = new TStringList; Rejestr->RootKey = HKEY_CURRENT_USER; Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False); Rejestr->GetValueNames(list); Rejestr->CloseKey(); //... ShowMessage(list->Text); delete list; delete Rejestr;
pozdrawiam
pepsi^no1
Niewiem czy to jest dobrze bo nie chciało mi się sprawdzać ale to powinno być tak:
TRegistry& Rejestr = *new TRegistry();
Rejestr.RootKey = HKEY_CURRENT_USER;
Rejestr.OpenKey("SoftwareMicrosoftWindowsCurrent...", false);
Rejestr.WriteString("Nazwa klucza", "wartość"); //tak się dodaje klucz
delete &Rejestr;
Dzięki Pepsi, co ja bym bez ciebie zrobił, a raczej czego bym nie zrobił:)
heh spox :]
btw. przydaloby sie poprawic skrypty forum bo zzera backslashe :]
pozdrawiam
pepsi^no1
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
TRegistry *Rejestr = new TRegistry;
TStrings *s;
Rejestr->RootKey = HKEY_CURRENT_USER;
Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False);
Rejestr->GetValueNames(s);
Rejestr->CloseKey();
delete Rejestr;
cytat:piepik napisał:
Czy ktoś wie, co w tym kodzie jest nieprawidłowego?
TRegistry *Rejestr = new TRegistry;
TStrings *s;
Rejestr->RootKey = HKEY_CURRENT_USER;
Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False);
Rejestr->GetValueNames(s);
Rejestr->CloseKey();
delete Rejestr;
Sadze ze blad jest w drugiej linijce tego kodu.
Na co wskazuje *s ?
Moze na dowolne miejsce w pamieci w ktorym moga byc jakies wazne dane ktorych nie mozna nadpisac, a moze na cos innego.
Zamiast:
TStrings *s;
wpisz:
TStrings s[100];
lub:
TStrings *s = new TStrings;
dwie sprawy ;]
uzyj zamiast TStrings TStringList i nie zapominaj ze w c++ znak sluzy do wprowadzania znakow specjalnych ;)
TRegistry *Rejestr = new TRegistry; TStringList *list = new TStringList; Rejestr->RootKey = HKEY_CURRENT_USER; Rejestr->OpenKey("SoftwareMicrosoftWindowsCurrentVersionRun", False); Rejestr->GetValueNames(list); Rejestr->CloseKey(); //... ShowMessage(list->Text); delete list; delete Rejestr;
pozdrawiam
pepsi^no1
Niewiem czy to jest dobrze bo nie chciało mi się sprawdzać ale to powinno być tak:
TRegistry& Rejestr = *new TRegistry();
Rejestr.RootKey = HKEY_CURRENT_USER;
Rejestr.OpenKey("SoftwareMicrosoftWindowsCurrent...", false);
Rejestr.WriteString("Nazwa klucza", "wartość"); //tak się dodaje klucz
delete &Rejestr;
Dzięki Pepsi, co ja bym bez ciebie zrobił, a raczej czego bym nie zrobił:)
heh spox :]
btw. przydaloby sie poprawic skrypty forum bo zzera backslashe :]
pozdrawiam
pepsi^no1