Я могу успешно запросить значение известного ключа, используя приведенный ниже код. Как я могу рекурсивно искать подразделы (в моем примере ниже, все подразделы в папке Uninstall) для определенного значения данных? Моя цель - проверить, установлена ли какая-либо конкретная программа, а если нет, установите ее.Рекурсивно поиск в реестре
function
...(omitted)
var
Res : String;
begin
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{92EA4162-10D1-418A-91E1-5A0453131A38}','DisplayName', Res);
if Res <> 'A Value' then
begin
// Successfully read the value
MsgBox('Success: ' + Res, mbInformation, MB_OK);
end
end;
Tlama дал вам ответ, но приложения обычно используют фиксированные идентификаторы, может быть, изменяясь при обновлении основной версии. Не должно быть необходимости перечислять их, чтобы найти одно приложение. – Deanna
Это хороший момент, и это вопрос, который я все еще имел. Я заметил, что приложение, которое я искал, имело один и тот же идентификатор GUID на нескольких компьютерах и установках, но поскольку я не совсем понял, как * приложения получают помеченные в реестре, я выбрал надежный, но дорогостоящий маршрут. – jdhurst