ExecuteProcess - with Command Line Support
This proc is a Delphi wrapper around the Win32 API "CreateProcess". It is a better idea to use this instead of ShellExecute or other 16-bit functions when you're program is to run in a 32-bit environment
`
procedure ExecuteProcess(FileName: String ;
Params: String ; Show: Integer);
var
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
begin
if Params[ 1 ] <> ' ' then
Params := ' ' + Params;
FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0 );
with StartUpInfo do
begin
cb := SizeOf(TStartUpInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := Show;
end ;
if not (CreateProcess(PChar(FileName), PChar(Params),
nil , nil , False, NORMAL_PRIORITY_CLASS,
nil , nil , StartUpInfo, ProcessInfo))
then
RaiseLastWin32Error;
end ;
`
//Modified version of ExecuteProcess that works with //a Command-Line Parameter
` procedure ExecuteProcess( FileName,
Params : String ;
Show : Integer );
var
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
begin
Params := Trim(Params);
if Params<> '' then
FileName := FileName + ' ' + Params;
GetStartupInfo( StartUpInfo );
with StartUpInfo do begin
cb := SizeOf(TStartUpInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := Show;
end ;
if not (CreateProcess( nil , PChar(FileName), nil ,
nil , False, NORMAL_PRIORITY_CLASS, nil ,
nil , StartUpInfo, ProcessInfo))
then
RaiseLastWin32Error; //From SysUtils Unit
end ;
`