как узнать, установлен ли Excel на компьютере?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
forform
Сообщения: 2
Зарегистрирован: 30 мар 2005, 07:21

плз, код процедуры, т.к. вариант, который я нашел, у меня не работает. пишу на Delphi 7
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

1) Посмотреть соответсвующие ветки в реестре
2)
App : Variant;
try
app := CreateOleObject('Excel.Application');
App:=Unassigned;
showmessage('Ексель есть')
except
showmessage('Екселя нет')
end;
diashi
Сообщения: 7
Зарегистрирован: 23 май 2005, 23:02

есть более элегантное решение:
if not IsOLEObjectInstalled('Excel.Application') then
ShowMessage('Класс не зарегистрирован')
else
ShowMessage('Класс найден');

// А вот и сама функция IsOLEObjectInstalled.
// Кстати, можна проверять ею любой обьект поддерживающий ОЛЕ-автоматизацию (Ворд, и другие)

function IsOLEObjectInstalled(Name: String): boolean;
var
ClassID: TCLSID;
Rez : HRESULT;
begin
// Ищем CLSID OLE-объекта
Rez := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID);

if Rez = S_OK then // Объект найден
Result := true
else
Result := false;
end;
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

или в одну строку ;)
Result := CLSIDFromProgID(PWideChar(WideString(Name)), ClassID) = S_OK;
Изображение
Ответить