Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Установлен ли MSOffice 2010? [D5]


MS_Office ©   (2016-02-09 11:15:00) 

На компьютере с Windos 7 установлен MSOffice 2010.
код
Reg := TRegistry.Create;
with Reg do
 begin
  RootKey := HKEY_CLASSES_ROOT;
  Result := KeyExists('Word.Application');
  Free;
 end;

работающий на WinXP с MSOffice 2003, на Win 7 и  MSOffice 2010 не отрабатывает (Result = False)
Подскажите каким образом можно определить установлены ли, в частности, Word, Excell, Access
Спасибо


sniknik   (2016-02-09 15:25:00) [1]

> просто организовал (без регистрации) вызовы MSOffice 2010 приложений.
а, так это считай не установлено.


MS_Office   (2016-02-09 14:09:00) [2]

Спасибо.
Этот код дал такой же результат (отрицательный).
Детали:
Проблема возникала на Win7 начальная, где я не активировал MSOffice 2010, а пальцами (для непрофессиональных юзеров) просто организовал (без регистрации) вызовы MSOffice 2010 приложений.
На компьютерах Win7 и выше с официально (легально) установленным MSOffice 2010 проблема не проявляется.
Еще раз спасибо


sniknik   (2016-02-09 11:38:00) [3]

доступа нет скорее всего... вот запусти свою прогу от администратора.

но вообще вот так должно работать и на win7 -

procedure TForm1.Button3Click(Sender: TObject);

 function isOLEInstalled(Name: WideString): boolean;
 var
   ClassID: TCLSID;
 begin
   result:= CLSIDFromProgID(PWideChar(Name), ClassID) = S_OK;
 end;

begin
 if isOLEInstalled('Word.Application')
   then ShowMessage('Установлен')
   else ShowMessage('Не установлен');
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо