Title: How to execute another program
uses
ShellApi;
{ Start notepad }
ShellExecute(Handle, 'open', 'notepad.exe', '', nil, SW_SHOW);
WinExec('C:\Windows\notepad.exe', SW_SHOW);
{ Start notepad and load a file }
ShellExecute(Handle, 'open', 'notepad', 'c:\MyFile.txt', nil, SW_SHOW);
{ Open a txt file }
ShellExecute(Handle, 'open', 'c:\Readme.txt', nil, nil, SW_SHOW);
{ Calling "Dir" from the DOS-Prompt and redirect the output to a file }
{1. With Winexec }
procedure ExecuteShellCommand(cmdline: string; hidden: Boolean);
const
flags: array [Boolean] of Integer = (SW_SHOWNORMAL, SW_HIDE);
var
cmdbuffer: array [0..MAX_PATH] of Char;
begin
GetEnvironmentVariable('COMSPEC', cmdBUffer, SizeOf(cmdBuffer));
StrCat(cmdbuffer, ' /C ');
StrPCopy(StrEnd(cmdbuffer), cmdline);
WinExec(cmdbuffer, flags[hidden]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecuteShellCommand('dir C:\ c:\temp\dirlist.txt', True);
end;
{2. With Shellexecute }
procedure ExecuteShellCommand(cmdline: string; hidden: Boolean);
const
flags: array[Boolean] of Integer = (SW_SHOWNORMAL, SW_HIDE);
var
cmdbuffer: array[0..MAX_PATH] of Char;
begin
GetEnvironmentVariable('COMSPEC', cmdBUffer, SizeOf(cmdBuffer));
ShellExecute(0,'open',cmdbuffer, PChar('/c' + cmdline), nil, flags[hidden]);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecuteShellCommand('copy file1.txt file2.txt', True);
end;