![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аналог группы 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, {