# Preparation

CgiRemoteControl.exe is a **command-line tool** that loads a SceneComposer solution and performs processing according to a configuration XML. The concrete processing is implemented on the <span style="color: rgb(230, 126, 35);">[**plugin**](https://doc316en.candera.eu/books/cgiremotecontrol/page/plugin-side-implementation)</span> side. When necessary, pass a string command with `--PlugInControl` to invoke the plugin’s `OnPluginControl(string)`. Results are shown in the console output and by the process <span style="color: rgb(230, 126, 35);">[**exit code**](https://doc316en.candera.eu/link/1299#bkmrk-exit-code)</span>.

### Prerequisites

- .NET Framework **4.8.0 or later**
- Required files: `SCHost.dll`, `CgiRemoteControlConfig.xml`

### File Placement

- Place CgiRemoteControl.exe in the **same directory** as SceneComposer.exe.
- Place the configuration file CgiRemoteControlConfig.xml in the same directory, or **specify it as an <span style="color: rgb(230, 126, 35);">[argument](https://doc316en.candera.eu/link/1299#bkmrk-arguments)</span>** when running the tool.
- Paths may be **relative or absolute**.

#### Example Layout

```
bin/
 ├─ SceneComposer.exe
 ├─ SCHost.dll
 ├─ CgiRemoteControl.exe
 └─ CgiRemoteControlConfig.xml

```

### Configuration File

CgiRemoteControl.exe reads settings from an **XML** configuration file. Use the file name **CgiRemoteControlConfig.xml**. By specifying the location of `SCHost.dll` and the allowed wait time, the host is resolved at runtime and a timeout threshold for long-running operations is defined. If you use the default name, follow the placement above; if you use a different name or path, pass it as an argument when running the tool.

#### Minimal Sample

- **`SCHostPath`**: Path to `SCHost.dll`, relative to the tool’s directory
- **`TimeoutMilliseconds`**: Timeout in milliseconds

```xml
<CgiRemoteControlConfig>
  <SCHostPath>C:/path/SCHost.dll</SCHostPath>
  <TimeoutMilliseconds>60000</TimeoutMilliseconds>
</CgiRemoteControlConfig>

```