Mega Code Archive

 
Categories / Delphi / System
 

How to execute another program

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;