Цитата:
Сообщение от Alloc
Из всего этого меня больше всего интересует вопрос о том, успеет ли выполнить компьютер все команды о которых я говорил поочередно?
|
Аа вот в чем дело. Конечно, если вы используете вызов сторонних приложений через WinExec, то вы не будете знать, завершила ли запрошенная вами команда работу или нет, а так же вы не будете знать, успешно она завершила работу или нет.
Эту задачу можно попытатся решить в лоб, просто проверяя ожидаемый результат выполнения задачи. Например, если задача создать файл - нужно проверить, что в каталоге появился соответствующий файл нужного размера. Однако, иногда проверить результат выполнения задачи довольно сложно, а то и вовсе не возможно. Кроме того, если произойдет какая-то ошибка, то вы не будете знать, что за ошибка произошла, и как вам ее исправить. Другими словами такой подход представляется крайне нежелательным.
К счастью, есть другие варианты. Код, который непонятно когда закончит работу, и работает ли вообще, должен вызывать у вас дикую ярость и неистовое желание избавится от этого непредсказуемого фрагмента и заменить его на более предсказуемый и надежный вариант.
Во-первых, желательно проверить, можно ли выполнить операции с помощью Делфи кода, не привлекая сторонние приложения. В частности, создать\переименовать\копировать файл можно. Поскольку я не знаю, какие у вас конкретно задачи, то не могу сказать определенне.
Во-вторых, WinExec - это устаревшая функция, вместо нее можно использовать CreateProccess - она позволяет дождаться конца выполнения команды и проверить результат.