Я пытаюсь выполнить некоторые команды cmd dos в проекте Delphi с помощью функции выполнения cmd, которая работает хорошо, но когда выполнение в процессе, приложение похоже на замораживание и блокируется до процесс завершен. Мне нужна помощь, есть ли какие-либо трюки, чтобы обойти этот процесс, чтобы приложение работало нормально, когда выполняется процесс.Выполнение cmd в delphi без замораживания
Обновление от комментариев:
функции, я использую создает трубу:
if CreatePipe(read_stdout, newstdout, @sa, 0) then begin
GetStartupInfo(si);
with si do begin
dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW;
wShowWindow := SW_HIDE;
hStdOutput := newstdout;
hStdError := newstdout;
hStdInput := newstdin;
end;
После Google я нашел функцию здесь http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_25050763.html
Подход 1: (Автор: Marco Pipino) ......
Может ли кто-нибудь помочь мне изменить эту функцию, чтобы enduse Не думайте, что приложение висит во время выполнения команды?
Пожалуйста, добавляйте код/исключение, иначе люди не смогут вам помочь. – Shai
[Общение с командной строкой через Delphi] (http://stackoverflow.com/questions/10598313/communicate-with-command-prompt-through-delphi) и [Получить неблокирующий вывод CommandLine] (http: // stackoverflow. com/questions/26443037/get-non-blocking-commandline-output) – bummi