Имя: Пароль:
LIFE
 
OFF: RegCreateKeyEx создает ключ в HKEY_CLASSES_ROOT вместо HKEY_CURRENT_USER
,
0 H A D G E H O G s
 
24.10.12
18:47
Вечер добрый.
Сломал мозг себе.
Delphi 2010, объект TRegistry

Тупо:
 Reg:=TRegistry.Create;
 Reg.RootKey:=HKEY_CURRENT_USER;
 if not Reg.OpenKey('Software\Classes\'+ProgIDReal,true) then
     exit;
 Reg.WriteString('',ClassName);
 Reg.CloseKey();
пишет в ветку HKEY_CLASSES_ROOT вместо HKEY_CURRENT_USER
1 Aswed
 
24.10.12
18:48
Ну ты загнул, под конец то дня!
2 Гинзбург
 
24.10.12
18:48
HKCU/software/classes == HKCR
3 vde69
 
24.10.12
18:49
под какими правами запускаешь?
4 H A D G E H O G s
 
24.10.12
18:49
В типовом
TRegistry
запись делается строкой
Result := CheckResult(RegCreateKeyEx(GetBaseKey(Relative), PChar(S), 0, nil,
     REG_OPTION_NON_VOLATILE, FAccess, nil, TempKey, @Disposition));

(GetBaseKey(Relative) возвращает 2147483649, все норм...
5 Гинзбург
 
24.10.12
18:50
покуям
6 H A D G E H O G s
 
24.10.12
18:50
А пишет все равно в Классес.

Уж не вирусня ли у меня?
7 H A D G E H O G s
 
24.10.12
18:50
(2) ТОЕСТЬ?
8 H A D G E H O G s
 
24.10.12
18:51
(2) Жесть какая-то.
9 Гинзбург
 
24.10.12
18:52
(7) HKCR - это не ветка, это оптический обман зрения (не стеб)
10 H A D G E H O G s
 
24.10.12
18:52
Нука, счаст под юзером запишу.

Мне ComОбъект зарегать из под юзера, всего то делов.
11 Гинзбург
 
24.10.12
18:52
(10) регь
12 Гинзбург
 
24.10.12
18:53
правильнее так

HKCU/software/classes Э HKCR
13 vde69
 
24.10.12
18:54
кстати Native не требует регистрации в реестре
14 H A D G E H O G s
 
24.10.12
18:55
(13) У меня не ВК.
15 Гинзбург
 
24.10.12
18:57
если чо еще существует замечательное NTRegistry - куй избавитесь без подпрыгивания
16 H A D G E H O G s
 
24.10.12
19:10
Все стало понятно.
Будь прокляты разработчики документации, 2 часа убил на эту херню.
17 H A D G E H O G s
 
24.10.12
19:10
(15) Спасибо тебе.
18 H A D G E H O G s
 
24.10.12
22:26
Иногда они возвращаются...
19 H A D G E H O G s
 
24.10.12
22:28
Олег Валентинович, еще вопрос.

А в Win64x когда я пишу тупо в
'Software\Classes\CLSID\'

оно само чтоли в

Software\Classes\Wow6432Node\CLSID\

попадает?

Опять оптический обман и мне не надо было с версиями винды морочится?
20 Американец
 
25.10.12
06:44
(2) >>HKCU/software/classes == HKCR
Точне, HKCR - это суперпозиция HKCU/software/classes и HKLM/software/classes
21 Американец
 
25.10.12
06:46
(19) Почитай про registry redirection на 64-битных системах.
22 H A D G E H O G s
 
25.10.12
11:39
(21) Ясно, спасибо.