* Revised yesterday solution to a more general one. Executeprocess gets

another parameter, a set type with flags, default = []

git-svn-id: trunk@14572 -
This commit is contained in:
marco 2010-01-07 20:49:28 +00:00
parent 67ae263dd9
commit 8e9a7e14ad
15 changed files with 37 additions and 50 deletions

View File

@ -583,7 +583,7 @@ begin
Result:=Dos.EnvStr(Index);
end;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString):
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
integer;
var
CommandLine: AnsiString;
@ -605,7 +605,7 @@ begin
end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;
I: integer;

View File

@ -1130,7 +1130,7 @@ end;
{$ASMMODE DEFAULT}
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString):
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
integer;
var
HQ: THandle;
@ -1199,7 +1199,7 @@ end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;

View File

@ -261,13 +261,13 @@ begin
result := '';
end;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString): integer;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]): integer;
begin
result := -1;
end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
begin
result := -1;
end;

View File

@ -769,7 +769,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
e : EOSError;
CommandLine: AnsiString;
@ -792,7 +792,7 @@ end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;

View File

@ -661,7 +661,7 @@ begin
Result:='';
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
s: AnsiString;
wdpath: AnsiString;
@ -696,7 +696,7 @@ Begin
Result := 0;
End;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array Of AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array Of AnsiString;Flags:TExecuteFlags=[]):integer;
begin
end;

View File

@ -577,7 +577,7 @@ begin
Result:=Dos.EnvStr(Index);
end;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString):
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
integer;
var
tmpPath: AnsiString;
@ -624,7 +624,7 @@ begin
end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;
I: integer;

View File

@ -261,13 +261,13 @@ begin
result := '';
end;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString): integer;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]): integer;
begin
result := -1;
end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
begin
result := -1;
end;

View File

@ -533,7 +533,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
e : EOSError;
@ -557,7 +557,7 @@ end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;

View File

@ -593,7 +593,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
params:array of AnsiString;
count,i: longint;
@ -646,7 +646,7 @@ end;
const maxargs=256;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var c : comstr;
i : integer;
args : array[0..maxargs+1] of pchar;

View File

@ -12,6 +12,8 @@
**********************************************************************}
Type TExecuteFlags = Set of ( ExecInheritsHandles);
{ OS handling utilities }
{$ifdef HAS_OSERROR}
@ -24,9 +26,8 @@ Function GetEnvironmentString(Index : Integer) : String;
{$IFDEF HAS_SLEEP}
procedure Sleep(milliseconds: Cardinal);
{$ENDIF}
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString;Flags:TExecuteFlags=[]):integer;
Function GetTempDir(Global : Boolean) : String;
Function GetTempDir : String;

View File

@ -939,7 +939,7 @@ begin
end;
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString):
function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
integer;
var
HQ: THandle;
@ -1051,7 +1051,7 @@ end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;

View File

@ -1141,7 +1141,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
pid : longint;
e : EOSError;
@ -1206,7 +1206,7 @@ Begin
end;
End;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array Of AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array Of AnsiString;Flags:TExecuteFlags=[]):integer;
var
pid : longint;

View File

@ -776,7 +776,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
e : EOSError;
@ -800,7 +800,7 @@ end;
function ExecuteProcess (const Path: AnsiString;
const ComLine: array of AnsiString): integer;
const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
var
CommandLine: AnsiString;

View File

@ -60,10 +60,6 @@ function GetFileVersion(const AFileName: string): Cardinal;
procedure GetFormatSettings;
// OS specific versions for windows, to keep redir working
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;ExecInheritsHandles:boolean):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString;ExecInheritsHandles:boolean):integer;
implementation
uses
@ -841,7 +837,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;ExecInheritsHandles:boolean):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
// win specific function
var
SI: TStartupInfo;
@ -850,7 +846,7 @@ var
l : DWord;
CommandLine : ansistring;
e : EOSError;
ExecInherits : longbool;
begin
FillChar(SI, SizeOf(SI), 0);
SI.cb:=SizeOf(SI);
@ -869,8 +865,10 @@ begin
else
CommandLine := CommandLine + #0;
ExecInherits:=ExecInheritsHandles in Flags;
if not CreateProcess(nil, pchar(CommandLine),
Nil, Nil, ExecInheritsHandles,$20, Nil, Nil, SI, PI) then
Nil, Nil, ExecInherits,$20, Nil, Nil, SI, PI) then
begin
e:=EOSError.CreateFmt(SExecuteProcessFailed,[CommandLine,GetLastError]);
e.ErrorCode:=GetLastError;
@ -894,13 +892,7 @@ begin
end;
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
// os independant function
begin
result:=Executeprocess(path,comline,false);
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString;ExecInheritsHandles:boolean):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString;Flags:TExecuteFlags=[]):integer;
var
CommandLine: AnsiString;
@ -913,13 +905,7 @@ begin
CommandLine := CommandLine + ' ' + '"' + ComLine [I] + '"'
else
CommandLine := CommandLine + ' ' + Comline [I];
ExecuteProcess := ExecuteProcess (Path, CommandLine,ExecInheritsHandles);
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer;
// os independant function
begin
result:=Executeprocess(path,comline,false);
ExecuteProcess := ExecuteProcess (Path, CommandLine,Flags);
end;
Procedure Sleep(Milliseconds : Cardinal);

View File

@ -647,7 +647,7 @@ begin
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: AnsiString;Flags:TExecuteFlags=[]):integer;
var
PI: TProcessInformation;
Proc : THandle;
@ -680,7 +680,7 @@ begin
end;
end;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString):integer;
function ExecuteProcess(Const Path: AnsiString; Const ComLine: Array of AnsiString;Flags:TExecuteFlags=[]):integer;
var
CommandLine: AnsiString;