Running Applications From Your Own

Running Applications From Your Own

What code do I use for Delphi to run a program and use command line parameters inputted by the user?

This code will allow you to launch other applications from your own. To use this function, simply supply a fully qualified path name in ProgramName and any arguments on the command line following the program name separated by a space. As the help file states: “If lpApplicationName is NULL, the first white space-delimited token of the command line specifiesthe 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    WaitForSingleObject(ProcInfo.hProcess, INFINITE);end;

For example, let’s say that the user inputted: “/a /b /c” as command line arguments, and you captured them into a string var called “args.” To use ExecNewProcess, you’d simply do this:

MyProgramName := 'C:Program FilesMyProgramMyProgram.EXE';ExecNewProcess(MyProgramName + ' ' + args);

Pretty simple…

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