ExecuteProcess - with Command Line Support

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 ;
`

Published At
Categories with Web编程
comments powered by Disqus