|
|
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
Всем привет. Древний код взбунтовался. Создается temp - директория, в которую выбрасывается файл и на него напускается создаваемый в соответствии с системными настройками (зарегистрированные приложения, привязка к "расширениями имени файла") процесс методом ShellExecuteEx(). Раньше как-то все работало, а тут таким образом решили открывать и .xls файлы; MS Excel запускается, но выводит сообщение, что файл "полное имя файла" открыть невозможно. Повторные запуски отрабатывают нормально. До перезагрузки ОС. С другими типами (txt, jpg, bat, png) файлов - нормально. Только xls. Что может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 19:24 |
|
||
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
Что-то ч/з "ж" формируется временная директория: - в переменную fTempDir получаем имя, вызывая GetTempFileName, при этом системой создается пустой файл. Потом файл убивается DeleteFile(fTempDir) , и сразу же создается директория с тем же именем. Полубред. Может, как-то с этим связано. Типа, иксель тоже создает временный файл, с тем же именем, файла такого не было - операция завершена нормально, но файл не создается, т.к. уже есть директория с тем же именем... а повторный вызов инкрементирует счетчик в генераторе темп-имен - нормально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 19:33 |
|
||
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
В общем, дело в следующем. MS Excel, запущенный с параметром <имя файла>, при самом первом запуске что-то делает, потом запускает другой экземпляр процесса, передает ему параметр и завершается. Мое приложение, увидев смерть первого процесса, удаляет и файл и директорию. Аналогичная фигня происходит, когда есть открытый экземпляр MS Excel, в котором нет загруженного документа. В этом случае "мой" экземпляр также завершается, а команда передается в уже открытый экземпляр. ... Схему работы менять надо, то есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2019, 20:25 |
|
||
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
ёёёёё Схему работы менять надо, то есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 15:08 |
|
||
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
ёёёёё Схему работы менять надо, то есть. Запускать процесс в задаче (job object) и ожидать, когда просигналит она? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 15:36 |
|
||
|
MS Excel открывает документ в temp - директории не с первого раза
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ ёёёёё Схему работы менять надо, то есть. Сделано ч/з COM, подписка на событие WorkbooksOnBeforeClose (ну и там мой частный случай - WorkbooksOnAfterSave). Плюс, после завершения икселя, пришлось дожидаться, пока файл станет доступен (иксель отцепится, и еще в т.ч. из-за его анализа антивирусом). Работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2019, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39890214&tid=2038843]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 325ms |

| 0 / 0 |
