Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

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

 
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 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
3-1095764757
stud
2004-09-21 15:05
2004.10.17
вопрос по событиям в interbase


6-1092032506
fylhtq
2004-08-09 10:21
2004.10.17
А кавк програмно подключить сетевой ресурс?


4-1094789374
Fynjy1984
2004-09-10 08:09
2004.10.17
ShellExecute и Excel евский шаблон


14-1096101166
Lenor
2004-09-25 12:32
2004.10.17
как узнать, кем...


1-1096546471
HydraMarat
2004-09-30 16:14
2004.10.17
Согласование больших и средних int ов