Navigation: Learn About All Features  > Security >

Global Protection





Securing your digital content is a primary concern in today's digital age, especially when it comes to your websites. Compiling your websites is an effective approach to protect your HTML pages from unauthorized access, copying, or theft. End-users must execute the compiled website's .exe file to view your content, ensuring the safety of your original files. Moreover, it is impossible to unpack a compiled publication or ebook using a file archiver, such as 7-Zip, without actually running it. Furthermore, non Self-Extracting publications are resistant to decompilation. Please note that it's important to maintain a backup of your source files because once a publication is compiled, the extraction of source files is not feasible.


HTML Executable offers an array of security options for your publications and ebooks, which you can tailor according to your requirements:


Global Password


  If you wish to restrict the access to your publication, you can password protect it: end users will be prompted for the password before the ebook starts. If the password entered is incorrect, then an error message is displayed (given by SInvalidPassword resource string) and the ebook closes immediately.


  You can also customize the behavior of the publication when the password is incorrect thanks to the HEScript `UserMain.OnInvalidPasswordAtStartup` Boolean event. The runtime module invokes this event if the password provided by the user is incorrect. If you set the result of this event to True, the publication does not exit.


function OnInvalidPasswordAtStartup: Boolean; 
 Result := True;


  In order to create a set of acceptable passwords that can be unique, when distributing to a set of customers, wild card characters are accepted. Thus, you can set up the following global password: `123-4-A` (and so any character can be input for the wildcard place holder).


 Allowed wild card characters:


`#` digit (1..9)

`_` single character (a..z) and (A..Z)

`*` any character.


HTML Executable comes with a password generator that lets you create lists of random passwords based on the provided mask.



Choose the number of passwords to create and click Generate.


Ask for the password only once and store it


Once you have set up a global password, your end users will be asked for it each time they start your ebook. If you wish to avoid that, enable this option. Once the password has been validated, it will be stored and your users can access your ebook without being prompted for the password each time.


The password is either stored on the local computer OR on the storage device (USB stick for instance) if you are making a portable publication.


Set a global expiration date


  If you would like your publication to expire after a specific date (it does not run anymore), then just select the expiration date you want. After that date, an error message is fired (given by `SPublicationExpired` resource string) and the publication closes immediately. Changing the system clock will not modify the expiration state.


{{% notice info %}} This option, however, is not very safe: if you want to create Trial publications that can really expire "forever", then make a restricted publication. {{% /notice %}}


  When testing your publication on your own computer, you can remove the expiration state by clicking "Clear expiration info". This function will only work if the publication has expired. It is possible to remove the expiration state on other computers using the Cleanup utility.


  By associating the expiration date to a version number, you have a way to reset the global expiration once you release a new version of your ebook. For instance, you have a global rule to expire the software on `5/1/2016`, and once it's expired, you will be releasing a new version requiring everyone to upgrade.


  Finally, you can also customize the behavior of the publication when the expiration date is reached thanks to the HEScript `UserMain.OnExpiredPublication` Boolean event. The runtime module invokes this event and if you set its result to True, the publication does not exit.


function OnExpiredPublication: Boolean;
 Result := True;


Check publication size at startup


When a publication is downloaded from the Internet, if the download was not successful, this may result in a truncated file. In this case, running non-complete publications may not be safe. To prevent truncated downloads or size-modified publication files, you may enable this option. When turned on, it forces the publication to check its size. If the size is not the same as it was when the publication was built, an error message is fired.


This option is superseded by digital signatures. If you have the necessary Authenticode files (a code signing certificate), then it is even better to sign your publication.


Disable the PRINT SCREEN key


The PRINT SCREEN key allows Windows users to capture the whole screen to a bitmap, called a screenshot. This screenshot is then saved to the Clipboard and users can paste the result in any word processing tool or image editor. If you would like to disable this function, just turn on "Disable Print Screen": pressing the key won't take screenshots anymore when the publication is running.


This function, however, does NOT stop screen capture tools. Please take a look at Content Protection instead.




Some programs (such as these capture tools) may also try to override the Print Screen hotkey. In this case, there may be conflicts.

Self-Extracting publications are not able to disable all Print Screen keystroke combinations contrary to other publication types.


Only one instance of the publication can be run at a time


Enable this option to make sure that only one instance of your publication executes. If the user tries to run a second instance, it immediately exits and the previous instance gets enabled and visible.


Moreover, command-line arguments are directly passed to the running instance: this feature is useful for help files as it lets you change the current topic for instance without having to close and start another instance of the publication.


Do not allow virtual printers


This is only available for PDF files displayed with the built-in PDF viewer.


This option prevents end users from printing the PDF with a virtual printer: only physical printers are allowed. Otherwise, an end user could recreate the secured PDF file with a virtual PDF printer (which saves its output to a PDF file).


If a virtual printer is detected, the following error message is shown: `Printing is not allowed with the selected printer. Please choose another one and retry.` which can be customized thanks to the resource string named `SPrinterNotAllowed`.


HTML Executable succeeds in detecting most common virtual PDF printers. If you find a virtual printer not detected, you can report it to us.