EZ Trialâ„¢ is a pre-defined algorithm executed at startup that permits you, using only a minimal amount of programming effort, to determine the mode of the application. Included in the routine are the most commonly used features of PLUS, such as timed demos that convert to live products with optional copy protection. EZ Trial is included to help you get started quickly; but, because it implements a pre-defined algorithm, it may not satisfy all requirements.
This function operates differently than the normal PLUS functions in that they run based upon data stored in a PLUS License File. The utility LFEdit is used to program in the options through the Product Definition EZ Trial Parameters. Once a new License File is created, the option bits are stored, and the EZ Trial functions know exactly how to operate.
Algorithm Definition
During runtime, the EZ Trial goes through the following steps automatically. Note the return value or mode is listed after the words SUCCESS or FAIL.

As you can see from this diagram, the EZ Trial contains quite a bit of pre-programmed logic. Notice how there is a License File stored in the application directory (or any other specified path). This License File will contain all of the EZ Trial options that you selected in LFEdit and will dictate which of the branches in the flowchart are processed. In the DLL/LIB interface, a return code from the function pp_eztrial1() indicates the status or mode that the application should run (e.g. 2 means valid demo, 4 means expired demo, 1 means valid retail version, 6 means valid retail version in Periodic expiration mode, etc.). In the ActiveX interface, events such as StatusChanged, Expired, or ClockTurnedBack will fire depending on the status or mode determined by the above flowchart.
EZ Trial2 Versus EZ Trial
CAUTION
We strongly recommend you investigate using Instant PLUS before using EZTrial2.
For more information please refer to the Instant PLUS Manual.
Included with Protection PLUS Version 4.109a or later is EZTrial2. The EZTrial2 functionality is designed to be a one-function call interface to implement the most common trialware implementation and optional online purchasing with Instant SOLO. In addition to the above flow chart algorithm, the function will automatically display a dialog box at startup similar to the one below:

Before using EZTrial2, we strongly recommend you investigate using Instant PLUS instead. Please review the Instant PLUS chapter for more details.
License File Aliases
To help prevent the user from tampering with the security system to gain unauthorized additional time with a demo, License File Aliases are stored on the user's system and automatically maintained by EZ Trial. In order for a user to successfully reset a demo, they would need to know where all of the aliases are stored and remove them.
When you save a License File in LFEdit on your development machine, the License File Aliases are automatically deleted. This allows you to change your date and time and not have to worry about the aliases preventing you from testing all options.
To reset your EZ Trial environment on your development machine, you simply need to create a new License File in LFEdit and save it. The demo period will start over and all aliases will be deleted. If you want to find out the names of the aliases, open the Product Definition / License File tab then click on Alias Names button. License File Aliases are not shipped with your application, but rather they are created automatically when the user runs your application for the first time.
The file in SYSDIR_FILENAME will be in your Windows system directory (usually System32 or SysWOW64 on 64-bit Windows). The GUIDs found in REG_ALIAS1 and REG_ALIAS2 will be stored in HKEY_CLASSES_ROOT\CLSID\{}.
Using EZ Trial on a Network
Because most network installations do not maintain synchronized clocks, it is important that the last used time is not verified between installations, especially when License File Aliases are used. Be sure to turn off "Update last used time" in the EZ Trial Parameters tab of the product definition. In the ActiveX control, it is necessary to also set the UseLastUsedTime property to False.
Implementation
If using the DLL/LIB interface, refer to Implementing EZ Trial and EZ Trigger or Implementing EZ Trial 2 for more information. With the ActiveX interface, refer to Implementing EZ Trial and EZ Trigger.