[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

[Windows] RegCreateKeyEx w HKCU na koncie uzytkownika

AnJack

7/27/2007 8:06:00 PM

Witam,
Ma ktos proste rozwiazanie problemu jak utworzyc klucz w rejestrze
WinXP na koncie bez praw admina w HKEY_CURRENT_USER? Mnie sie to nie
udaje. Przewertowalem juz archiwa grup na googlach i nic nie pomaga.
Robie to tak:

char szTaskmanRegKey[] =
"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
DWORD phkResult;
DWORD lpdwDisposition;

RegCreateKeyEx(
HKEY_CURRENT_USER, // handle of an open key
szTaskmanRegKey, // address of subkey name
0, // reserved
NULL, // address of class string
REG_OPTION_NON_VOLATILE, // special options flag
KEY_WRITE, // desired security access
NULL, // address of key security structure
(PHKEY)&phkResult, // address of buffer for opened handle
(LPDWORD)&lpdwDisposition // address of disposition value buffer
);


Pozdrawiam.
4 Answers

ionic

7/27/2007 10:26:00 PM

0

Blad polega na tym, ze szTaskmanRegKey musi byc bezposrednim podkluczem hKey. Trafiles na te same ograniczenia co z folderami -
CreateDirectory nie potrafi utworzyc a\b\c\d w c: jesli c:\a\b\c nie istnieje.
"The subkey specified must be a subkey of the key identified by the hKey parameter".

Rozwiazanie: stworz klucz HKEY_CURRENT_USER\Software i w petli dopisuj i tworz kolejne podklucze, jesli koniecznie chcesz utworzyc
ten klucz.

RegOpenKey otworzy klucz z takimi parametrami jakie podales, ale nie utworzy klucza jesli takowy nie istnieje.


AnJack

7/28/2007 9:12:00 AM

0



ionic napisa3(a):
>
> Blad polega na tym, ze szTaskmanRegKey musi byc bezposrednim podkluczem hKey. Trafiles na te same ograniczenia co z folderami -
> CreateDirectory nie potrafi utworzyc a\b\c\d w c: jesli c:\a\b\c nie istnieje.
> "The subkey specified must be a subkey of the key identified by the hKey parameter".
>
> Rozwiazanie: stworz klucz HKEY_CURRENT_USER\Software i w petli dopisuj i tworz kolejne podklucze, jesli koniecznie chcesz utworzyc
> ten klucz.

Ale ten klucz istnieje! Dopisywac ma sie tylko System. Podobno
zwykly uzytkownik po prostu nie ma praw dostepu do Policies.

Pozdrawiam.

ionic

7/28/2007 1:22:00 PM

0

Chyba mnie nie zrozumiales. RegCreateKey akceptuje tylko jeden poziom podkluczy (ma tak krotka reke, ze siega tylko do najblizszej
galezi), backshash jest interpretowany jako litera nazwy klucza, zamiast podklucz, zatem "xx\yy" jest interpretowane nie jako
podklucz podklucza, tylko jako podklucz o dokladnie takiej nazwie. Czyli nie mozesz uzyc Policies\\System, tylko samo System, a
Policies musisz wczesniej otworzyc - RegOpen* lub RegCreate* - i ten uchwyt wstawic zamiast HKEY_CURRENT_USER.

vy 73!



Bronek Kozicki

7/29/2007 12:43:00 PM

0

ionic <ionic@gazeta.pl> wrote:
> mozesz uzyc Policies\\System, tylko samo System, a Policies musisz
> wczesniej otworzyc - RegOpen* lub RegCreate* - i ten uchwyt wstawic
> zamiast HKEY_CURRENT_USER.

spróbuj to sam zrobia w regedit i wtedy zrozumiesz w czym problem.


B.