Calling InstallShield MultiPlatform APIs in InstallAnywhere
InstallAnywhere 2021
InstallAnywhere includes a set of InstallShield MultiPlatform APIs (Services) that you can import into a custom code action. The following service interfaces are available:
| 
                                                         Interface  | 
                                                    
                                                         Description  | 
                                                
| 
                                                         SecurityService  | 
                                                    
                                                         Provides the ability to work with users and user groups on the target system.  | 
                                                
| 
                                                         SystemUtilService  | 
                                                    
                                                         Performs system-level operations such as setting up environment variables, rebooting the system, startup commands, and OS properties.  | 
                                                
| 
                                                         FileService  | 
                                                    
                                                         Provides the ability to manipulate and query files, directories, and partitions at runtime.  | 
                                                
| 
                                                         Win32Service  | 
                                                    
                                                         Provides a variety of methods for interacting with Win32 capabilities including Windows NT Services, and Windows specific file system APIs.  | 
                                                
| 
                                                         Win32RegistryService  | 
                                                    
                                                         Provides access to the Win32 Registry for reading and writing registry data.  | 
                                                
To call InstallShield MultiPlatform APIs in an installer:
| 1. | To access to the InstallShield MultiPlatform APIs, use the following syntax: | 
InstallerProxy.getService(<ClassName>.class)
For example, to get access to the InstallShield MultiPlatform FileService, use the following code:
FileService fservice = (FileService) ip.getService(FileService.class);
//where ip is the InstallerProxy Object
When compiling code that uses these services, all JAR files in the IA_HOME/resource/services directory and the IA_HOME/resource/services/ppk directory should be in the compiler’s classpath.
| 2. | Add service support for your custom code to ensure that the services are built into the installer and made available at run time. To do so: | 
| a. | In the Advanced Designer, on the Project page, click JVM Settings. The JVM Settings view opens. | 
| b. | Click the General Settings tab. | 
| c. | Select the Add service support for custom code check box. | 
For additional information on custom code, see the following resources:
| 
                                                         Subject  | 
                                                    
                                                         Location in InstallAnywhere’s Installation Directory  | 
                                                
| 
                                                         Java Docs  | 
                                                    
                                                         /javadocs/index.html  | 
                                                
| 
                                                         Templates  | 
                                                    
                                                         /CustomCode/Templates  | 
                                                
| 
                                                         Samples  | 
                                                    
                                                         /CustomCode/Samples  |