Запуск програми з delphi з очікуванням завершення її роботи

В одній моїй програмі було необхідно запускати cmd скрипт і чекати завершення його виконання.

У даній реалізації написана процедура яка перевіряє наявність заголовка програми в процесах.

Метод хороший, але якщо буде великий cmd скрипт який має на увазі тривале виконання, то програма на delphi просто зависне очікуючи закриття запущеного скрипта. Тому для того щоб програма не зависає під час очікування відповіді від процедури, її слід запускати в додатковому потоці і вже з потоку відсилати дані про завершення роботи cmd скрипта основного вікна програми.

Для використання цієї процедури необхідно в USES підключити модуль ShellAPI.

Метод виклику процедури:

Як писав вище для того щоб програма не зависає, процедуру краще запускати в окремому потоці, а для того щоб дізнатися про те що скрипт завершив свою роботу, з потоку потрібно "куди то вилучити дані" - для прикладу на головній формі (Form1) потрібно розмістити label (Label1), в нього записати результат виконання процедури.

Для того щоб нижче викладений код працював, потрібно в проекті створити потік (Thread) з ім'ям new_process і підключити його до головної формі в uses - потік буде в якомусь unit, а в якому видніше вам.

Метод створення потоку

У потоці потрібно розмістити код самої процедури ExecuteWait яка описана вище і прописати в uses головну форму (unit1):

Після завершення виконання програми, викликаний потік пропише в label1 головної форми: Виконання скрипта cmd завершено.

  • Микола »Спасибі. Довго шукав щось подібне. тільки цей код підійшов для script-shop free ver2

як я відпочиваю у вільний час

Многосайтовий на wordpress

  • Марина »Здравствуйте! Подск ажіте, будь ласка, якщо не важко Я новачок. Нещодавно створила свій сайт з жіночою тематикою на Вордпресс (там поки пара.
  • TruLander »Марина моя вам порада, якщо ви не розумієте суті переробки, краще зробіть 2 окремих сайту, вам буде простіше, тим більше.
  • Марина »Спасибо большое!

Найпопулярніше

Схожі статті