Output - Output Settings
Output Path¶
The Output Path specifies the location where ExeOutput for PHP will create the executable file that you will distribute to your end users.
In the "Output Path" field, provide the full path to the final application file (including directory and filename). This file will have a .exe
extension.
Notes:
- It is recommended to save your project before compiling your application.
- If the application file already exists, it will be overwritten.
- If the output folder does not exist, it will be created automatically.
- Additional subfolders, such as
Data
, may be created to store extra files. - Ensure that the output folder is not read-only, especially on Windows Vista and later versions with User Account Control (UAC) enabled.
- All resources (e.g., splash screens) and source files must be present when compiling the application.
- Ensure you have sufficient free disk space, as ExeOutput for PHP does not check for available storage.
Application Title¶
ExeOutput for PHP requires a title to display in message boxes and window title bars. The application title should be a short and descriptive phrase, such as "My Wonderful Site" or "Demonstration for E=mc²". This title will appear in the Windows taskbar and Task Manager.
Application GUID¶
Just as ISBNs identify books, the Application GUID uniquely identifies your application, allowing it to store and manage its settings on the end user's computer. To generate a new GUID, click the right button.
Note: Do not change the GUID when starting a new project. If you want to share the same settings between different applications, assign them the same GUID.
Request Elevated Rights (User Account Control)¶
Configure how elevated rights are requested on Windows Vista and later versions with User Account Control (UAC).
If your application needs to perform tasks that require administrative privileges, you can set the appropriate execution level.
To set the requested execution level for Windows, you have three options:
-
Turn Off the "Request Elevated Rights (User Account Control)" option. In this case, the execution level is set to "As Invoker," meaning the application runs with the same access token as the parent process.
-
Turn On the option and choose between two levels:
- Require Administrator: The application runs only for administrators and can only be launched with the full access token of an administrator.
- Highest Available: The application runs with the highest privileges the current user can obtain.
Enable Third-Party Obsidium Software Protection API¶
If you protect your application with Obsidium software protection, you can invoke the Obsidium API directly from PHP or HEScript. Refer to our complete video tutorial for adding licensing features to your PHP apps with ExeOutput and Obsidium.
To enable support for the Obsidium API in your PHP application:
- Check the option Enable Third-Party Obsidium Software Protection API. This allows ExeOutput for PHP to use a special version of the EXE stub.
- Ensure that this special version has been previously downloaded and installed using the Web Update utility.
Please also read the licensing topic dedicated to Obsidium.
Warning
This option is not compatible with UPX compression.
Use the Same EXE Filename for PHP Child Processes¶
By default, PHP processes created by ExeOutput for PHP have a standard name. However, this can cause issues with certain Windows security solutions. In such cases, you can enable the "Use the Same EXE Filename for PHP Child Processes" option.
Important: Enabling this option may lead to occasional and random crashes of PHP processes. If you experience such crashes in your project, do not enable this option. It is disabled by default.
Disable Multithreading for Troubleshooting Purposes¶
By default, ExeOutput for PHP enables multithreading support: each PHP script called by the internal browser is executed in a separate thread or even process, independent of the UI/main thread. This ensures that the UI remains responsive.
If you encounter issues, you can disable multithreading to help diagnose the problem:
- Disable Multithreading: This will execute all PHP scripts on the main thread, which can help identify if multithreading is causing conflicts or other issues.