Running an EXE file via a Delphi App

Running an EXE file via a Delphi App

Question:
I want to be able to run an EXE file on a button click in one of my Delphi applications. Is it possible to do this? Where do I declare the file I want to run, and how do I put it into basic code?

Answer:
If you’re running Win16, then the call to make is WinExec. For Win32 environments, you can use ShellExecute. But you really should use CreateProcess. Here’s some sample code that I use to execute external programs:

{Supply a fully qualified path name in ProgramName and any arguments on the command line. As the  help file states: "If lpApplicationName is NULL,  the first white space-delimited token of the  command line specifies the module name..." In  English, the characters before the first space  encountered (or if no space is encountered as in  a single program call) is interpreted as the EXE to execute. The rest of the string is the  argument line.} procedure ExecNewProcess(ProgramName : String);var  StartInfo  : TStartupInfo;  ProcInfo   : TProcessInformation;  CreateOK   : Boolean;begin  { fill with known state }  FillChar(StartInfo,SizeOf(TStartupInfo),#0);  FillChar(ProcInfo,SizeOf(TProcessInformation),           #0);  StartInfo.cb := SizeOf(TStartupInfo);  CreateOK := CreateProcess(nil,               PChar(ProgramName), nil, nil,              False,              CREATE_NEW_PROCESS_GROUP +               NORMAL_PRIORITY_CLASS,               nil, nil, StartInfo, ProcInfo);  { check to see if successful }  if CreateOK then    //may or may not be needed. Usually wait for     //child processes. You can comment this line    //out.    WaitForSingleObject(ProcInfo.hProcess,                         INFINITE);end;

The function above only works for Win32 programs, it will not work for Win16–you’ll get a compiler error.

Share the Post:
data observability

Data Observability Explained

Data is the lifeblood of any successful business, as it is the driving force behind critical decision-making, insight generation, and strategic development. However, due to its intricate nature, ensuring the

Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular