Qt Script for Applications · Home · Tutorial · Classes · Functions · Language · QSA Workbench · Qt Documentation · www.trolltech.com

# QSA Extension Frameworks

## QSA Input Dialog Framework

The QSA Input Dialog Framework is a set of classes that extends QSA to enable the user to create dialogs using Qt Script. The Input Dialog Framework is available in the QSObjectFactory subclass QSInputDialogFactory.

The QSA Input Dialog Framework provides two types of classes. The first types are the ones that can be used to build up complex input dialogs. These classes include, Dialog, CheckBox, GroupBox, LineEdit, TextEdit, etc. These classes each have a set of properties for describing how they appear and some of them also provide functions.

The following is a simple example on how to use the Input Dialog Framework to create a dialog that will query the user for their first and last name, and echo the values they entered:

        var dialog = new Dialog;
        dialog.caption = "Name reading dialog";
        dialog.okButtonText = "Done"
        dialog.cancelButtonText = "Abort";

        var first = new LineEdit;
        first.label = "First name: ";
        dialog.add( first );

        var last = new LineEdit;
        last.label = "Last name: ";
        dialog.add( last );

        if( dialog.exec() ) {
            var fullName = last.text + ", " + first.text;
            print( "Full name is: " + fullName );
        }

Below is a list of the classes available from the Input Dialog Framework. Each class has a short description and a list of its properties and functions.

For String properties the default is an empty string, and for Number properties the default is 0, unless stated otherwise.

### CheckBox

The CheckBox widget provides a checkbox with a text label. CheckBox is an option button; it can be switched on (checked) or off (unchecked).

#### Properties

- checked : Boolean; This property holds whether the checkbox is checked. The default is unchecked, i.e. false.
- text : String; This property holds the text shown on the button.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### ComboBox

The ComboBox widget is a combined button and drop-down list. A combobox is a selection widget which displays the current item and can drop down a list of items. A combobox may be editable in which case the user can enter arbitrary strings.

#### Properties

- currentItem : String; This property is used in two ways: To specify the default selected item in the combobox; and to get the value the user selected in the combobox when the dialog is closed. The default is the first item in the list.
- editable : Boolean; This property holds whether the combobox is editable. The default is false.
- itemList : Array; The list of items in the combobox.
- label : String; The label for the combobox.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### DateEdit

The DateEdit class provides a date editor. DateEdit allows the user to edit dates by using the keyboard or the arrow keys to increase/decrease date values. The arrow keys can be used to move from section to section within the DateEdit box. Dates appear in accordance with the local date/time settings or in year, month, day order if the system doesn't provide a local date order.

#### Properties

- date : Date; This property holds the editor's date value. The default is today.
- label : String; The label for the date.
- maximum : Date; This property holds the editor's maximum value. The default maximum date is 8000-12-31.
- minimum : Date; This property holds the editor's minimum value. The default minimum date is 1752-09-14.
- order : Order; This property holds the order in which the year, month and day appear. The default order is locale dependent.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### Dialog

The Dialog class is the base class of dialog windows. A dialog window is a top-level window mostly used for short-term tasks and brief communications with the user. Dialogs may be modal or modeless.

#### Properties

- caption : String; This property holds the window caption (title). The default is the application's name.
- cancelButtonText : String; This property holds the text shown on the cancel button. The default is "Cancel".
- okButtonText: String; This property holds the text shown on the ok button. The default is "Ok".
- width : Number; This property holds the width of the widget excluding any window frame. The default is set by the layout.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

#### Functions

- add( widget : QSWidget ); Adds a widget to the dialog. Widgets are placed vertically, from top to bottom.
- addSpace( space : Number ); Adds vertical space, measured in pixels between, the previous and next added widget.
- exec() : Boolean; Executes the dialog. This opens the dialog as a modal dialog, blocking the application until the user presses the OK button or the Cancel button to close the dialog. The function returns `true` of the user pressed OK; otherwise it returns `false`.
- newColumn(); Creates a new column in the dialog. All widgets subsequently added to the dialog will be placed (vertically, from top to bottom), in the new column.
- newTab( label : String ); Creates a new tab in the dialog with the given label. All widgets subsequently added to the dialog will be placed in the newly created tab, (vertically, from top to bottom).

### GroupBox

The GroupBox widget provides a group box frame with a title and can displays other widgets inside itself.

#### Properties

- title : String; This property holds the group box's title text.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

#### Functions

- add( widget : QSWidget ); Adds a widget to this groupbox.
- addSpace( space : Number ); Adds vertical space, measured in pixels, between the previous and the next widget that is added.
- newColumn(); Creates a new column within this groupbox. All widgets that are added subsequently will be placed in the new column.
- addSpace()

### LineEdit

The QLineEdit widget is a single-line text editor.

#### Properties

- label : String; The label text for this line edit.
- text : String; This property holds the line edit's text.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### NumberEdit

The NumberEdit class provides range checking of floating-point numbers. NumberEdit provides an upper bound, a lower bound and a limit on the number of digits after the decimal point.

#### Properties

- decimals : Number; This property holds the number edits's maximum number of digits after the decimal point.
- label : String; The label text for this number edit.
- maximum : Number; This property holds the number edit's maximum acceptable value. The default is 2,147,483,647.
- minimum : Number; This property holds the number edit's minimum acceptable value. The default is -2,147,483,647.
- value : Number; This property holds the number edit's input value. The default is 0.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### RadioButton

The RadioButton widget provides a radio button with a text label. RadioButton is an option button; it can be switched on (checked) or off (unchecked). Sets of Radio buttons grouped together (for example in a GroupBox), are mutually exclusive.

#### Properties

- checked : Boolean; This property holds whether the radio button is checked. The default is unchecked (false).
- text : String; This property holds the text shown on the button.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### SpinBox

The SpinBox class provides a spin box widget (spin button). SpinBox allows the user to choose an integer value either by clicking the up/down buttons to increase/decrease the value currently displayed or by typing the value directly into the spin box. If the value is entered directly into the spin box, Enter (or Return) must be pressed to apply the new value.

#### Properties

- label : String; This property holds the spinbox's label text.
- maximum : Number; This property holds the maximum value of the spin box. The default maximum value is 2,147,483,647.
- minimum : Number; This property holds the minimum value of the spin box. The default minimum value is -2,147,483,648.
- value : Number; This property holds the value of the spin box.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### TextEdit

The QTextEdit widget provides a multi-line text editor.

#### Properties

- text : String; This property holds the text of the TextEdit.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### TimeEdit

The TimeEdit class provides a time editor. TimeEdit allows the user to edit times by using the keyboard or the arrow keys to increase/decrease time values. The arrow keys can be used to move from section to section within the TimeEdit box.

#### Properties

- label : String; This property holds the time edit's label text.
- maximum : Time; This property holds the maximum time value.
- minimum : Time; This property holds the minimum time value.
- showAMPM : Boolean; If this property is false (the default), the time edit uses the 24 hour clock; otherwise the time edit uses the 12 hour clock and displays AM or PM as appropriate.
- showSeconds : Boolean; If this property is true (the default), the time edit displays seconds; otherwise it does not display seconds.
- time : Time; This property holds the editor's time value.
- tooltip : String; This property holds the tool tip (balloon help) for the widget.
- whatsThis : String; This property holds a simple description of the widget.

### Convenience Classes

The convenience classes provide static functions to obtain a value from the user without using any complex widget hierarchies. Because the functions are static they can be called directly without the need to create an instance of the class. For example, to get a filename all that is necessary is to call `FileDialog.getOpenFileName()`.

### The MessageBox class

This class provides a simple way of popping up a message box window for the user. The following lines of code present a pop up messagebox with a warning and query the user to click Yes or No.

        var ans = MessageBox.warning( "Do you wish to save the data?", MessageBox.Yes, MessageBox.No );
        if (ans == MessageBox.Yes) {
            save();
        }

#### Button types

The button types are used to describe what the text of the buttons should be. The following are available.

- NoButton; No button is displayed.
- Ok; Displays an 'OK' button.
- Cancel; Displays a 'Cancel' button.
- Yes; Displays a 'Yes' button.
- No; Displays a 'No' button.
- Abort; Displays an 'Abort' button.
- Retry; Displays a 'Retry' button.
- Ignore; Displays an 'Ignore' button.

#### Functions

The following is a list of message box functions. The button1, button2 and button3 parameters can be any of the Button types described above and specify which button types will be shown in the message box. Each function returns the button type that the user pressed.

- information( label : String, button1 : ButtonType, button2 : ButtonType, button3 : ButtonType, title : String ); Displays an information message box with the content specified in `label`.
- warning( label : String, button1 : ButtonType, button2 : ButtonType, button3 : ButtonType, title : String ); Displays a warning message box with the content specified in `label`.
- critical( label : String, button1 : ButtonType, button2 : ButtonType, button3 : ButtonType, title : String ) Displays a critical error message box with the content specified in `label`.

### The FileDialog class

This class provides dialogs that allow users to select files or directories. The following function call will open a file dialog with that will display files with the extension `.txt`.

        var filename = FileDialog.getOpenFileName( "*.txt" );
        if (filename) {
            processfile(filename);
        }

#### Functions

- getOpenFileName( filter : String, title : String ); Opens an "Open" dialog. If `filter` is specified (e.g. "textfiles (*.txt)"), only those files which match the filter are shown. The function returns a string with the selected filename, or `undefined` if the user canceled.
- getSaveFileName( filter : String, title : String ); Opens an "Save As" dialog. If `filter` is specified (e.g. "textfiles (*.txt)"), only those files which match the filter are shown. The function returns a string with the filename selected or entered, or `undefined` if the user canceled.
- getExistingDirectory( dir : String, title : String ); Opens a "Find Directory" dialog for the user to select an existing directory. The parameter `dir` can be used to specify the initial directory. Returns the name of the selected directory or `undefined` if the user canceled.
- getOpenFileNames( dir : String, filter : String, title : String ); Opens an "Open" dialog for the user to select and open one or more existing files. If `dir` is specified it specifies the initial directory. If `filter` is specified (e.g. "textfiles (*.txt)"), only those files which match the filter are shown. The function returns a list of string string with the selected filenames, or `undefined` if the user canceled.

### The Input class

This class provides convenience functions for getting simple input from the user. The following code can be used to open a dialog that queries the user for a text:

        var name = Input.getText( "What is your surname? " );
        if (name) {
            processname(name);
        }

#### Functions

- getText( label : String, text : String, title : String ); Asks the user for a text. `label` specifies the descriptive label and `text` specifies the default text. The function returns the text entred by the user or `undefined` if the user canceled.
- getNumber( label : String, value : Number, decimals : Number, minValue : Number, maxValue : Number, title : String ); Asks the user for a number. `label` specifies the descriptive label, `value` specifies the default value, `decimals` specifies the number of decimals allowed, `minValue` specifies the minimum value and `maxValue` specifies the maximum value. The function returns the value entered by the user or `undefined` if the user canceled.
- getItem( label : String, itemList : Array, current : String, editable : Boolean, title : String ); Asks the user to select an item from a predefined list of values specified by `itemList`. The descriptive label is specified with `label`. `current` specifies the value that is selected when the dialog starts. If `editable` is true, the user is allowed to enter a value that is not in the `itemList`. The function returns the value selected or entered by the user or `undefined` if the user canceled.

## QSA Utility Framework

The QSA Utility Framework is a set of classes that extends QSA to enable the user to read and write files, access directory structures and start processes synchronously and asynchronously. The Utility Framework is available in the QSObjectFactory subclass QSUtilFactory

### File Class Reference

The `File` class provides functionallity for reading and writing binary and text files. A `File` can be instantiated as an object, giving the scripter complete flexibility when reading and writing files. In addition, the `File` class provides a set of static convenence functions for reading and writing files in one go.

Typical use of a `File` is:

        // Reads an entire file in one go
        var log = File.read('file.log');
        // Writes an entire file in one go
        File.write('copy_of_file.log', log);

        // Read and write a file line by line
        var infile = new File('file.log');
        infile.open(File.ReadOnly);

        var outfile = new File('copy_of_file.log');
        outfile.open(File.WriteOnly);

        while (!infile.eof) {
            var line = infile.readLine();
            outfile.write( line );
        }

        infile.close();
        outfile.close();

#### Enums

##### AccessMode

The enum `AccessMode` is used in conjunction with `File.open` to specify the mode in which the file is opened.

- ReadOnly; Opens the file in read-only mode.
- WriteOnly; Opens the file in write-only mode. If this flag is used with `Append`, the file is not truncated; but if used on its own (or with `Truncate`), the file is truncated.
- ReadWrite; Opens the file in read/write mode. The file is not truncated.
- Append; Opens the file in append mode. (You must actually use `(WriteOnly | Append)` to make the file writable and to go into append mode.) This mode is very useful when you want to write something to a log file. The file index is set to the end of the file. Note that the result is undefined if you position the file index manually using at() in append mode.
- Truncate; Truncates the file.
- Translate; Enables carriage returns and linefeed translation for text files under Windows.

#### Static Functions

- exists( fileName : String ) : Boolean; Returns true if `fileName` exists; otherwise returns false.
- remove( fileName : String ); Deletes the file `fileName` if possible; otherwise throws an exception.
- write( fileName : String, content : String ); Writes the string `content` to the file `fileName` if possible (completely replacing the original contents if the file already exists); otherwise throws an exception.
- read( fileName : String ) : String; Reads and returns the contents of the file `fileName` if possible; otherwise throws an exception.
- isFile( fileName : String ) : Boolean; Returns true if `fileName` is a file; otherwise returns false.
- isDir( fileName : String ) : Boolean; Returns true if `fileName` is a directory; otherwise returns false.

#### Constructor

- File( fileName : String ); Creates a file object with the with `fileName`. If `fileName` is missing or is not a String, an exception is thrown.

#### Properties

The File object's properties are read-only.

- name : String; The name of the file including the extension.
- path : String; The path of the file.
- fullName : String; The fullName of the file, including path, name, and extension.
- baseName : String; The name of the file, excluding its path and extension.
- extension : String; The file name's extension.
- symLink : String; The expansion of the symlink if the file is a symlink; otherwise empty;
- exists : Boolean; True if the file exists; otherwise false.
- readable : Boolean; True if the file is readable; otherwise false.
- writable : Boolean; True if the file is writable; otherwise false.
- executable : Boolean; True if the file is executable; otherwise false.
- hidden : Boolean; True if the file is hidden; otherwise false.
- eof : Boolean; True if reading has reached the end of the file; otherwise false.
- created : Date; The creation time of the file.
- lastModified : Date; The last modification time of the file.
- lastRead : Date; The last time the file was read.
- size : Number; The size of the file, in bytes.

#### Member Functions

