Главная страница
    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.04 c
6-1092061764
Юрий Ж.
2004-08-09 18:29
2004.10.17
idTCPServer/idTCPClient


4-1095240975
xman
2004-09-15 13:36
2004.10.17
HDD


3-1095318686
Мирон
2004-09-16 11:11
2004.10.17
TClientDataSet не обновляет базу при добавлении новой записи


4-1095226248
Konrads
2004-09-15 09:30
2004.10.17
%SystemRoot%


14-1096265624
TUser
2004-09-27 10:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский