...execute another program?

Author: Thomas Stutz

Category: Files

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', nilnil, 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;

 

printed from
www.swissdelphicenter.ch
developers knowledge base