LAUNCH EXTERNAL PROCESS

4D - Documentation   Français   English   German   4th Dimension 2004, Command Theme List   4th Dimension 2004, Command Alphabetical List   4th Dimension 2004, Constant Theme List   Back   Previous   Next

version 2004


LAUNCH EXTERNAL PROCESS (fileName{; inputStream{; outputStream{; errorStream}}})

ParameterTypeDescription
fileNameStringFile path and arguments of file to launch
inputStreamString | BLOBInput stream (stdin)
outputStreamString | BLOBOutput stream (stdout)
errorStreamString | BLOBError stream (stderr)

Warning: This command is designed for advanced users.

Description

The LAUNCH EXTERNAL PROCESS command allows you to launch an external process from 4th Dimension under Mac OS X and Windows.

Under Mac OS X, this command provides access to any executable application that can be launched from the Terminal.

Note: For 4D Pack users, this command has the same functions (plus expanded features) as the AP_Sublaunch command.

Pass the fixed file path of the application to execute, as well as any required arguments (if necessary), in the fileName parameter.

Under Mac OS X, you can also pass the application name only; 4th Dimension will then use the PATH environment variable to locate the executable.

Warning: This command can only launch executable applications; it cannot execute instructions that are part of the shell (command interpreter). For example, under Mac OS it is not possible to use this command to execute the echo instruction or indirections.

The inputStream parameter (optional) contains the stdin of the external process. Once the command has been executed, the outputStream and errorStream parameters (if passed) return respectively the stdout and stderr of the external process. You can use BLOB parameters instead of strings if you manage text data of a size greater than 32 KB or binary data (such as pictures).

Examples under Mac OS X

The following examples use the Mac OS X Terminal available in the Application/Utilities folder.

1. To change permissions for a file (chmod is the Mac OS X command used to modify file access):

   LAUNCH EXTERNAL PROCESS ("chmod +x /folder/myfile.txt")

2. To edit a text file (cat is the Mac OS X command used to edit files). In this example, the full access path of the command is passed:

   C_TEXT(input;output)
   input:=""
   LAUNCH EXTERNAL PROCESS ("/bin/cat /folder/myfile.txt";input;output)

3. To get the contents of the "Users" folder (ls -l is the Mac OS X equivalent of the dir command in DOS):

   C_TEXT($In;$Out)
   LAUNCH EXTERNAL PROCESS("/bin/ls -l /Users";$In;$Out)

Examples under Windows

4. To launch an independent "graphic" application, it is preferableb to use the open system command (in this case, the LAUNCH EXTERNAL PROCESS statement has the same effect as double-clicking the application): 

   LAUNCH EXTERNAL PROCESS("open /Applications/Calculator.app")
5. To open NotePad:
   LAUNCH EXTERNAL PROCESS ("C:\\WINDOWS\\notepad.exe")

6. To open Notepad and open a specific document:

   LAUNCH EXTERNAL PROCESS ("C:\\WINDOWS\\notepad.exe C:\\Docs\\new folder\\res.txt")

7. To launch the Microsoft® Word® application and open a specific document (note the use of the two ""):

   $mydoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\Documents and 
                        Settings\\Mark\\Desktop\\MyDocs\\New folder\\test.xml\""
   LAUNCH EXTERNAL PROCESS($mydoc;$tIn;$tOut)

8. To execute a Perl script (requires ActivePerl):

   C_TEXT($input;$output)
   SET ENVIRONMENT VARIABLE("myvariable";"value")
   LAUNCH EXTERNAL PROCESS ("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$input;$output)

9. To launch a command with the current directory and without displaying the console:

   SET ENVIRONMENT VARIABLE("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
   SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
   LAUNCH EXTERNAL PROCESS("mycommand")

See Also

SET ENVIRONMENT VARIABLE.

System Variables or Sets

If the command has been executed correctly, the system variable OK is set to 1. Otherwise (file not found, insufficient memory, etc.), it is set to 0.


4D - Documentation   Français   English   German   4th Dimension 2004, Command Theme List   4th Dimension 2004, Command Alphabetical List   4th Dimension 2004, Constant Theme List   Back   Previous   Next