There are three ways for customizing user interface dialogs:


Change default messages and static dialog text in language editor.

Custom dialogs

Use custom dialogs feature to create customized dialog resources and let our protection code use them. Custom dialogs will be loaded from application with dialog resources and displayed instead of default dialogs.

Sample MS Visual Studio Win32 DLL C++ project (customdlg_cpp_sample) with default dialogs is included in full featured version so you can easily change default dialogs as required.

STEP 1: Develop your own user interface dialog resources and put them in a single Win32 application (.exe or .dll). 

Be sure to use appropriate resource control ID's for each dialog control. Full list of control ID values is available in CUSTDLG.H file which is included in full featured version.

STEP 2: Instruct PC Guard to use your dialogs instead of default dialogs.

Custom dialogs settings

Enable "Custom dialogs" feature.

Set "Application with custom dialogs" value. This is the name of application (.exe or .dll) with dialog resources. Only application name should be set here (for example: 'myapp.exe' or 'myapp.dll') and not full path to application.

Set "Activation dialog ID". This is string resource ID of activation dialog resource. For integer identifiers use # in front of identifier (for example, if dialog ID is 104 you should use '#104'). There is no need for developing all interface dialogs. PC Guard will use appropriate default dialog in case dialog ID is left empty.

Default activation dialog

Fig. 1: Default activation dialog

License removal dialog ID

String resource ID of license removal dialog.

Custom dialogs: license removal dialog

Fig 2: Default license removal dialog (displayed after license removal)

License transfer dialog ID

String resource ID of license transfer dialog.

Custom dialogs: default license transfer dialog

Fig 3: Default license transfer dialog (displayed after license transfer)

Password protection dialog ID

String resource ID of password prompt dialog.

Custom dialogs: default password dialog

Fig 4: Default password prompt dialog

Keep existing dialog titles option

By default, Application name value is used for dialog titles. Select this option to keep original dialog titles as set in resource data.


- 'Application with custom dialogs' value is mandatory. This application should be located in same directory with protected application.

- Do not enable resource encryption for application which holds dialog resources if you are going to protect it with remote protection method. Protection code will not be able to load and use custom dialogs in case application is encrypted.

- Be sure to carefully test your dialogs before distributing protected application to end users.

- Default activation dialog titles (such as button titles) can be changed in language editor.

Not flexible enough? Take full control!

This requires additional programming on your side and use of advanced protection interface functions but you will have full control over license management tasks.

Here are required steps for implementing this scenario:

STEP 1: Enable demo mode together with date or exec limitation.

STEP 2: Enable protection interface.

STEP 3: Set "Protected application will handle expired demo option" option.

STEP 4: Set "Protected application will handle license management" option to manage license removal, update or license transfer from your code.

STEP 5: Set "Protected application will handle expired license" option to manage expired limited license from your code.

Protection code will only mark protected application as expired and pass control to protected application.

Protected application will be responsible for handling license management by using advanced protection interface functions.

For example, you can display your own activation dialog and activate protected application by calling UnlockApplication() protection interface function.

- Windows 32/64 bit applications can directly use advanced protection interface functions.

- Visual Studio 2019 C/C++, Delphi (32/64 bit), C++ Builder (32/64 bit), Visual Basic (VB6) sample source code projects are available in full featured version.

- NET applications can use alternate protection interface implementation or let another Windows application protected with same settings manage licensing tasks.

- C# and Visual Basic (VB.NET) alternate protection interface example projects with source code are available in full featured version.

Related KB articles