Форум: "WinAPI";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизРазница в написании - доступ к Реестру. Найти похожие ветки
← →
Bers (2003-11-24 11:14) [0]Доброго времени суток!
Уважаемые Мастера, подскажите, если кто знает:
при использованииTRegistry.KeyExists
ключи находятся во всех ветках реестра, а если пользоватьсяRegOpenKeyEx
с параметрами доступа:
STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS
(Теже что используются в KeyExists (registry.pas)), то успешный поиск идет только по ветке реестраHKEY_CLASSES_ROOT
а во всех остальных случаях возвращается значение 161. Почему так?
Заранее благодарен!
С Уважением, Андрей.
← →
clickmaker (2003-11-24 11:41) [1]161 - это типа неверный путь. Код поиска приведи, может понятней будет
← →
Bers (2003-11-24 11:53) [2]Что-то типа:
SRoot, Key - читается из файла(строка)
var Root:HKEY;
if SRoot="HKCR" then Root:=HKEY_CLASSES_ROOT;
if SRoot="HKCU" then Root:=HKEY_CURRENT_USER;
if SRoot="HKLM" then Root:=HKEY_LOCAL_MACHINE;
if SRoot="HKUS" then Root:=HKEY_USERS;
if SRoot="HKCC" then Root:=HKEY_CURRENT_CONFIG;
if (Root<=0) OR (Key="") then
begin
result:=False;
exit;
end;
tmpres:=FALSE;
Err:=0;
MK:=0;
Err:=RegOpenKeyEx(Root,PChar(Key),0,
STANDARD_RIGHTS_READ or
KEY_QUERY_VALUE or
KEY_ENUMERATE_SUB_KEYS,
MK);
if Err=ERROR_SUCCESS
then begin ... end
else begin ... end;
Есть соображения?
С Уважением, Андрей.
← →
clickmaker (2003-11-24 12:14) [3]Попробуй указать одну KEY_READ в качестве доступа
← →
Bers (2003-11-24 12:32) [4]Нет я разобрался, бага не в этом была: просто в параметре Key у меня был указан первый символ "\" так как я в KeyExists указывал, а его там быть не должно!
Правда непонятно почему тогда работало с HKCR?????? :( нда загадочное ето дело - программирование :).
Все равно всем спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c