Форум: "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