• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Создание приложения Excel

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

dima_kds

Здравствуйте. Подскажите пожалуйста.
Мне необходимо открыть приложение Excel из Delphi.
Написал все как по книге.
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, ComObj, ActiveX, StdCtrls, Buttons, Excel2000;

type
TForm1 = class(TForm)
 Button1: TButton;
 procedure CreateExcel(NewInstance: boolean);
 procedure ShowExcel;
private
 { Private declarations }
 ExcelApp: TExcelApplication;
public
 { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.CreateExcel(NewInstance: boolean);
begin
if not Assigned(ExcelApp) then begin
ExcelApp := TExcelApplication.Create(Self);
//if NewInstance then FIXLSApp.ConnectKind := NewInstance;
ExcelApp.Connect;
end;
end;

procedure TForm1.ShowExcel;
begin
 if Assigned(ExcelApp) then begin
   ExcelApp.Visible[0] := true;
  if ExcelApp.WindowState[0] = TOLEEnum(xlMinimized) then
    ExcelApp.WindowState[0] := TOLEEnum(xlNormal);
    ExcelApp.ScreenUpdating[0] :=true;
 end;

end;

end.

Но приложение не открывается. Единственное сообщение в Event Log: Module Load: MSCTF.dll. No Debug Info. Base Adress: $746E0000.
Может дело в ОС или офисе, может .dll пропатчить нужно...не могу понять.
Я использую ОС - ХР, офис - 2003(русский).
Помогите кто может. Заранее благодарен.
 
B

Barmutik

Код:
var
AExcel: OleVariant;
begin
try
 ExcelApp := GetActiveOleObject('Excel.Application');
except
 try
  ExcelApp := CreateOleObject('Excel.Application');
 except
  MessageDlg(Can not open Microsoft Excel!', mtError, [mbOK], 0);
  Exit;
 end;
end;
.....
 ExcelApp.Visible := True;
......
ExcelApp := UnAssigned;
end;
 
D

dima_kds

Попробовал этот код...у меня не работает. Я уже пробовал четыре разных варианта, не помогло. Может всетаки дело в системе?
 
B

Barmutik

Хммм.. этот код гарантированно работает ... начиная с 98 системы и 97 офиса он проверялся сотни .. если не тысячи раз ...


А вообще MS Excel на компьютере установленный есть?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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