• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Не открывается файл Powerpoint

  • Автор темы Mick Winder
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

Mick Winder

Написал такой кодик:
App.Presentations.Open('E:\TablToPwPt\test.ppt');
Выдает сообщение об ошибке:
Presentations.Open: Invalid request The PowerPoint Frame windows does not exist
Не могу понять, в чём дело? Посмотрел в TLB, вроде всё правильно...
Вот так и спотыкаюсь на каждой фигне...
 
B

Barmutik

Всё чудно работает именно в таком формате! Только что попробовал!

App.Presentations.Open('xxx', EmptyParam, EmptyParam, EmptyParam);
 
M

Mick Winder

Счастливый... (завистливо вздыхая...)
Написал такой код:
Код:
unit ComObj, ActiveX;

var
Form1: TForm1;
ServerIsRunning: Boolean;
Unknown:     IUnknown;
Result:     HResult;
AppProgID:    String;
App: Variant;
FilePr: String;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Открытие файла PowerPoint
AppProgID:= 'PowerPoint.Application';
ServerIsRunning:= False;
Result:= GetActiveObject(ProgIDToClassID(AppProgID), nil, Unknown);
if (Result = MK_E_UNAVAILABLE) then
App:= CreateOleObject(AppProgID)
else begin
App:= GetActiveOleObject(AppProgID);
ServerIsRunning:= True;
end;
//----------------------------------------------------------
FilePr:= 'E:\Presentation1.ppt';
App.Presentations.Open(FilePr, EmptyParam, EmptyParam, EmptyParam);
//----------------------------------------------------------
App.Visible:= True;
end;
Всё как ты посоветовал... Вызывает ошибку "Type mismatch".
 
B

Barmutik

Нууу.. что я тут могу сказать .. у меня аналогично и работает...Система: Windows XP SP1, Office.10 ...

Ну сейчас пойду на 2000 оффисе проверю ...
 
M

Mick Winder

Там будет то же самое....

У меня как раз стоит Windows XP/ Office XP(10).
Всё равно спасибо.
 
M

Mick Winder

Barmutik

Вот код, который у меня получился :angry:

Код:
uses
ComObj;

var
 PowerPointApp: OLEVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
try
 PowerPointApp := CreateOleObject('PowerPoint.Application');
except
 ShowMessage('Error...');
 Exit;
end;
PowerPointApp.Visible := True;
PowerPointApp.Presentations.Open('e:\Presentation1.ppt', False, False, True);
end;
 
B

Barmutik

Ну главное что получилось :angry:
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!