Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог группы bat-файлов.


Linx ©   (2002-05-17 18:46:00) 

Друзья, у меня имеются несколько связанных bat и cmd-файлов. Один запускает другой, другой - третий, причем ждет когда тот завершит работу. Этот третий что-то архивирует, что-то наоборот. Возможно-ли реализовать такую с-му в Делфи, и как?
Конкретные вопросы:
1) как запустить из приложения, написанного под Делфи, командную строку скажем z:\test\arj.exe a q:\grably\first.rar star.*
2) если запустить удалось как дождаться завершения выполнения данной операции и только после этого переходить к следующей.


Anatoly Podgoretsky   (2002-06-02 15:07:00) [1]

И даже аварийное завершение программы по причине переполнения стека


Anatoly Podgoretsky   (2002-06-02 15:05:00) [2]

Linx © (02.06.02 12:06)
Знаешь ничего, ну не используется, наверно автор откуда содрал ксок кода :-) И даже более имеет неопределнное значение, попытка использования приведет к непредсказуемым результатам


Song   (2002-06-02 14:44:00) [3]

Совершенно не обязательно Cardinal


Andrew_k   (2002-06-02 13:01:00) [4]

Потому, что так надо :)


Linx   (2002-06-02 12:06:00) [5]

Один маленький вопрос, что означает cardinalв строке "function Wait(FileName:string):cardinal;"?


Andrew_k   (2002-05-17 22:50:00) [6]

В принципе, все просто:

unit project1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
function Wait(FileName:string):cardinal;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.Wait(FileName:string):cardinal;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOW;
if not CreateProcess(nil,
zAppName, {


Наверх

Титульная страница Поиск, карта сайта Написать письмо