powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MS Excel открывает документ в temp - директории не с первого раза
6 сообщений из 6, страница 1 из 1
MS Excel открывает документ в temp - директории не с первого раза
    #39890213
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Древний код взбунтовался.
Создается temp - директория, в которую выбрасывается файл и на него напускается создаваемый в соответствии с системными настройками (зарегистрированные приложения, привязка к "расширениями имени файла") процесс методом ShellExecuteEx().

Раньше как-то все работало, а тут таким образом решили открывать и .xls файлы; MS Excel запускается, но выводит сообщение, что файл "полное имя файла" открыть невозможно.

Повторные запуски отрабатывают нормально. До перезагрузки ОС.
С другими типами (txt, jpg, bat, png) файлов - нормально. Только xls.

Что может быть?
...
Рейтинг: 0 / 0
MS Excel открывает документ в temp - директории не с первого раза
    #39890214
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то ч/з "ж" формируется временная директория:
- в переменную fTempDir получаем имя, вызывая GetTempFileName, при этом системой создается пустой файл.
Потом файл убивается DeleteFile(fTempDir) , и сразу же создается директория с тем же именем.
Полубред. Может, как-то с этим связано. Типа, иксель тоже создает временный файл, с тем же именем, файла такого не было - операция завершена нормально, но файл не создается, т.к. уже есть директория с тем же именем... а повторный вызов инкрементирует счетчик в генераторе темп-имен - нормально...
...
Рейтинг: 0 / 0
MS Excel открывает документ в temp - директории не с первого раза
    #39890223
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, дело в следующем. MS Excel, запущенный с параметром <имя файла>, при самом первом запуске что-то делает, потом запускает другой экземпляр процесса, передает ему параметр и завершается. Мое приложение, увидев смерть первого процесса, удаляет и файл и директорию.

Аналогичная фигня происходит, когда есть открытый экземпляр MS Excel, в котором нет загруженного документа. В этом случае "мой" экземпляр также завершается, а команда передается в уже открытый экземпляр.
...
Схему работы менять надо, то есть.
...
Рейтинг: 0 / 0
MS Excel открывает документ в temp - директории не с первого раза
    #39890550
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
Схему работы менять надо, то есть.
FILE_FLAG_DELETE_ON_CLOSE ?
...
Рейтинг: 0 / 0
MS Excel открывает документ в temp - директории не с первого раза
    #39890580
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
Схему работы менять надо, то есть.

Запускать процесс в задаче (job object) и ожидать, когда просигналит она?
...
Рейтинг: 0 / 0
MS Excel открывает документ в temp - директории не с первого раза
    #39890590
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
ёёёёё
Схему работы менять надо, то есть.
FILE_FLAG_DELETE_ON_CLOSE ?

Сделано ч/з COM, подписка на событие WorkbooksOnBeforeClose (ну и там мой частный случай - WorkbooksOnAfterSave).
Плюс, после завершения икселя, пришлось дожидаться, пока файл станет доступен (иксель отцепится, и еще в т.ч. из-за его анализа антивирусом).
Работает.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MS Excel открывает документ в temp - директории не с первого раза
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]