|
25.08.2005, 14:43 | #1 |
Участник
|
Фунция ShellExecute запускает не сам файл на исполнение, а лишь передает Windows Shell команду на его запуск. При этом она возвращается после передачи управления в функцию WinMain процесса. А загрузка файла в программу происходит намного позже этого момента. Так что вы успеваете его удалить задолго до этого.
Запустить ShellExecute в синхронном режиме нельзя, так как она не возвращает Handle запущенного процесса. Для этого можно использовать либо ShellExecuteEx, либо CreateProcess, а дальше ч-з WaitForSingleObject с параметром INFINITE ждать завершения процесса и только после этого удалять файл. Но при этом, если не запускать обработку в отдельном Thread'е, то Axapta у вас не будет отвечать на запросы пока не закроете это приложение. Можно повесить это дело на таймер и проверять с немедленным возвратом из функции WaitForSingleObject с определенной периодичностью и только после закрытия процесса удалять файл. Ну а в общем зачем такие сложности, если проще показать картинку в Axapte? |
|