- open( accessMode : Number ); Opens the file in the mode `accessMode` if possible; otherwise throws an exception.
- close(); Closes the file.
- remove((); Deletes the file if possible; otherwise throws an exception.
- readByte() : Number; Reads one byte from the file if possible; otherwise throws an exception.
- read() : String; Returns the entire content of the file as a string if it can be read; otherwise throws an exception.
- readLine() : String; Reads one line from file if possible; otherwise throws an exception. Retains any trailing whitespace.
- readLines() : String[]; Returns the contents of the file as an array of Strings, one for each line. Linebreaks are strippped from the strings. If the file could not be read, an exception is thrown.
- writeByte( byte : Number ); Writes a byte to the file is possible; otherwise throws an exception.
- write( data : String, length : Number ); Writes `length` number of characters from `data` to the file if possible; otherwise throws an exception.
- writeLine( data : String ); Writes the line `data` to the file and adds a linebreak. If the file could not be written `error` is returned.

### Dir Class Reference

The `Dir` class provides access to directory structures and their contents in a platform-independent way. It provides a means of listing directory content, creating filenames with proper path separators, etc.

An example use of the Dir class is:

        var dir = new Dir;
        var codeFiles = dir.entryList('*.cpp');
        for (var i = 0; i < codeFiles.length; ++i)
            print(codeFiles[i]);

#### Enums

##### FilterSpec

This enum describes the filtering options available to Dir for entryList(). The filter value is specified by OR-ing together values from the following list.

- Dirs; List directories only.
- Files; List files only.
- Drives; List disk drives only.
- NoSymLinks; Do not list symbolic links (ignored by operating systems that don't support symbolic links).
- All; List directories, files, drives and symlinks (this does not list broken symlinks unless you specify System).
- TypeMask; A mask for the the Dirs, Files, Drives and NoSymLinks flags.
- Readable; List files for which the application has read access.
- Writable; List files for which the application has write access.
- Executable; List files for which the application has execute access. Executables must be combined with Dirs or Files.
- RWEMask; A mask for the Readable, Writable and Executable flags.
- Modified; Only list files that have been modified (ignored under Unix).
- Hidden; List hidden files (on Unix, files starting with a .).
- System; List system files (on Unix, FIFOs, sockets, and device files)
- AccessMask; A mask for the Readable, Writable, Executable Modified, Hidden and System flags

##### SortSpec

This enum describes the sort options available to Dir for entryList(). The sort value is specified by OR-ing together values from the following list:

- Name; Sort by name.
- Time; Sort by time (modification time).
- Size; Sort by file size.
- Unsorted; Do not sort.
- SortByMask; A Mask for Name, Time and Size.
- DirsFirst; Put the directories first, then the files.
- Reversed; Reverse the sort order.
- IgnoreCase; Sort case-insensitively.

#### Static Properties

- current : String; The current directory.
- home : String; The home directory.
- root : String; The root directory.
- drives : String[]; An array of strings containing the drive names (c:, d:, etc); empty on Unix.

#### Static Functions

Qt uses "/" as a directory separator throughout (although it understands the conventions of the platform it is used on). If you are working with paths, use "/" within your code, and use convertSeparators() when you want to display a path to the user.

- cleanDirPath( filePath : String ) : String; Removes all multiple directory separators "/" and resolves any "."s or ".."s found in the path, `filePath`.
- convertSeparators( pathName : String ) : String; Returns `pathName` with the "/" separators converted to separators that are appropriate for the underlying operating system.

#### Constructor

- Dir( path : String ); Creates a directory object for path `path`. If `path` is empty, the current directory is used.

#### Properties

- name : String; Contains the name of the directory; this is not the same as the path, e.g. a directory with the name "mail", might have the path "/var/spool/mail"
- path : String; Contains the path, this may contain symbolic links, but never contains redundant ".", "..", or multiple separators.
- absPath : String; Contains the absolute path (a path that starts with "/" or with a drive specification), which may contain symbolic links, but never contains redundant ".", "..", or multiple separators.
- canonicalPath : String; Contains the canonical path, i.e. a path without symbolic links or redundant "." or ".." elements.
- readable : Boolean; True if the directory is readable; otherwise false.
- exists : Boolean; True if the directory exists; otherwise false.

#### Member Functions

- filePath( fileName : String ) : String; Returns the path name of the file `fileName` in the directory.
- absFilePath( fileName : String ) : String; Returns the absolute path name of the file `fileName` in the directory.
- cd( dirName : String ); Changes the Dir's directory to `dirName` if possible; otherwise throws an exception.
- cdUp(); Changes directory by moving one directory up from the Dir's current directory if possible; otherwise throws an exception.
- entryList( filter : String, filterSpec : Number, sortSpec : Number ) : String[]; Returns a list of the names of all the files and directories in the directory, ordered in accordance with `sortSpec` and filtered in accordance with `filterSpec`.
- mkdir( dirName : String ); Creates the directory `dirName` if possible; otherwise throws an exception.
- mkdir(); Creates this directory if possible possible; otherwise throws an exception.
- mkdirs( dirName : String ); Creates the directory tree `dirName` if possible; otherwise throws an exception.
- mkdirs(); Creates this directory tree if possible; otherwise throws an exception.
- rmdir( dirName : String ); Deletes the directory `dirName` if possible; otherwise throws an exception.
- rmdir(); Deletes this directory if possible; otherwise throws an exception.
- rmdirs( dirName : String ); Deletes the directory structure `dirName` if possible; otherwise throws an exception.
- rmdirs(); Deletes this directory structure if possible; otherwise throws an exception.
- fileExists( fileName : String ) : Boolean; Returns true if the file `fileName` exists; otherwise returns false.
- setCurrent(); Sets the application's current working directory to this directory if possible; otherwise throws an exception.

### Process Class Reference

The Process class is used to start external programs and to communicate with them. The Process class can start programs synchronously using `Process.execute()`, and asynchronously using `new Process(...).start()`.

#### Static Properties

- stdout : String; Contains the data sent to `stdout` during the last call to `Process.execute()`. This property is read-only.
- stderr : String; Contains the data sent to `stderr` during the last call to `Process.execute()`. This property is read-only.

#### Static Functions

- execute( command : String, stdin : String ); Executes `command` synchronously and passes `stdin` to its standard input if specified. When the program ends its output is accessible through `Process.stdout` and `Process.stderr`. `command` can contain both the program and command line arguments, e.g. `"ls -la"`. The function returns the executed commands return code on exit.
- execute( command : String[], stdin : String ); Same as above, except that `command` is an array of strings, where the first item is the name of the program and the following items are command line arguments. This version is useful if you have arguments that contain spaces or other characters that would need to be quoted if you just passed a single string command line, since it takes care of the quoting for you.

#### Constructor

- Process(); Creates a Process object without specifying the program or any arguments. This does not start a process.
- Process( command : String ); Creates a Process object that will execute `command`. This does not start the process.
- Process( command : String[] ); Same as above, except that `command` is an array of strings, where the first item is the name of the program and the following items are command line arguments. This version is useful if you have arguments that contain spaces or other characters that would need to be quoted if you just passed a single string command line, since it takes care of the quoting for you.

#### Properties

- arguments : String[]; Contains an array of strings where the first item is the program to execute and the following items are the command line arguments.
- workingDirectory : String; Contains the working directory for the process.
- running : Boolean; True if the process is currently running; otherwise false. This property is read-only.
- exitStatus : Number; Contains the exitStatus of the program when it has finished. This property is read-only.

#### Member Functions

- start( env : String[] ); Tries to run a process for the command and arguments that were specified with the `argument` property or that were specified in the constructor. The command is searched for in the path for executable programs; you can also use an absolute path in the command itself. If `env` is not specified, the process is started with the same environment as the starting process. If `env` is specified, then the values in the `env` stringlist are interpreted as environment setttings of the form `VARIABLE=VALUE` and the process is started with these environment settings. If the program could not be started, an exception is thrown.
- launch( stdin : String, env : String[] ); Runs the process and writes the data `stdin` to the process's standard input. If all the data is written to standard input, standard input is closed. The command is searched for in the path for executable programs; you can also use an absolute path in the command itself. If `env` is unspecified, the process is started with the same environment as the starting process. If `env` is specified, then the values in the string list are interpreted as environment setttings of the form `VARIABLE=VALUE` and the process is started with these environment settings. If the program could not be started, an exception is thrown.
- readStdout() : String; Reads what is currently available on the process's standard output.
- readSterr() : String; Reads what is currently available on the process's standard error.
- canReadLineStdout() : Boolean; Returns true if a line can be read from the process's standard output.
- canReadLineStderr() : Boolean; Returns true if a line can be read from the process's standard error.
- readLineStdout() : String; Reads one line of text from the process's standard output if available; otherwise returns an empty string.
- readLineStderr() : String; Reads one line of text from the standard error stream of this process if available; otherwise returns an empty string.
- tryTerminate(); Asks the process to terminate. Processes can ignore this if they wish. If you want to be certain that the process really terminates, you can use `kill()` instead.
- kill(); Terminates the process. This is not a safe way to end a process since the process will not be able to do any cleanup. `tryTerminate()` is safer, but processes can ignore `tryTerminate()`.
- writeToStdin( buffer : String ); Writes the data `buffer` to the standard input stream of this process. The process may or may not read this data.
- closeStdin(); Closes the standard input stream of the process