Как проверить инсталлирован ли MS Word?

Материал из DRKB


uses
  ..., Registry;

function IsMicrosoftWordInstalled: Boolean;
var
  Reg: TRegistry;
  S: string;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_CLASSES_ROOT;
    Result := KeyExists('Word.Application');
    Free;
  end;
end;


ID: 04417



function MSWordIsInstalled: Boolean;
begin
  Result := AppIsInstalled('Word.Application');
end;

function AppIsInstalled(strOLEObject: string): Boolean;
var
  ClassID: TCLSID;
begin
  Result := (CLSIDFromProgID(PWideChar(WideString(strOLEObject)), ClassID) = S_OK)
end;


Source: Взято с Delphi Knowledge Base: http://www.baltsoft.com/
ID: 04418



Как определить установлен ли на компьютере Word, запустить его и загрузить в него текст из программы?

Пример:


var
 MsWord: Variant;
begin
  try
    // Если Word уже запущен
    MsWord := GetActiveOleObject('Word.Application');
    // Взять ссылку на запущенный OLE объект
  except
    try
      // Word не запущен, запустить
      MsWord := CreateOleObject('Word.Application');
      // Создать ссылку на зарегистрированный OLE объект
      MsWord.Visible := True;
    except
      ShowMessage('Не могу запустить Microsoft Word');
      Exit;
    end;
  end;

  MSWord.Documents.Add; // Создать новый документ
  MsWord.Selection.Font.Bold := True; // Установить жирный шрифт
  MsWord.Selection.Font.Size := 12; // установить 12 кегль
  MsWord.Selection.TypeText('Текст');


Source: http://dmitry9.nm.ru/info/
ID: 04419