TRegistry i Vista

0

WItam

Zabrałem sie do pisania prostego tweakera pod windows Vista.
Niestety mam problem. Mianowicie podczas wykonywania prostej procedurki(patrz niżej)
...
REg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('podklucz\test', True);
Reg.WriteInteger('NazwaWartości', 00000001);
finally
Reg.Free;
end;
end;

Wywala Błąd nastepujacej treści:
Project tweak.exe raised exception class ERegistryException with message
'Failed to set data for 'nazwaWartosci'' Process stoped...

Natomiast jezeli zmienie RootKey na HKEY_CURRenT_USER to klucz jest dodawany normalnie i jest ok.
Jak sie zorientowałem wygląda na to ze nie mam uprawnień do edycji tego klucza w rejestrze.
Troche dziwne bo jestem na koncie administratora i jest to jedyne konto na kompie!

NaPisałem juz kiedys tweakera ale pod winXp i nie miałem zadnych kłopotów, teraz niestety jestem skazany na Viste i mam pytanko: W jaki sposób zmienić uprawnienia klucza HKEY_LOCAL_MACHINE tak zebym mógł z powodzeniem wprowadzać wszystkie niezbedne zmiany? jest funkcja 'RegSetKeySecurity' ale niebardzio wiem jak sie posłużyc tą funkcją..:( Prosiłbym o jakieś wskazówki albo przykład bo nie ukrywam ze bardzo mi zalezy na rozwiązaniu tego problemu...

Z góry wielkie Dzieki.... cif :-P

0

Musisz uruchamiać nie z konta administratora, ale z uprawnieniami administratora. Od Visty to już nie jest tożsame.
Kliknij prawym na pliku EXE i wybierz "Uruchom jako administrator", potwierdź dialog UAC i z głowy.
Albo wyłącz UAC
albo przystosuj swój program do działania z nim - jak to zrobić w Delphi nie mam pojęcia.

0

...heh no tak, z tym że podobnie zrobiłem z edytorem rejestru (regedit.exe), uruchomiłem z prawami administratora i nawet ręcznie edytując rejestr wywala komunikat ze nie moge utworzyc klucza... a tak <ort>w ogóle - prostytutka!!! w ogóle!!! czy to takie skomplikowane?!?</ort>to UAC to jest 'Kontrola konta uzytkownika'? bo jezeli tak to mam to wyłączone...

Nie było by problemu <ort>jakby </ort>program który <ort>zaczełem </ort>pisać miał być używany tylko dla przeze mnie , ale przewiduje tez użytkowników końcowych więc potrzebuję rozwiazania z <ort>poziomy </ort>Delphi... :-/

0
cif napisał(a)

...heh no tak, z tym że podobnie zrobiłem z edytorem rejestru (regedit.exe), uruchomiłem z prawami administratora i nawet ręcznie edytując rejestr wywala komunikat ze nie moge utworzyc klucza... a tak <ort>w ogóle - prostytutka!!! w ogóle!!! czy to takie skomplikowane?!?</ort>to UAC to jest 'Kontrola konta uzytkownika'? bo jezeli tak to mam to wyłączone...

Nie było by problemu <ort>jakby </ort>program który <ort>zaczełem </ort>pisać miał być używany tylko dla przeze mnie , ale przewiduje tez użytkowników końcowych więc potrzebuję rozwiazania z <ort>poziomy </ort>Delphi... :-/

Jedyne rozwiązanie WYŁĄCZYĆ UAC. Wtedy możesz usuwać wpisy z rejestru o ile nie są blokowane przez inny program np.: antywirusa.

0

Tak, UAC to "Kontrola konta użytkownika". Nie trzeba wyłączać by móc robić cokolwiek w Rejestrze, wystarczy mieć odpowiednie uprawnienia.

Skądinąd system nie pozwala na dodanie nowych kluczy/wartości bezpośrednio w HKEY_LOCAL_MACHINE, ale już np. w HKLM\SOFTWARE nie ma problemu. Czy jest sens tworzyć wartość HKLM\Podklucz\test?

0
Ktos napisał(a)

Tak, UAC to "Kontrola konta użytkownika". Nie trzeba wyłączać by móc robić cokolwiek w Rejestrze, wystarczy mieć odpowiednie uprawnienia.

Skądinąd system nie pozwala na dodanie nowych kluczy/wartości bezpośrednio w HKEY_LOCAL_MACHINE, ale już np. w HKLM\SOFTWARE nie ma problemu. Czy jest sens tworzyć wartość HKLM\Podklucz\test?

Tworzyć jest sens, ale nie oto chodzi autorowi wątku, lecz MODYFIKOWANIE kluczy w HKLM czego Vista (UAC) zabrania.

I tu pytanie:
Jak te klucze modyfikować, usuwać, czy nawet tworzyć przy włączonej usłudze UAC.

[b]Ktos[/b], potrafisz wytłumaczyć ? To proszę...

0

cos bodajze mam na domowym kompie o UAC. jak bede na nim cos kolo 18 to ci rzuce linka.

0

sorka że tak długo zajęło ale musiałem wpierw tego pdf-a znaleźć w przepastnych czeluściach mojego twardego dysku (a swoją drogą to ciekawe jakim cudem to zapisałem u siebie w ukrytym folderze udostępnionym u mojej zagnieżdżonej maszyny wirtualnej z reactOS-em na pokładzie? wariactwo).

w każdym razie łap - dałem na speedyshare. http://www.speedyshare.com/977136182.html. ostrzegam - po angielsku. po polsku nie znalazłem nic.

0
xc1024 napisał(a)

sorka że tak długo zajęło ale musiałem wpierw tego pdf-a znaleźć w przepastnych czeluściach mojego twardego dysku (a swoją drogą to ciekawe jakim cudem to zapisałem u siebie w ukrytym folderze udostępnionym u mojej zagnieżdżonej maszyny wirtualnej z reactOS-em na pokładzie? wariactwo).

w każdym razie łap - dałem na speedyshare. http://www.speedyshare.com/977136182.html. ostrzegam - po angielsku. po polsku nie znalazłem nic.

W PDF nie ma nic oprócz ramek i napisem czarno-czerwonym CodeGear.

Coś albo źle wysłałeś, albo to u mnie, bo mam Adobe Reader 9.0.0

0

Ok, dzięki nazwie pliku odnalazłem oryginał w sieci.

Wersja PDF: http://www.delphi.org.nz/file.php/1/VistaUACandDelphi.pdf
Wersja HTML: klik

0
CodeZero napisał(a)
Ktos napisał(a)

Tak, UAC to "Kontrola konta użytkownika". Nie trzeba wyłączać by móc robić cokolwiek w Rejestrze, wystarczy mieć odpowiednie uprawnienia.

Skądinąd system nie pozwala na dodanie nowych kluczy/wartości bezpośrednio w HKEY_LOCAL_MACHINE, ale już np. w HKLM\SOFTWARE nie ma problemu. Czy jest sens tworzyć wartość HKLM\Podklucz\test?

Tworzyć jest sens, ale nie oto chodzi autorowi wątku, lecz MODYFIKOWANIE kluczy w HKLM czego Vista (UAC) zabrania.

I tu pytanie:
Jak te klucze modyfikować, usuwać, czy nawet tworzyć przy włączonej usłudze UAC.

[b]Ktos[/b], potrafisz wytłumaczyć ? To proszę...

Mam włączone UAC. Uruchamiam regedit.exe na prawach administratora. Przechodzę do HKLM\SOFTWARE -> nie mam problemu w zmianie, dodaniu i usunięciu wartości oraz kluczy. Jednakże nie mogę stworzyć np. HKLM\MójWłasnyKlucz, bo do HKLM nie mam uprawnień. I chyba nie dotyczy to UAC, bo na koncie administratora UAC mam wyłączone.

0

Dzięki xc1024 ! Na pewno się przyda

0

Jeśli program ma być dla użytkownika zwykłego (bez uprawnień admina), jednak musi korzystać z pewnych zasobów dostępnych jedynie adminowi (np. HKLM) to jest na to sposób. Trzeba utworzyć aplikację serwisową - serwis jest instalowany raz przez admina i działa. Aplikacja kliencka komunikuje się z serwisem, który dostarcza jej odpowiednie zasoby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1