Ĺadny brzuch
Mam problem. W bibliotece DLL w zdarzeniu OnCreate formy próbuje wyczytać z rejestru czy wartość w danym kluczu (Hkey_Current_user\Software\Microsoft\Windows\CurrentVersion\Run) istnieje. Kompiluje i odpalam program główny. Po odpaleniu wczytują się biblioteki DLL i przy otwieraniu się okna błąd :
"Naruszenie praw dostępu pod adresem (jakieś cyferki) w module "mój_dll.dll". Czytanie adresu 00000008." (mam przetłumaczone komunikaty;) )
Próbowałem w oddzielnej aplikacji sprawdzić to wyskakuje błąd "Zewnętrzny wyjątek (cyferki)" lub ten sam co powyżej. Myślałem że jak dopisze reg.RootKey:=HKEY_CURRENT_USER to będzie OK ale nic to nie zmieniło.
Kod:
uses Registry ... procedure TSettingsForm.OnCreate(Sender : TObject) var reg : TRegistry; begin try reg.Create; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false) ; if reg.ValueExists('MyApp') then showmessage('MyApp jest w autostarcie!') else showmessage('MyApp nie ma w autostarcie') finally reg.Free; end; end;
Obiekty tworzy sie poprzez
reg := TRegistry.Create();
Popraw i sprawdź :)
AAAH !!! Ale głupi błąd, dzięki Ci bardzo! (Debil ze mnie ;P )
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
"Naruszenie praw dostępu pod adresem (jakieś cyferki) w module "mój_dll.dll". Czytanie adresu 00000008." (mam przetłumaczone komunikaty;) )
Próbowałem w oddzielnej aplikacji sprawdzić to wyskakuje błąd "Zewnętrzny wyjątek (cyferki)" lub ten sam co powyżej. Myślałem że jak dopisze reg.RootKey:=HKEY_CURRENT_USER to będzie OK ale nic to nie zmieniło.
Kod:
uses Registry ... procedure TSettingsForm.OnCreate(Sender : TObject) var reg : TRegistry; begin try reg.Create; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false) ; if reg.ValueExists('MyApp') then showmessage('MyApp jest w autostarcie!') else showmessage('MyApp nie ma w autostarcie') finally reg.Free; end; end;
Obiekty tworzy sie poprzez
reg := TRegistry.Create();
Popraw i sprawdź :)
AAAH !!! Ale głupi błąd, dzięki Ci bardzo! (Debil ze mnie ;P )