как убрать окно запуска

Автор implosia, 12 декабря 2012, 15:40

0 Пользователи и 1 гость просматривают эту тему.

implosia

Как сделать так чтобы не появлялось данное окно после закрытия документа?

[вложение удалено Администратором]

serhiy.k

обычно это окно появляется, когда закрывается документ, а сама программа остается открытой. для этого закрывайте саму программу - нажимая на самый верхний крестик, такой же, как и в других программах.

Вам также стоит уточнить, какая у Вас стоит операционная система, потому что окна могут закрываться по-разному.

implosia

#2
Да я знаю что можно закрыть данное окно нажатием на крестик, просто у меня программа выгружает документ в Writer и тут же закрывает и подает на печать, а это окно висит. Пользователям устала по 20 раз объяснять как закрывать это окно, вот и хочу отключить данную операцию, а как не знаю.

ape

Написать для программы, запускающей soffice.bin, скрипт, который по окончании печати будет завершать этот (soffice.bin) процесс.

smaharbA

Я конечно далек от мысли... (с)

Hasim

Цитата: smaharbA от 14 декабря 2012, 19:20
купить мсо ?
Ваша фамилия, случайно, не Гинзбург?
А то уровень интеллектуальности вопроса наводит на такую мысль.

JohnSUN

Цитата: implosia от 13 декабря 2012, 07:33...у меня программа выгружает документ в Writer и тут же закрывает и подает на печать, а это окно висит.
Этот фрагмент кода глянуть можно?
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

implosia

#7
Цитата: JohnSUN от 15 декабря 2012, 22:37
Цитата: implosia от 13 декабря 2012, 07:33...у меня программа выгружает документ в Writer и тут же закрывает и подает на печать, а это окно висит.
Этот фрагмент кода глянуть можно?

В dog2.txt вызываю OOoOpenURL( cURL )  из oo_proc.txt. Т.к. пользовалась не своей заготовкой могла и ошибиться, может есть более легкое решение моей задачи, но увы не знаю.

[вложение удалено Администратором]

JohnSUN

А если раскомментировать последнюю строчку?
  a = OOoTerminateProgram()
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

implosia

Цитата: JohnSUN от 17 декабря 2012, 14:12
А если раскомментировать последнюю строчку?
  a = OOoTerminateProgram()
Попробывала ничего не получилось.

JohnSUN

Как говорила Алиса, "Всё страньше и страньше..."
Если честно, то у меня под рукой просто нет FoxPro, чтобы посмотреть поведение скрипта в реальных боевых условиях. Поэтому просто читаю глазами... И пытаюсь догадаться, в каком месте спрятался глюк.
Некоторые вещи в скрипте изначально написаны не совсем правильно.
Например, автор для сохранения сформированного документа использует метод .storeToUrl, а не .storeAsUrl. А потом изобретает способы с закрытием-переоткрытием сформированного документа.
И, похоже, что "собака порылась" именно здесь.
Если верить комментарию в строке 181, когда-то после формирования документа его делали видимым. Сейчас вместо этого еще раз обновляют поля.
Давай подумаем, что происходит. Документ создан из шаблона, в него внесены какие-то правки, он невидимый болтается где-то в памяти.
В строке 236 мы ему командуем "Сгинь!" и рассчитываем, что он просто закроется, так и не появившись на экране. А он все равно висит в памяти и очень хочет пристать к нам с вопросом "Сохранять ли изменения?". Но мы этого не видим. Пока есть открытые (пусть и невидимые) документы, oDesktop.Terminate() будет возвращать Дудки! False и не станет выполняться... В общем, как-то так.

Что можно сделать? Во-первых, можно отобразить окно Writer'а, чтобы убедиться, что все так и происходит. Во-вторых, попробовать обмануть офис и перед командой .Close(1) сказать, что мы ничего в документе не меняли .setModified(false). Ну, и поменять storeTo на storeAs...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне