Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

Поиск файла в реестре   Найти похожие ветки 

 
BRemB   (2004-09-14 10:44) [0]

Здравствуйте, Мастера! У меня така задача, мне необходимо найти путь к файлу на диске, он прописан в реестре. Так вот, как зная имя файла и ключ в реестре, найти путь к файлу на диске?


 
begin...end ©   (2004-09-14 21:22) [1]

Или я чего-то не понял, или всё очень просто.

var
 Reg: TRegistry;
 FileName: String;  // Имя файла, которое тебе известно (как я понял)
 FilePath: String;  // Путь к файлу (полное имя), который тебе нужно получить
 KeyName: String;   // Имя ключа, который тебе известен (как я понял)
 List: TStringList; // Список названий параметров в ключе
 I: Integer;

begin
 ...
 Reg := TRegistry.Create;
 List := TStringList.Create;
 try
   // Корень
   Reg.RootKey := HKEY_CURRENT_USER; // или HKEY_LOCAL_MACHINE, или...
   // Ключ
   if Reg.OpenKey(KeyName, False) then
   begin
     // Для данного ключа получаем список параметров, находящихся в нём
     Reg.GetValueNames(List);
     for I := 0 to List.Count - 1 do
       if Reg.GetDataType(List[I]) = rdString then
         if Pos(FileName, List[I]) > 0 then
         // Надо подумать над проверкой: просто Pos тут может и не подойти, тебе виднее
         begin
           FilePath := List[I];
           Break;
         end;
   end;
 finally
   Reg.Free;
   List.Free;
 end;
end.


P.S. Не проверял.


 
begin...end ©   (2004-09-14 21:28) [2]

Ой, извиняюсь.

Вместо

if Pos(FileName, List[I]) > 0 then

нужно:

if Pos(FileName, Reg.ReadString(List[I])) > 0.

Соответственно, вместо

FilePath := List[I];

нужно

FilePath := Reg.ReadString(List[I]);

Ну или сначала читаем в переменную, а потом уже это. Ну, ты понял, в общем :-)


 
BRemB   (2004-09-15 08:20) [3]

Спасибо, все работает!!!



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.037 c
8-1090082002
Ale}{(is)
2004-07-17 20:33
2004.10.17
мне привести 24-битное изображение к 8-битному...


14-1096523785
крот
2004-09-30 09:56
2004.10.17
Кто знает как сосдавать клонов в РПГ играх


14-1095943257
Igorek
2004-09-23 16:40
2004.10.17
Генератор патчей


11-1081657971
Delphi5.01
2004-04-11 08:32
2004.10.17
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELE


1-1096808711
M-Alex
2004-10-03 17:05
2004.10.17
Почему это не работает?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский