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

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

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

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

Delphi + Word - проблема диалоговых окон

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

Jsn

Здравствуйте!
Проблема вот какая - создаю TWordApplication, в фоне открываю файл (документ) и выдаю его на печать.
Все работает. Но мне надо, чтобы при ошибках не выскакивали интерактивные окна Word
(например: "Во время последнего открытия документа произошла серьезная ошибка - восстановить?",
"Размеры раздела выходят за границы печати" и т.п.). Перепробовал кажется всё, начиная от DisplayAlerts...
Вот кусок кода:
Код:
 Application1 := TWordApplication.Create(nil);
with Application1 do
begin
try
fn := aFileName;
Visible := False;
fn1 := False;
fn2 := True;
DisplayAlerts := wdAlertsNone; 
Documents.Open(fn, fn1, fn2, fn1, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam); // тут бывают ошибки на открытие
fn := 1;
Documents.Item(fn).Activate;
PrintOut(fn1); // а тут ошибки печати
Result := True;
except
on E: Exception do
LogError('Error printing: ' + FormatDateTime(DateTimeString, Now) + ' '
+ aFileName + ' - ' + E.Message);
end;
end;

Так вот ворд упорно выводит свои диалоги...
Delphi 5 и 7, Word 97-2000-XP - результат один

Не посоветуете, как добиться ПОЛНОСТЬЮ фоновой работы?
Спасибо!
 
M

morpheus

1. не юзайте компонентов, работайте как с оле-сервером
2. свойство зделайте word'y свойство Hidden = true
 
J

Jsn

1. не юзайте компонентов, работайте как с оле-сервером
2. свойство зделайте word'y свойство Hidden = true

Не получается :wacko:
1. Пробовал CreateOleObject('Word.Application') и CreateOleObject('Word.Basic') - тот-же результат.
2. Свойства Hidden нет у TWordApplication и не "поддерживается automation объектами"
У Application есть свойство Visible, я его ставлю, Word не виден, но свои диалоги сует...
Досадно...
 
M

morpheus

Для: Jsn
да , перепутал Hiden c Visible...

а разве делфийный обработчик Try Except не ловит ошибку?
 
A

alexey

К сожалению плохо помню, но от этих диалогов точно можно отказаться, только надо правильно заполнить параметры, передаваемые кажется при открытии документа, или при печати. В общем решение было, если найду - отпишу. Смотри справку во встроенном Basic-e, там все расписано :)
 
J

Jsn

К сожалению плохо помню, но от этих диалогов точно можно отказаться, только надо правильно заполнить параметры, передаваемые кажется при открытии документа, или при печати. В общем решение было, если найду - отпишу. Смотри справку во встроенном Basic-e, там все расписано :)

Измучал уже всю справку, например "DisabledItems" там нету... Появилась идея помучать реестр.
Если что-то найдёте - отпишите, плз :lol:
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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