«Есть ли причина, по которой это не сработает»
Да, отдельные продукты могут создавать запись Software\Office\#.0
, вы должны проверить наличие ключа Word
в ключе конкретной версии. Даже тогда, например «Word Viewer», возможно, создал подраздел Word, который не будет выполнять слияние почты. Если вы действительно хотите пойти с реестром, лучше поищите ключи Word.Application
в HKEY_CLASSES_ROOT. Помимо клавиш Word.Application.#
сама клавиша Word.Application
имеет подраздел CurVer
.
(Ранее я предлагал следующее, но, думаю, комментарий Фокса к этому вопросу намного лучше.)
Я бы напрямую попытался создать объект автоматизации, если он не работает, то эта версия недоступна, откат к более низкой версии. Или что как:
function IsWord14: Boolean;
begin
Result := True;
try
CreateOleObject('Word.Application.14');
except on E:EOleSysError do
if E.ErrorCode = HRESULT($800401F3) then // invalid class string
Result := False
else
raise;
end;
end;