Symantec WISESCRIPT EDITOR 7.0 SP2 - FOR WISE INSTALLATION EXPRESS V1.0, WISESCRIPT EDITOR 7.0 SP2 - REFERENCE V1.0, WISESCRIPT EDITOR 7.0 SP2 Installation Manual

Page 1
WiseScript Editor Reference
Page 2
WiseScript Editor
The software described in this book is furnished under a license agreement and may be used only in accordance with the terms of the agreement.
Documentation version 7.0 SP2 in Wise Installation Express and 8.0 in Wise Package Studio
Copyright © 2010 Symantec Corporation. All rights reserved. Symantec, the Symantec Logo, and Altiris are trademarks or registered trademarks of Symantec Corporation or its affiliates in the U.S. and
other countries. Other names may be trademarks of t heir respective owners. The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse
engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Symantec Corporation and its licensors, if any.
THE DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE E XTENT THAT SUCH DISCLAIMERS ARE HELD T O BE LEGALLY INV ALID . SYMANTE C CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE.
The Licensed Software and Documentation are deemed to be commercial computer software as defined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19 “Commercial Computer Software - Restricted Rights” and DFARS 227.7202, “Rights in Commercial Computer Software or Commercial Computer Software Documentation”, as applicable, and any successor regulations. Any use, modification, reproduction release, performance, display or disclosure of the Licensed Software and Documentation by the U.S. Government shall be solely in accordance with the terms of this Agreement.
Symantec Corporation 350 Ellis Street Mountain View, CA 94043
http://www.symantec.com
WiseScript Editor Reference 2
Page 3
Technical Support
Symantec Technical Support maintains support centers globally. Technical Support’s primary role is to respond to specific queries about product features and functionality. The Technical Support group also creates content for our online Knowledge Base. The Technical Support group works collaboratively with the other functional areas within Symantec to answer your questions in a timely fashion. For example, the Technical Support group works with Product Engineering and Symantec Security Response to provide alerting services and virus definition updates.
Symantec’s maintenance offerings include the following:
z A range of support options that give you the flexibility to select the right amount of
service for any size organization
z Telephone and/or web-based support that provides rapid response and up-to-the-
minute information
z Upgrade assurance that delivers software upgrades z Global support purchased on a regional business hours or 24 hours a day, 7 days a
week basis
z Premium service offerings that include Account Management Services
For information about Symantec’s support offerings, you can visit our web site at the following URL:
www.symantec.com/business/support/
All support services will be delivered in accordance with your support agreement and the then-current enterprise technical support policy.
Contacting Technical Support
Customers with a current maintenance agreement may access Technical Support information at the following URL:
www.symantec.com/business/support/
Before contacting Technical Support, make sure you have satisfied the system requirements that are listed in your product documentation. Also, you should be at the computer on which the problem occurred, in case it is necessary to replicate the problem.
When you contact Technical Support, please have the following information available:
z Product release level z Hardware information z Available memory, disk space, and NIC information z Operating system z Version and patch level z Network topology z Router, gateway, and IP address information z Problem description:
Error messages and log files
WiseScript Editor Reference 3
Page 4
Troubleshooting that was performed before contacting Symantec Recent software configuration changes and network changes
Licensing and registration
If your Symantec product requires registration or a license key, access our technical support Web page at the following URL:
www.symantec.com/business/support/
Customer service
Customer service information is available at the following URL:
www.symantec.com/business/support/
Customer Service is available to assist with non-technical questions, such as the following types of issues:
z Questions regarding product licensing or serialization z Product registration updates, such as address or name changes z General product information (features, language availability, local dealers) z Latest information about product updates and upgrades z Information about upgrade assurance and maintenance contracts z Information about the Symantec Buying Programs z Advice about Symantec’s technical support options z Nontechnical presales questions z Issues that are related to CD-ROMs or manuals
Support agreement resources
If you want to contact Symantec regarding an existing support agreement, please contact the support agreement administration team for your region as follows:
Asia-Pacific and Japan customercare_apac@symantec.com Europe, Middle-East, and Africa semea@symantec.com North America and Latin America supportsolutions@symantec.com
Additional enterprise services
Symantec offers a comprehensive set of services that allow you to maximize your investment in Symantec products and to develop your knowledge, expertise, and global insight, which enable you to manage your business risks proactively.
Enterprise services that are available include the following:
WiseScript Editor Reference 4
Page 5
Managed Services Managed services remove the burden of managing and
monitoring security devices and events, ensuring rapid response to real threats.
Consulting Services
Educational Services
To access more information about Enterprise services, please visit our Web site at the following URL:
www.symantec.com/business/services/
Select your country or language from the site index.
Symantec Consulting Services provide on-site technical expertise from Symantec and its trusted partners. Symantec Consulting Services offer a variety of prepackaged and customizable options that include assessment, design, implementation, monitoring, and management capabilities. Each is focused on establishing and maintaining the integrity and availability of your IT resources.
Educational Services provide a full array of technical training, security education, security certification, and awareness communication programs.
WiseScript Editor Reference 5
Page 6
Contents
Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
About WiseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
WiseScript Benefits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Starting the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
The Product Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Using WiseScripts in a Windows Installer Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Compiling, Testing, and Running a WiseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Creating a Portable Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Product Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Chapter 2: Project Settings for Script Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
About Project Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
About the Project Settings View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Compiler Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Digital Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Chapter 3: Using Script Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
About Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
The Script Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Customizing the List of Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Types of Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Adding an Action to a Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Editing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Finding and Replacing Text in a Script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
About User-Defined Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Creating a User-Defined Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Creating a User-Defined Action: Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Basic Scripting Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Conditions and Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Variables and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Compiler Variables and Run-time Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Anatomy of an Installation Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Chapter 4: WiseScript Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
About WiseScript Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
About SVS Script Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Activate SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Add Directory to PATH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Add File to SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Add Text to INSTALL.LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Add to AUTOEXEC.BAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Add to CONFIG.SYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Add to SYSTEM.INI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
WiseScript Editor Reference 7
Page 7
Browse for Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Call DLL Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
DLL Parameter Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Passing Complex Structures to a .DLL: An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Capture Application to SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Change SVS Layer GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Check Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Check Disk Space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Check HTTP Connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Check If File/Dir Exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Check In-use File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Check Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Compiler Variable Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Config ODBC Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Copy Local File(s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Create Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Create Directory in SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Create Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Create Shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Create Shortcut in SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Create SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Create Virtual Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Custom Billboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Custom Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Deactivate SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Delete File from SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Delete File(s). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Delete SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Display Billboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Display Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Display Progress Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Display Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Edit INI File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Edit Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Registry Key Settings Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Edit Registry for SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Else Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
ElseIf Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
End Statement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Evaluate Windows Installer Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Execute Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Execute VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Editing a VBScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
VBScript Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Calling a COM Object in a VBScript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Exit Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Export SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Find File in Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Find First SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Find Next SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Find SVS Layer GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Get Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Get Name/Serial Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Get Registry Key Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
WiseScript Editor Reference 8
Page 8
Get SVS Layer Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Get System Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Get Temporary Filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Get Windows Installer Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Halt Compilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
If Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Import SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Include Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Initialize SVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Insert Line Into Text File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Install File(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Install SVS Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Install WiseUpdate Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
About Windows Mobile Installations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Process for Adding Mobile Device Support to a WiseScript. . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Install Windows Mobile Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Modify Component Size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Open/Close Install.log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Parse String. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Play Multimedia File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Post to HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Prompt for Filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Prompt for Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Radio Button Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Read INI Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Read/Update Text File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Read/Write Binary File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Reboot System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Register Font. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Remark. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Remove SVS Exclude Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Rename File/Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Rename File or Directory in SVS Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Rename SVS Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Search for File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Self-Register OCXs/DLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Set Activate SVS Layer on Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Set Control Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Set Control Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Set Current Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Set File Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Set Files/Buffers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Set SVS Exclude Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Set Variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Set Web Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Set Windows Installer Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Start/Stop Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
While Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Win32 System Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Wizard Loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Chapter 5: Creating Custom Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
About Dialog Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
WiseScript Editor Reference 9
Page 9
About the Custom Dialog Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Adding a Dialog Box to the Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Editing Dialog Boxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Setting Dialog Box Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
About Dialog Box Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Adding and Editing Dialog Box Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Adding Check Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Adding Combo Box Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Adding Edit Text Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Adding Graphic Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Adding Group Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Adding Hot Text Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Adding List Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Adding Play AVI Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Adding Push Button Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Adding Radio Button Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Adding Rectangle Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Adding Text Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Specifying Execute Program Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Aligning and Spacing Dialog Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Setting Tab Order of Dialog Box Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Solutions for Dialog Box Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Changing the Default Graphic on Wizard Dialog Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Keeping Disabled Controls From Reactivating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
About Custom Dialog Box Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Creating a Dialog Box Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Configuring Dialog Box Set Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Creating a Custom Dialog Box Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Dialog Box Script Actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Dialog Box Script Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Chapter 6: Creating Custom Billboards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
About Billboards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Accessing the Custom Billboard Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
About the Custom Billboard Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Opening and Saving Custom Billboards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Adding Objects to a Billboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Editing Billboard Text Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Editing Billboard Line Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Editing Billboard Rectangles and Ellipses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Editing Billboard Polygon Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Editing Billboard Bitmap Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Resizing, Moving, and Aligning Billboard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Setting Billboard Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Chapter 7: Troubleshooting WiseScripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
About Troubleshooting a WiseScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Using the Installation Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
File Replacement Problems in System32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Chapter 8: Quick Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Automatic Compiler Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Automatic Run-time Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Run-time Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
WiseScript Editor Reference 10
Page 10
SVS Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Expression Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Command-Line Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
WiseScript Command-Line Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
WiseScript Installations Command-Line Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Uninstall Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
WiseScript Editor Reference 11
Page 11
Chapter 1
Introduction
This chapter includes the following topics:
z About WiseScript on page 12 z WiseScript Benefits on page 12 z Starting the Software on page 13 z The Product Interface on page 14 z Using WiseScripts in a Windows Installer Installation on page 14 z Compiling, Testing, and Running a WiseScript on page 15 z Product Documentation on page 16
About WiseScript
WiseScript Editor is a WiseScript™ authoring environment that you can use to automate administrative tasks. You also can use it to create .EXEs to use as custom actions in Windows Installer installations. These custom actions can extend the capabilities of Microsoft Windows Installer and simplify installation tasks (example: parsing and arithmetic functions) that are difficult to accomplish with Windows Installer.
WiseScript Editor is embedded within Windows Installer Editor and appears when you create a custom action that calls a WiseScript.
WiseScript Benefits
WiseScript is a high-level scripting language that consolidates dozens or hundreds of lines of code into predefined script actions.
What Makes WiseScript Unique
z Easy to learn
WiseScript supports a point-and-click method of scripting. The script author is prompted for the parameters needed by each script action, so a script can be created and tested very quickly. The script is displayed in clear, English-like statements. For those who need additional flexibility and control, WiseScript provides advanced features (examples: IF blocks, WHILE loops, UI dialog boxes).
z No runtime needed
WiseScripts are compiled into self-contained .EXEs that do not require an agent or runtime files on the destination computer.
z Compact size
A WiseScript .EXE is small in size (about 100 KB). If a script uses any files that may not be on the destination computer, it can compress those files into the .EXE. (Example: A script that detects and removes spyware might temporarily install Kill.exe on the destination computer while the script is running.)
WiseScript Editor Reference 12
Page 12
Introduction
z Built-in rollback
WiseScripts can be rolled back after they are executed on the destination computer.
z User interface
WiseScripts can incorporate any type of dialog box to either inform the end user or prompt for input.
z WiseScript is powerful
In addition to the dozens of predefined actions, WiseScripts can call VBScripts and DLL functions, making it possible to use any Windows system call.
z WiseScript is fast
Because the WiseScript engine is written in C++, when you build a WiseScript, you are building a C++ program. A WiseScript executes faster than a VBScript that performs the same operation.
z WiseScript is extensible
You can streamline your scripting process by creating your own script actions for tasks that you perform frequently. To create a user-defined action, create a WiseScript .WSE (project file) and save it in the Actions subdirectory of the WiseScript product’s installation directory. Your action will be available for use in future scripts.
WiseScript Examples
In addition to creating installation packages, following are just a few of the tasks you can accomplish with WiseScript. For samples of some of these scripts, see the article
Performing System Administration Tasks With WiseScripts in the Altiris Knowledgebase
(Article #27374).
z Move files and directories. z Modify a machine resource (example: registry key or .INI file). z Locate and delete a file and its directory (example: to remove a spyware program). z Free disk space by clearing the Temp directory, the Recycle Bin, or the Internet
cache.
z Find the current Windows version. z Find and report system information and take action depending on the results. z Map a network drive. z Create, edit, or manage virtual software layers on computers that have the SVS
Driver (Software Virtualization Agent). For details, see the article Using WiseScripts
to Manage and Update Virtual Software Packages in the Altiris Knowledgebase
(article 27373).
z Assign license numbers from a text file.
Starting the Software
The WiseScript Editor interface is embedded within MSI Script in Windows Installer Editor. This lets you create WiseScripts for Windows Installer custom actions.
In MSI Script, add or double-click a custom action that runs a WiseScript. On the Details tab of the Run WiseScript dialog box, click Options.
z To open a blank script, select Create New WiseScript from the button menu.
WiseScript Editor Reference 13
Page 13
z To open an existing script, select Edit Existing WiseScript from the button menu.
You can begin to add or edit script actions. For information on adding script actions, see Adding an Action to a Script on page 26.
For a description of each script action, see About WiseScript Actions on page 40.
See also:
About Script Editor on page 22
The Product Interface
WiseScript Editor has the following views:
z Project Settings
The Project Settings view contains several pages that provide information that is required by certain script actions.
See About the Project Settings View on page 17.
z Script Editor
Script Editor provides a powerful and easy-to-use scripting environment based on the WiseScript™ scripting language.
Introduction
See About Script Editor on page 22. Script Editor lets you create powerful .EXEs to use as custom actions in a Windows
Installer installation.
To navigate between views, click the navigation tabs at the lower left of the main window.
Using WiseScripts in a Windows Installer Installation
Windows Installer Editor compiles installations into Windows Installer (.MSI) format. Therefore, it can provide only those capabilities that are provided by the Windows Installer SDK environment. WiseScript Editor provides an additional authoring environment that has a larger selection of more versatile script actions than those provided by Windows Installer products.
You can use WiseScript-based .EXEs in the same way that you use functions in .DLLs. You write the main installation in a Windows Installer product, but when you need to perform an advanced function, you can create a WiseScript .EXE and call it with a custom action in the Windows Installer installation.
Creating a WiseScript .EXE has some advantages over writing a custom program to create an .EXE:
z WiseScript Editor uses predefined, easy -to-use script actions to accomplish common
installation tasks.
z You can pass Windows Installer properti es in and out of the WiseScript .EXE.
See Get Windows Installer Property on page 90 and Set Windows Installer Property on page 116.
z You can evaluate Windows Installer conditions within a WiseScript .EXE.
WiseScript Editor Reference 14
Page 14
See Evaluate Windows Installer Condition on page 77.
The disadvantage of using a WiseScript .EXE is that Windows Installer does not know about or manage system changes performed by a WiseScript .EXE (example: installation of a file).
See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
Compiling, Testing, and Running a WiseScript
T o test an installation, use the Compile, Test, and Run buttons at the bottom of the main window.
z Compile
Click Compile to build a single executable file that contains the ins tallation script as well as all the files needed for the installation. This is the installation .EXE that you distribute to end users. If any files are absent or not readable, error messages appear when compiling.
z Test
Click Test to compile and run the installation in test mode. In test mode, the installation performs all script actions without actually installing or modifying files. However, if any script lines are dependent on files being installed by previous script lines, then test mode might fail. Example: If an Install File(s) line copies a ReadMe to the Temp directory and a second script line tries to open ReadMe, the second script line fails because the ReadMe is not in the Temp directory.
Introduction
z Run
Click Run to execute the installation just as it would execute on the destination computer. Files are installed on your computer and your system is modified.
Creating a Portable Project
You can create a portable WiseScript project that contains all of the fil es in a WiseScript including its source files. A portable project is a self-extracting .EXE. Use it to:
z Easily move WiseScript projects from one computer to another without having to
copy source files.
z Share WiseScript projects with others, who can then open and edit your WiseScript
with all of its source files.
To create a portable project
1. Select File menu > Create Project Package.
2. Complete the Create Project Package dialog box:
Project Name
Enter a name for the portable project. When the portable project .EXE is run, it extracts the project’s files and puts them in a directory with this name.
Add default scripts that are included in this WiseScript
Mark this to add any default WiseScripts or VBScripts that are included in the WiseScript. These default scripts are in the WiseScript Editor\Actions or WiseScript Editor\Include directories. If you have modified these scripts and they are included in the WiseScript, then you should include them in the project
WiseScript Editor Reference 15
Page 15
Password protect the project package
To add password protection to the project, mark this option and then enter and confirm the password.
3. Click OK. The Save As dialog box appears.
4. Specify the file name and location for the portable WiseScript project and click Save.
Product Documentation
This documentation assumes that you are proficient in the use of the Windows operating system. If you need help using the operating system, consult its user documentation.
Use the following sources of information to learn about this product.
Online Help
The online help contains detailed technical information and step-by-step instructions for performing common tasks.
Access help in the following ways:
z To display context-sensitive help for the active window or dialog box, press F1.
Introduction
z To select a help topic from a table of contents, index, or search, select Help menu >
Help Topics.
Reference Manual
All the material in the online help is also available in a .PDF-format reference manual, which you can access by selecting Help menu > Reference Manual.
Getting Started Guide
The Getting Started Guide contains system requirements and installation instructions. You can access a .PDF version of the Getting Started Guide from the Windows Start menu.
Release Notes
The product release notes cover new features, enhancements, bug fixes, and known issues for the current version of this product. T o access the release not es, select Release
Notes from the Symantec program group on the Windows Start menu.
WiseScript Editor Reference 16
Page 16
Chapter 2
Project Settings for Script Support
This chapter includes the following topics:
z About Project Settings on page 17 z About the Project Settings View on page 17 z Compiler Variables on page 18 z Digital Signature on page 20 z General Information on page 21
About Project Settings
Several script actions require information that is defined outside Script Editor. The Project Settings view provides pages on which you can define that information.
See About the Project Settings View on page 17.
See also:
Compiler Variables on page 18 Digital Signature on page 20 General Information on page 21
About the Project Settings View
The Project Settings view contains several pages that provide information that is required by certain script actions. (Example: The Compiler Variable If action requires a compiler variable to be defined on the Compiler Variables page.)
T o access Project Set tings, click Project Settings at the lower left of the WiseScript Editor main window.
WiseScript Editor Reference 17
Page 17
Project Settings fo r Script Support
Page Groups
View Navigation
Page Area
When you click a page name in a page group, this area displays the page’ s options. Each page lets you define information that is required by a specific script action.
z Use ( ) on the toolbar to navigate from page to page, or click the page name in
z To display help for the current page, press F1.
Page Area
Compile, Test, and Run
the list of pages.
z To return a page to its last saved state, select Edit menu > Reset Page.
View Navigation
Click these tabs to change views.
Compiling and Testing
Compile, Test, Debug, and Run buttons test and compile the WiseScript.
Compiler Variables
Use the Compiler Variables page to set compiler variables that change the WiseScript during compile. You can use compiler variables to include or exclude portions of script from the compiled .EXE or to build a debug version of the WiseScript.
You set the default v alue of compiler v ariables on the Compiler Variables page, and then you select the compiler variables in the Compiler Variable If action in Script Editor.
WiseScript Editor Reference 18
Page 18
Project Settings fo r Script Support
Compiler variables are surrounded by % characters in the script. (Example: %_DEBUG_%)
You can change the value of compiler variables when you compile. The sample script Compvar.wse uses compiler variables. For details on sample scripts,
see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
To add a compiler variable
1. Select Project Settings > Compiler Variables page.
2. Click Add. The Compiler Variable Settings dialog box appears.
3. Complete the dialog box:
Variable Name
Enter the name of the compiler variable. By convention, compiler variables begin and end with an underscore character (_). Although this convention is not enforced, it helps distinguish compiler variables from regular variables in scripts.
Default Value
Enter the default value of the compiler variable.
Description
Briefly describe how the variable is used. This appears on the dialog box when you are asked to choose a value for the variable.
Value List
For compiler variables that are displayed as a list, enter a list of valid values, each on a separate line.
Data Entry Type
Select the method to use to enter data for the compiler variable.
Do Not Prompt for Value
If this is marked, you are not prompted for the value of this variable when compiling even if Prompt for Compiler Variables is marked on the Compiler Variables page. Mark this for variables that you do not expect to change frequently.
4. Click OK.
5. On the Compiler Variables page, mark one of the following:
Compiling from Command Line
Mark this to be prompted for the value of compiler variables when you compile from the command line. Use this for automated build processes. You can specify compiler variable values by entering the value directly on the command line or by storing the values in a text file.
See Command-Line Options on page 166.
Compiling from Within Wise
Mark this to be prompted for the value of compiler variables when you compile from WiseScript Editor. If you mark this, then a Select Compile Settings dialog box appears during compile and lists this compiler variable’s values. A dialog box appears for each compiler variable you define. V alue length is limited by the amount of text that displays on the dialog box. The Do not prompt for value check box on the Compiler Variable Settings dialog box overrides this setting.
WiseScript Editor Reference 19
Page 19
See also:
Automatic Compiler Variables on page 157
Digital Signature
Use the Digital Signature page to add an Authenticode digital signature to an installation file so its integrity and authenticity can be verified.
Digital signature methods
The file signing tool that is used to digitally sign a file depends on the type of your digital certificate:
z Public/private key pair files
This method requires a credentials file (.SPC or .CER) and a private key file (.PVK). This method is supported by the signcode.exe tool. For details, search for “Signcode” in the MSDN Library (msdn.microsoft.com/library/).
z Personal Information Exchange file
This method requires a Personal Information Exchange file (.PFX), which is a container file for the public/private key information. This method is supported by the signtool.exe tool. For details, search for “Signtool” in the MSDN Library (msdn.microsoft.com/library/).
Project Settings fo r Script Support
Requirements
z You must have a valid code signing certificate, which you can obtain from a
commercial certificate authority such as V e ri sign. F or a list of certificate authorities, search for “Microsoft Root Certificate Program Members” in the MSDN Library (msdn.microsoft.com/library/).
z You must have the signtool.exe or signcode.exe tool on your computer. z Signtool.exe requires the CAPICOM 2.0 redistributable to be installed and registered
on your computer. CAPICOM provides services for digitally signing applications, and is available from the Microsoft Web site.
z The location of signtool.exe or signcode.exe must be added to your Path
environment variable.
To add a digital signature
Select Project Settings > Digital Signature and complete the page.
z Add a digital signature externally
Mark this to leave space in the installation for a digital signature without actually adding it to the installation. This is useful if the installation must be digitally signed under a higher security environment by a different individual. Extra space is reserved to allow for the digital signature information. If an installation does not have extra space (approximately 5 K), and a digital signature is added, errors occur when CRC checks are performed because of the resulting size increase. This option eliminates those errors.
z Add a digital signature
Mark this to add a digital signature to the installation and to enable the following fields:
WiseScript Editor Reference 20
Page 20
Project Settings fo r Script Support
Web URL
Enter your company’s Web site address.
Descriptive Name
Enter the name of your application. This name is embedded in your Authenticode certificate to let end users verif y the na me of the application they are installing.
TimeStamp URL
Specify the URL you use for your timestamping service. Timestamping lets end users distinguish between a certificate that has expired but was valid when it was used to sign the installation, and a certificate that was used to sign an installation while it was expired. The timestamping service must be available on your computer to build the installation but does not need to be available to the end user running the installation.
z Certificate options
Signtool.exe with Personal Information Exchange file
Mark this to use signtool.exe and then specify the Personal Information Exchange file (.PFX) to use.
Signcode.exe with public/private key pair files
Mark this to use signcode.exe and then specify the credentials file (.SPC or .CER) that contains your Digital ID, and your private key file (.PVK).
General Information
Use the General Information page to set the summary informat ion for the compiled .EXE file. End users can see the summary information by right-clicking the compiled .EXE in Windows Explorer and selecting Properties.
If you plan to use an automated build system and want to set these values at compile time, create compiler variables to set these values, and enter the compiler variable name, surrounded by percent signs, in these fields. (Example: If you create a compiler variable named _INST_VERSION_ to set the version, enter %_INST_VERSION_% in the Installation Version field.)
See Compiler Variables on page 18. Select Project Settings > General Information and complete the page.
z Installation Version
The version number of the WiseScript.
z Description
A description of the WiseScript, perhaps including your application’s name.
z Copyright
The copyright notice for the WiseScript.
z Company Name
WiseScript Editor Reference 21
Page 21
Chapter 3
Using Script Editor
This chapter includes the following topics:
z About Script Editor on page 22 z The Script Editor Window on page 22 z Types of Scripts on page 25 z Adding an Action to a Script on page 26 z Editing Scripts on page 26 z About User-Defined Actions on page 28 z Basic Scripting Concepts on page 32
About Script Editor
All WiseScript products contain the Script Editor scripting en vironment. The Script Editor scripting environment consolidates numerous lines of code into predefined script actions. You don’t need to memorize commands because Script Editor supports a point­and-click method of scripting. The script you create is displayed in clear, English-like statements. You compile the script, along with files and other resources, into an .EXE. When the .EXE is run, the script runs, executing the actions that are specified in the script.
The Script Editor Window
The Script Editor window contains all the tools necessary to develop and edit WiseScripts. To access Script Editor, click Script Editor at the lower left of the main window.
WiseScript Editor Reference 22
Page 22
Using Script Editor
Title
Actions list
Event and Language drop­down lists
Script list
Tabs for the main script and each include script or VBScript
Compile, Test, and RunView Navigation
Title
This field contains the script’s name. When you run the installation, this name appears at the top of the splash dialog box (the Initializing Wise Installation wizard dialog box), and in the title bar of the installation screen.
Event
From this drop-down list, you select the script to edit. The Mainline script is the script that typically contains installation instructions.
See Customizing the List of Actions on page 24.
Language
From this drop-down list, you select a language for the WiseScript. This drop-down list includes all the languages that are supported in the installation.
When you add a script line or custom dialog box that presents text to the end user, select each language in the Language drop-down list, and edit that script line so it contains the translated text. (Example: You set an installation to support French and English on the Languages page. While in the English script, you add a Display Message script line that states, “Do you want to view the ReadMe file now?” You should then select French from the Language drop-down list and edit the script line you just added with a French translation of the message.)
WiseScript Editor Reference 23
Page 23
Using Script Editor
Actions
The actions are arranged in groups under title bars. If you click the All Items title bar , it displays all the actions you can add to your script. The SVS Items group displays SVS specific actions, the Favorites group displays some of the most commonly used actions, while the Custom group is by default empty. You can also create your own action groups.
See Customizing the List of Actions on page 24.
Script List
This list contains the script that is executed when an end user runs the .EXE. For information on working with scripts, see Adding an Action to a Script on page 26 and
Editing Scripts on page 26.
Script lines are color-coded based on the type of the script line. The color code is as follows:
z Compiler Variable Items - gray z Include Script Items - black z Install/Copy File Items - black z Logic items - blue z New Variable Values - red z Remarks - gre en
Script Tabs
A tab for the current installation script appears at the bottom of the installation script area. When you add an Include Script or VB Script action to the current installation script, a tab for that script appears next to the tab for the current installation script.
Script Line Numbering
z To show or hide script line numbers, select View menu > Line Numbers. z Connection lines connect the beginning and end of an If block or a loop. To show or
hide connection lines, select View menu > Connection Lines.
Customizing the List of Actions
Script Editor contains four default action groups: All Items, SVS Items, Favorites, and Custom. You can add up to 10 additional groups and add any actions that appear in the All Items group to any other group. The All Items group contains all actions, and you cannot remove this group or any of its actions. You can remove any of the other groups and edit the actions that appear in the groups.
To add an action group
1. Right-click anywhere in the Actions list and select Add Group. The Group Name dialog box appears.
2. Enter the name of the new group and click OK. The Select Items for Group dialog box appears.
3. Select the actions to include in the group and click OK.
WiseScript Editor Reference 24
Page 24
The new action group appears with the actions you selected.
To edit an action group
1. Click the title bar of the action group. You cannot edit or remove the All Items group.
2. Right-click below the action group title bar and select Add/Remove Items. The Select Items for Group dialog box appears.
3. Add, delete, or move group items and click OK.
You can customize the Actions list further by creating user-defined actions. See About User-Defined Actions on page 28.
Types of Scripts
In Script Editor, you can edit the following scripts:
Event Scripts
Event scripts handle events. (Example: The end user cancels the installation.) You can select from the Event drop-down list and edit:
Using Script Editor
z Mainline
The primary script that’s executed during the normal installation process. It contains placeholders for Cancel and Exit scripts. When you open a script, that script is considered the “main installation script,” and is on the first tab below the installation script.
z Exit
The script that’s executed when the installation is complete, or when an Exit Installation script command is executed. If you create a user-defined action, you store its custom dialog box here.
See Creating a User-Defined Action on page 29.
z Cancel
The script that’s executed when the end user cancels the installation. Because some files might already be installed when the end user cancels, the Cancel script contains the include script, rollback.wse, which returns the destination computer to its pre-installation state.
Include Scripts
Include scripts are added to an installation with an Include Script action. See Include Script on page 92. Scripts can be included either in the main installation script or in other include scripts. At
run time, include scripts are run when the Include Script action that references them is encountered. For each Include Script action in a script, a new tab appears at the bottom of the Installation Script pane.
Include scripts can help save time in developing installati ons, because you can develop a library of WiseScripts that perform very specific functions. You can re-use these specialized scripts in future installations and easily share them with colleagues.
WiseScript Editor Reference 25
Page 25
VBScripts
VBScripts are added to an installation with an Execute VBScript action. See Execute VBScript on page 78. VBScripts can be included either in the main installation script or in include scripts. At
run time, VBScripts are run when the Execute VBScript action that re ferences them is encountered. For each Execute VBScr ipt action in a WiseScript, a new tab appears at the bottom of the Installation Script pane. When you click this tab, a VBScript window appears.
See Editing a VBScript on page 79. By adding VBScripts, you can greatly expand the functionality of WiseScripts because
you can use all the scripting capabilities of VBScrip t (example: arr ays and subfunctions). Adding VBScripts can also save you time because you can use scripts that others have created.
Adding an Action to a Script
in Script Editor, do any of the following:
z From the Actions list in the left pane, drag an action onto a line in the Installation
Script list in the right pa ne. The new action appears above the line that is
highlighted when you drop the action.
Using Script Editor
z Click in the script and double-click the action in the Actions list to place the new
z Click in the script and start typing the first few letters of the action name. As you
When you add an action, a dialog box appears that lets you set the parameters for the action unless it does not require parameters. When you add a Custom Dialog or Custom Billboard action, the appropriate editing environment opens.
Some actions come in pairs. (Example: When you add an If action, you must also add an End action at the end of the condition block.) Script Editor indents actions inside these pairs.
Use the same methods to add an action to a VBScript. See VBScript Actions on page 80.
Editing Scripts
To edit a WiseScript in Script Editor, use the commands on the Edit menu, the commands on the right-click menu, or the tools on the toolbar. You can edit only one script line at a time, but you can cut, copy, or paste several lines at one time.
To edit an include script, select it by clicking its tab. Changes that you make to an include script are saved when you save the project.
action above the line you clicked.
type, the current line becomes a drop-down list with all the action names, and the action that most closely matches the letters you typed is the current item in the list. When the action you want is the current item in the list, press Enter.
To edit a VBScript, see Editing a VBScript on page 79.
WiseScript Editor Reference 26
Page 26
Using Script Editor
Editing Script Action Parameters
Double-click the action in the script. For most script actions, a dialog box appears so you can configure its parameters. When you double-click a Custom Billboard or Custom Dialog action, the appropriate editing environment opens.
Copying and Pasting Script Lines
1. Select one or more script lines.
2. Select Edit menu > Cut or Copy.
3. If you’re copying the lines to another installation, open that installation script in Script Editor.
You cannot open multiple scripts in the same instance of WiseScript Editor unless it is an include script or VBScript. However, you can open multiple instances of WiseScript Editor, and open different scripts in each.
See Customizing the List of Actions on page 24.
4. Select a line in the script above which to place the lines you copied, then select Edit menu > Paste.
The lines appear above the line you selected.
Duplicating or Moving Script Lines
1. Select one or more script lines.
2. Select Edit menu > Duplicate, or Edit menu > Move Up or Move Down.
Commenting Out Script Lines
You can temporarily comment out certain script lines to help with the debug process. Commented out lines remain in the script, but are skipped when the script is execute d.
1. Select one or more lines.
2. Select Edit menu > Comment. The commented out lines appear in green and begin with “/*”. To reactivate
commented out lines, select the lines and select Edit menu > Comment.
Saving a Script to a Text File
This text file is for viewing and printing only. You cannot make changes in the text file and import it back into Script Editor.
1. Select File menu > Save Script Text to File.
2. Specify the location and name of the file.
Finding and Replacing Text in a Script
¾ Not available in VBScripts.
1. In Script Editor, do one of the following:
To find text, press Ctrl+F to find text. To find and replace text, press Ctrl+H.
2. Enter the text to find.
WiseScript Editor Reference 27
Page 27
This function searches the visible text in the script lines as well as the parameters that are associated with the script lines.
3. (Replace function only) Enter the replacement text. You can replace a command’s parameters and editable text, but not the command
itself.
4. To search for the text across all WiseScripts, mark Search Across Include Scripts.
For information on include scripts, see Customizing the List of Actions on page 24.
5. Click Find Next, Replace, or Replace All.
About User-Defined Actions
You can streamline your development process by creating your own script actions for tasks that you perform frequently.
Example: You hav e written a section of script that opens a W eb page on your company’ s Web site. Some of the script lines search the registry to determine the default browser on the destination computer, and other lines open the browser to the specified URL. To avoid having to copy and paste this section of script into new WiseScripts that you create, you can make it a user-defined action that will be available in all new WiseScripts that you develop.
Using Script Editor
User-defined actions appear in the Actions list in Script Editor along with the predefined script actions.
You create a user-defined action by creating a separate WiseScript and saving it in the Actions subdirectory of this product’s installation directory.
See Creating a User-Defined Action on page 29. When you create a user-defined action, specify the following in the script:
Action Name
The file name of the script.
Dialog Box
Include a dialog box only if your action has parameters that you must change each time you use the action. This dialog box appears when your action is double-clicked. Example: For an action that opens a URL in the in the destination computer’s browser, you might include a dialog box that asks for the URL. Then if the URL changes frequently, you can specify the new URL each time you use the action.
Script Lines
The script lines that perform the action are the functional part of the action. Example: For an action that opens a URL in the destination computer’s browser, the script lines determine the default browser and opens the Web page.
Format of the Script Line
The format of the script line refers to how the script line looks after you add the action t o your script. You enter a combination of text and variables to define the format.
WiseScript Editor Reference 28
Page 28
See also:
Creating a User-Defined Action: Tutorial on page 30 Adding an Action to a Script on page 26
Creating a User-Defined Action
This procedure describes the general steps for creating a user defined action. It does not contain details on what kind of action to create, or what to enter for the parts of the user-defined action.
For an example of how to complete these details, see Creating a User-Defined Action:
Tutorial on page 30.
To create a user-defined action
1. Select File menu > New. In Script Editor, you should see a completely empty script.
2. If your user-defined action includes a dialog box where you can enter options for the action, create the dialog box.
a. From the Event drop-down list in Script Editor, select Exit.
Using Script Editor
b. Add a Custom Dialog action to the Exit script, and create your dialog box in the
Custom Dialog Editor. See About the Custom Dialog Editor on page 120.
Note
To add a drop-down list on your custom dialog box that contains all the WiseScript variables currently defined in this script, set the list to display the compiler variable %_VAR_LIST_%. It contains all the non-compiler variables.
3. From Event, select Mainline. The main script reappears.
4. Add script lines that perform the function of your user-defined script action. This might be something as simple as a single line that calls a .DLL, or it could be a
complex set of script lines that perform an advanced function.
5. In Title, enter a combination of text and variables to define the format of the scri pt line.
Example: Your user-defined action displays an HTML file on the Web. In your action, a dialog box asks for the URL to the file, and the URL is put in the variable URL_PATH. In Title, you might enter: Display HTML File %URL_PATH%. When you add your user-defined action to an installation script, the dialog box appears and you enter www.sample.com/support.htm for the URL. The script line for your user­defined action appears in the format you specified, except that it shows the variable’s value instead of the variable name. It displays: Display HTML File www.sample.com/support.htm.
6. Save the script file in the Actions subdirectory of this product’ s installation direct ory. Your new action does not appear in the appears in the Actions list in Script Editor
until you close and re-open WiseScript Editor.
7. Test the new user-defined action:
WiseScript Editor Reference 29
Page 29
a. Close WiseScript Editor. b. Open WiseScript Editor and select File menu > New > Empty Project. c. In Script Editor, double-click your user-defined action in the Actions list. If it
includes a dialog box, the dialog box opens. Complete the dialog box and click OK.
d. Save the project and click Test to test your script.
Creating a User-Defined Action: Tutorial
This tutorial guides you through the process of creating a user-defined action named Wait. The Wait action contains a custom dialog box in which you can specify how many milliseconds to pause the installation.
To create a new blank script for the action
1. Select File menu > New. In Script Editor, you should see a completely empty script.
2. Select File menu > Save. The Save As dialog box appears.
Using Script Editor
3. Save the script file in the Actions subdirectory of this product’ s installation direct ory. Name the file Wait.
Your new action appears in the Actions list in Script Editor after you close and re­open WiseScript Editor.
To create a dialog box for the action
1. From Event, select Exit. To write a script action that interacts with the developer who uses it, you must add
a Custom Dialog script line, which you must store in the Exit script. A user-defined action requires a dialog box only if it has parameters that you need
to change when you use the action.
2. In the Actions list, double-click the Custom Dialog action. The Dialog Box Properties dialog box appears.
3. In Dialog Title, enter “Enter Time to Wait” and click OK. The Custom Dialog Editor opens.
4. Click on the toolbar. The Text Control Settings dialog box appears.
5. In Text, enter “Milliseconds to Wait” and click OK.
6. Click on the toolbar. The Edit Text Control Settings dialog box appears.
7. Enter the following on the dialog box and click OK.
In Default, enter %WAIT_TIME%. In Variable, enter WAIT_TIME.
WiseScript Editor Reference 30
Page 30
8. Click on the toolbar. The Push Button Control Settings dialog box appears.
9. Enter the following on the dialog box and click OK.
In Label, enter OK Mark the Return to Previous Dialog action. Mark Default Button.
10. Click the Push Button tool on the toolbar again. The Push Button Control Settings dialog box appears.
11. Enter the following on the dialog box and click OK.
In Label, enter Cancel. Mark the Abort Installation action.
12. Rearrange the dialog box so that it looks something like this:
Using Script Editor
13. When you finish editing the dialog box, select File menu > Save Changes and exit.
To create a script for the action
For the Wait action, you write a very simple script. The script calls kernel32.dll, a Windows system .DLL that contains a function that stops execution of the current application for the specified number of milliseconds. To learn more about calling Windows system .DLLs, see the Microsoft Developer Network (msdn.microsoft.com).
1. From Event, select Mainline to return to the main part of your script. The script should be blank.
2. In the Actions list, double-click Call DLL Function. The Call DLL Function dialog box appears.
3. Complete the dialog box:
DLL Pathname
Enter %SYS32%\Kernel32.dll.
Function Name
Enter Sleep.
Call a function with variable parameter list
Mark this option and click Add. Complete the DLL Parameter Settings dialog box that appears and click OK:
From Parameter Type, select dword.
WiseScript Editor Reference 31
From Value Source, select Constant.
Page 31
Using Script Editor
In Constant Value, enter %WAIT_TIME%.
4. Click OK on the DLL Parameter Settings dialog box.
5. Click OK on the Call DLL Function dialog box.
6. In Title (located above the Actions list), enter “Wait %WAIT_TIME% Milliseconds.” This determines how the script line looks in the script.
7. Save the scrip t. It should already be named Wait.wse and should be in the Actions subdirectory of
this product’s installation directory.
To test the action
1. Close WiseScript Editor.
2. Open WiseScript Editor and select File menu > New > Empty Project and click OK. An empty project contains a default script in Script Editor.
3. In the Installation Script list, click the top line in the script.
4. In the Actions list, double-click the Wait action. The dialog box you created for your user-defined action appears.
5. Enter 9000 and click OK. A new script line appears in your script that looks like this:
Wait 9000 Milliseconds
9000 milliseconds equals nine seconds.
6. Save the scrip t.
7. Click Test to test your script.
After the blue screen appears, there should be a nine-second delay before the Welcome dialog box appears.
If the action does not work, check the options you entered for the Call DLL statement. If it still doesn’t work, open the Pause.wse file located in the Actions directory and view its parameters. The Pause action is identical to the Wait action you just created.
You can place the Wait action anywhere in the script to pause the script execution. Example: To display a detailed billboard for several seconds, you could place a Wait action immediately after the Display Billboard script line.
See also:
About User-Defined Actions on page 28
Basic Scripting Concepts
If you do not have a basic understanding of scripting concepts, you should become familiar with them before trying to write a WiseScript.
See:
About Script Editor on page 22
WiseScript Editor Reference 32
Page 32
Conditions and Loops on page 33 Variables and Expressions on page 34 Compiler Variables and Run-time Variables on page 35 Anatomy of an Installation Script on page 36
Conditions and Loops
Normally, script actions are executed in the order in which they appear in the script. However, the order of execution can be changed by special script actions called conditions and loops.
Conditions specify script actions that are executed only when certain conditions are true. Example: In WiseScript, you can test what version of Windows a destination computer is running, then execute different script actions depending on the version of Windows they’re running.
Loops specify script actions that are repeated until a certain condition is met. Example: You might prompt the end user to enter specific information during installation. To make sure the information the end user enters meets certain criteria, use a loop to repeat the prompt until the data entered is appropriate.
If, While, and End Actions
Because a condition or loop can apply to more than one script action, they are defined using at least two statements: one to mark the beginning of the block of script and the other to mark its end. The standard action for beginning a condition is the If action, and the standard action for beginning a loop is the While action. The end of both conditions and loops is marked using the End action. Script Editor indents everything inside a condition or loop so you can see which actions are affected.
Using Script Editor
Else and ElseIf Actions
Conditions can use the Else and ElseIf actions, which mark the be ginning of actions to be executed when the condition descri bed by the If action (or other condition statement) is not true. The Else action is used between the If and End actions. Actions after the If but before the Else are executed if the condition is true. Actions after the Else are executed if the condition is false. Loops cannot have Else statements.
Nesting
In WiseScript, one condition or loop can contain another condition or loop. This is called nesting. You define a nested condition or loop by adding a second If or While action (or other start-of-condition or start-of-loop marker) before the End action of the first condition or loop. The second block of script must be fully contained within the first. When you add an End action, it always applies to the most recently begun If or While action that does not already have an End action. You can nest conditions and loops to many levels, but in most circumstances it won’t be necessary to nest more than three or four levels deep. The indentation, which increases for each nested structure, helps you interpret deep nestings.
Connection Lines
Connection lines connect the beginning and end of conditions or loops. To add connection lines, select View menu > Connections Lines.
WiseScript Editor Reference 33
Page 33
Variables and Expressions
Variables
Variables are named storage locations that hold information about the system, information entered by the end user, or information derived or calculated from either of these sources. You can define up to 400 v ariables using the Set Variable action. You can then gather data from the end user or read data from files to put into variables. Variables hold ASCII text, not binary data. They can be up to 32 KB in length.
Variable Naming Conventions
z Must begin with a letter. z Must be 28 characters or less. z Cannot begin with an underscore character; only compiler variables can start with
an underscore character.
z Cannot contain % characters, except when using substitution as described below.
Variables and Substitution
By using variables, the installation .EXE can adapt to each destination computer. Once information is stored in a variable, it can be used in most script actions through a process called substitution. Any parameter for a script action can get part or all of its value from a variable.
Using Script Editor
To use substitution, specify the variable name preceded and followed by %. (Examples: %WIN% refers to the contents of the WIN variable, which is the path to the Windows system directory, and %WIN%\Fonts refers to the path to the Windows font directory.) The % character is not part of the variable name, but rather a marker that tells WiseScript to replace the variable’s name with its value before executing the command. To include an actual % character in the script, use %%.
You can use substitution to:
z Build messages to display to the end user. z Set locations for copying or installing files. z Initialize new variables to the value of one or more other variables.
Expressions
z If you are using a variable name as part of an expression, do not surround the
variable name with % characters. (Example: When you use an If, ElseIf, While, Set Variable, or a Wizard Loop action to evaluate an expression, do not surround the variables you reference in the expression with %.)
z Do surround compiler variables with % characters no matter where you enter them.
Some actions (If , Whi le, Set Variable, and some others) can use a more flexible scheme that lets you use arithmetic expressions and other options.
See Expression Operators on page 164. To read about sample scripts that use expressions, see ScriptHelp.htm in the Samples
subdirectory of this product’s installation directory and find scripts that manipulate strings and perform calculations.
WiseScript Editor Reference 34
Page 34
Compiler Variables and Run-time Variables
When They Are Set
WiseScript uses two kinds of variables: compiler and run-time. When you start a compile by clicking the Compile, Test, or Run button, the values of compiler variables are set immediately, either by prompting you or by reading the values from the Compiler Variables page. Script Editor then searches the entire script and replaces any instance of the compiler variable with the value. These variables cannot be changed by end users who run the installation .EXE.
Run-time variables are set by selections the end user makes on the installation’s dialog boxes, by characteristics of their c ompu ter, or by the conten ts of files on their hard disk (example: a settings file, an .INI file, or the registry).
The difference between compiler variables and run-time variables is similar to the difference in C programming between preprocessor variables and C language variables. Preprocessor <#ifdef> statements determine which code is compiled. C language If statements determine which code is executed at run time.
In Conditions and Expressions
You can use both types of variables in variable substitution. However, they have distinctly different behaviors when used in conditions and expressions. When you enter a regular variable into an expression, you do not need to surround it with % signs, but when you enter a compiler variable in an expression, you must surround the compiler variable with % signs.
Using Script Editor
With a condition based on run-time variables, all the script actions required by the condition are included in the installation .EXE. WiseScript Editor doesn’t know which part of the condition will be executed until the installation .EXE is run because it depends on variables whose values are not known until run time. The values of compiler variables, on the other hand, are known when the installation .EXE is built. Therefore, WiseScript Editor does not include the script actions inside a compiler variable condition when building the installation .EXE.
Naming Compiler Variables
By convention, the names of compiler variables begin and end with an underscore. WiseScript does not enforce this convention, but it might help you keep track of which variables are known at compile time and which are known only at run time.
Using Compiler Variables
If an Install File(s) action is included inside a Compiler V ariable If block, the file it installs is not added to the installation .EXE if the condition is false.
See Compiler Variables on page 18. Example: You can create a script that compiles an inst allation .EXE for ei ther a 16-bit or
32-bit version of your application based on the value of a compiler variable and includes only the files needed by each version of the application. Because the Install File(s) actions that install the other version of the application are not compiled, those files are not in the installation .EXE, making it smaller than a universal installation for both 16-bit and 32-bit systems.
You can also use compi ler variables to create a debug version of your script that includes Display Action messages to display run-time variable values and other useful information at various points in the installation. By enclosing your debugging actions in
WiseScript Editor Reference 35
Page 35
compiler variable conditions, you can easily remove them when the installation has been debugged by changing the value of a compiler variable. The debugging actions are not compiled into the final build.
When to Use
z Variable substitution can use either type of variable. z When a script action places a value into a variable, use a run-time variable.
Compiler variables can’t be changed by scripts, but only by the person who builds the installation .EXE.
z In most other instances, the type of variable to use is implicit (example: the
Compiler If script action requires a compiler variable) or is noted explicitly.
Anatomy of an Installation Script
An installation script has four basic sections. Whether you are modifying the default script that is generated by Installation Expert or writing your own script, an understanding of these sections can help insure that your script works correctly.
Initialization
In this section, default values for an installation are set, including the default directory, standard components, and Start menu. Information that is needed l ater in the installation is read from .INI files or the registry . Files that are displayed to the end user (ReadMe.txt, License.txt, etc.) are installed. A search can also be performed for a previous version of an application to use its location as the default installation directory.
Using Script Editor
User Input
This section contains a series of dialog boxes that ask the end user what optional components to install, what directory to install the files in, and so on. This section generally uses a Wizard Loop action. It displays any ReadM e or License files that are installed in the Initialization section.
File Copy
This is the longest section of the installation script. Files are copied from the installation .EXE to the destination computer.
System Configuration
After files are installed, the destination computer’s configuration fil es (.INI files, registry, Start menu, etc.) are updated so that the new application works correctly . The end user might then be prompted to restart their computer.
WiseScript Editor Reference 36
Page 36
Chapter 4
WiseScript Actions
This chapter includes the following topics:
z About WiseScript Actions on page 40 z About SVS Script Actions on page 40 z Activate SVS Layer on page 41 z Add Directory to PATH on page 42 z Add File to SVS Layer on page 42 z Add Text to INSTALL.LOG on page 43 z Add to AUTOEXEC.BAT on page 44 z Add to CONFIG.SYS on page 45 z Add to SYSTEM.INI on page 46 z Browse for Directory on page 46 z Call DLL Function on page 47 z Capture Application to SVS Layer on page 51 z Change SVS Layer GUID on page 52 z Check Configuration on page 52 z Check Disk Space on page 53 z Check HTTP Connection on page 55 z Check If File/Dir Exists on page 56 z Check In-use File on page 57 z Check Service on page 57 z Compiler Variable Actions on page 58 z Config ODBC Data Source on page 59 z Copy Local File(s) on page 59 z Create Directory on page 61 z Create Directory in SVS Layer on page 62 z Create Service on page 62 z Create Shortcut on page 63 z Create Shortcut in SVS Layer on page 64 z Create SVS Layer on page 66 z Create Virtual Directory on page 66 z Custom Billboard on page 66
WiseScript Editor Reference 37
Page 37
z Custom Dialog on page 67 z Deactivate SVS Layer on page 67 z Delete File from SVS Layer on page 67 z Delete File(s) on page 68 z Delete SVS Layer on page 68 z Display Billboard on page 69 z Display Message on page 70 z Display Progress Message on page 71 z Display Text File on page 71 z Edit INI File on page 72 z Edit Registry on page 72 z Edit Registry for SVS Layer on page 75 z Else Statement on page 76 z ElseIf Statement on page 76 z End Statement on page 77
WiseScript Actions
z Evaluate Windows Installer Condition on page 77 z Execute Program on page 78 z Execute VBScript on page 78 z Exit Installation on page 82 z Export SVS Layer on page 83 z Find File in Path on page 83 z Find First SVS Layer on page 84 z Find Next SVS Layer on page 84 z Find SVS Layer GUID on page 85 z Get Environment Variable on page 85 z Get Name/Serial Number on page 86 z Get Registry Key Value on page 86 z Get SVS Layer Info on page 87 z Get System Information on page 88 z Get Temporary Filename on page 90 z Get Windows Installer Property on page 90 z Halt Compilation on page 90 z If Statement on page 91 z Import SVS Layer on page 92 z Include Script on page 92 z Initialize SVS on page 93
WiseScript Editor Reference 38
Page 38
z Insert Line Into Text File on page 93 z Install File(s) on page 94 z Install SVS Package on page 96 z Install Windows Mobile Application on page 99 z Install WiseUpdate Client on page 96 z Modify Component Size on page 99 z Open/Close Install.log on page 100 z Parse String on page 101 z Pause on page 101 z Play Multimedia File on page 102 z Post to HTTP Server on page 102 z Prompt for Filename on page 103 z Prompt for Text on page 104 z Radio Button Dialog on page 104 z Read INI Value on page 105
WiseScript Actions
z Read/Update Text File on page 105 z Read/Write Binary File on page 106 z Reboot System on page 107 z Register Font on page 107 z Remark on page 107 z Remove SVS Exclude Entry on page 108 z Rename File or Directory in SVS Layer on page 109 z Rename File/Directory on page 108 z Rename SVS Layer on page 109 z Search for File on page 110 z Self-Register OCXs/DLLs on page 111 z Set Activate SVS Layer on Startup on page 111 z Set Control Attributes on page 111 z Set Control Text on page 112 z Set Current Control on page 113 z Set File Attributes on page 113 z Set Files/Buffers on page 113 z Set SVS Exclude Entry on page 114 z Set Variable on page 114 z Set Web Permissions on page 116 z Set Windows Installer Property on page 116
WiseScript Editor Reference 39
Page 39
z Start/Stop Service on page 116 z While Statement on page 117 z Win32 System Directory on page 118 z Wizard Loop on page 118
About WiseScript Actions
The WiseScript™ scripting language contains script actions that let you perform various installation-related tasks. The script actions are fully coded; all you do is enter parameters for the action. This section describes the function and usage of each action.
All possible WiseScript actions are available in all WiseScript -based editors. This lets you open any WiseScript in any WiseScript-based editor without errors. However, a WiseScript will run only in an environment that supports all the actions in the script. Example: The “Get Windows Installer Property” action will not work in a script that runs outside a Windows Installer installation.
See also:
About Script Editor on page 22 About SVS Script Actions on page 40
WiseScript Actions
About SVS Script Actions
Script Editor has a set of script actions that you can use to manage, edit, find, and create virtual software layers. Each of these script actions has SVS (Software Virtualization Solution) in its name. For your convenience, these script actions are grouped by default under the SVS Items title bar.
For more information about Software Virtualization Solution (SVS), search for Workspace Virtualization on the symantec.com Web site.
Script Actions for Managing a Layer
Use these script actions to change the state of layers, gather information about layers, create archive files from layers, and install and remove layers.
z Activate SVS Layer z Deactivate SVS Layer z Delete SVS Layer z Export SVS Layer z Get SVS Layer Info z Import SVS Layer z Install SVS Package z Set Activate SVS Layer on Start
Script Actions for Editing a Layer
Use these script actions to edit the files, registry keys, directories, name, or GUID of a layer. These script actions make changes to the read-only sublayer so they are not lost
WiseScript Editor Reference 40
Page 40
WiseScript Actions
when the layer is reset. The exception is the Delete File from SVS Layer action that makes changes to the writeable sublayer.
The Remove SVS Exclude Entry and Set SVS Exclude Entry actions set or remove an exclude entry for a single layer or for all layers on a computer.
z Add File to SVS Layer z Capture Application to SVS Layer z Change SVS Layer GUID z Create Directory in SVS Layer z Create Shortcut in SVS Layer z Delete File from SVS Layer z Edit Registry in SVS Layer z Remove SVS Exclude Entry z Rename File or Directory in SVS Layer z Rename SVS Layer z Set SVS Exclude Entry
Script Actions for Finding a Layer
Use these script actions to find a layer’s GUID. You then store the value of the GUID in a variable and use this variable in the SVS script actions that manage or update a layer. Use the find first and find next actions to iterate through all the layers on a computer.
z Find First SVS Layer z Find Next SVS Layer z Find SVS Layer GUID
Script Action for Creating a Layer
Use the Create SVS Layer script action to create an empty layer. You can then use the Capture Application to SVS script action to add an application to the layer, or use other SVS script actions to add directories, files, registry keys, and shortcuts to the layer.
Script Action for Initializing SVS
The Initialize SVS script action initializes the SVS Driver (Software Virtualization Agent) so that you can communicate with it. It is part of all of the SVS specific actions. If you create a user-defined, SVS-specific action, begin the action with this action.
Also see the article Using WiseScripts to Manage and Update Virtual Software Packages in the Altiris Knowledgebase (article 27373).
Activate SVS Layer
This SVS script action activates a virtual software layer.
WiseScript Editor Reference 41
Page 41
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
???For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
See also:
About SVS Script Actions on page 40
Add Directory to PATH
This action adds a directory to the PATH environment variable, as set in Autoexec.bat. The directory is appended to every occurrence of the SET PATH statement that does not already contain it. A SET PATH statement is added if none exists. The system restarts at the end of installation so that the new PATH takes effect.
To complete the dialog box
z Directory to Add to PATH
Enter the directory to be added to PATH (example: enter %MAINDIR%).
WiseScript Actions
z Location of New Directory
Select to add to the beginning or end of the PATH.
z Path Selection
Some destination computers have several PATH variables. Use this list to add the directory to all PATH variables.
Add File to SVS Layer
This SVS script action adds a file to a virtual software layer. This can be an existing layer or a layer that the WiseScript creates. The file is added to the read-only sublayer.
Note
Use this action on a deactivated SVS layer only.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Source path
Specify the complete path and file name of the source file to add. You can use WiseScript variables.
z Layer path
Enter the complete path in the layer to which the file will be added. The path must include the file name. When you add the file, you can change its name. You can use
WiseScript Editor Reference 42
Page 42
SVS variables or WiseScript variables that resolve to a valid SVS path. Example: [PROGRAMFILES]\Application\Readme.txt.
See SVS Variables on page 162.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Add Text to INSTALL.LOG
This action adds commands to the installation log (Install.log). Use the Open/Close Install.log action to create the installation log. See Open/Close Install.log on page 100. As the installation runs on the destination computer, each action it performs is logged in
the installation log (installation of files, additions or changes to registry, and so on). Failures are listed also, with the reason for failure. The uninstall reverses each action recorded in the Install.log, starting at the bottom of the log and going up. Typically, you add commands to the Install.log to customize the uninstall process for an application.
WiseScript Actions
Because the log is written continuously during installation, the location of the text in the log depends on where in the script you place the Add Text to In stall.log script line.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
To complete the dialog box
z Log Text
Enter the text to be added to the log file. You can enter variables surrounded by %. To see the format of lines, open existing log files.
Examples
By default, uninstall does not remove files that were installed to Windows, Windows\System, or Windows\System32. To remove these files, place an Add Text to Install.log script line directly before the Install File(s) script lines that install files to one of these directories. Type the following as the Log Text (exactly as shown because it is case-sensitive):
Non-System File: You can add a line to the Install.log that pauses the uninstall, executes an application
until it finishes, then resumes the uninstall. To do this, type the following as Log Text, substituting your own path to the .EXE (case-sensitive):
Execute path: %MAINDIR%\Remove.exe
WiseScript Editor Reference 43
Page 43
WiseScript Actions
If you want the uninstall to remove not only files that were installed, but also files that were added later, you can remove all the files and sub-directories within a specified directory. Use this option with caution because end users might have stored their own files in the directory . You can use Windows standard wildcard notation (example: *.* for all files). Type the following as Log Text, substituting your own directory path (case­sensitive):
File Tree: %MAINDIR%\Data\Temp\*.* If you want the uninstall to remove not only the registry keys that were installed, but
also keys that were added later, you can remove an entire registry key, including all its sub-keys and values. Type the following as Log Text, substituting your own registry tree (case-sensitive):
RegDB TREE: SOFTWARE\Wise RegDB Root: 2
where RegDB Root is one of the following: 0 - HKEY_CLASSES_ROOT
1 - HKEY_CURRENT_USER 2 - HKEY_LOCAL_MACHINE 3 - HKEY_USERS
Add to AUTOEXEC.BAT
This action edits Autoexec.bat, which is executed during startup, allowing you to add commands that are executed before Windows loads.
Insert commands at a particular line number, or search the file for specific text and insert the new line before, after, or in place of the existing line. The destination computer is restarted after installation to force the new commands to take effect.
To complete the dialog box
z Text to Insert
Enter the line to add to Autoexec.bat. If the line refers to an application file, use a path (example: %MAINDIR%\Application\Application.exe). The PATH v ariable might not be set when the command is executed, so always use a path.
z Line Number
Enter the line number at which the new line should be inserted. Enter 0 (zero) to append the command to the end of the file. Th e Search for Exi sting Text area in this dialog box overrides the line number specified here. The line number applies only when the text is not found or when you do not specify any text.
z Search for Text
Enter the text to search for here. The installation scans Autoexec.bat looking for a line that begins with, ends with, or contains the text, depending on what you set in Match Criteria. The line is inserted at the first found match.
z Comment Text
Enter text to insert at the beginning of the line that is found. Insert “REM ” (with the trailing space but without the quotation marks) to comment out the line, which lets you replace an existing command with a new command while leaving the existing command in place but inactive. If this is the case, set Insert Action to insert before the existing line so that a subsequent installation finds and edits the active command, not the commented line.
WiseScript Editor Reference 44
Page 44
z Insert Action
Select where to insert the new line in relation to the found line.
z Match Criteria
Select how the found line matches the Search for Text.
z Ignore White Space
Mark this to ignore spaces and tab characters.
z Case Sensitive
Mark this to match case.
z Make Backup File
Mark this to make a copy of Autoexec.bat before editing it.
Add to CONFIG.SYS
This action edits the Config.sys file to add new commands. Insert commands at a particular line number, or search the file for specific text and insert the new line before, after, or in place of the existing line. The de stination computer is restarted automatically to force the new commands to take effect.
To complete the dialog box
z Text to Insert
Enter the line to add to Config.sys. If the line refers to a file, use a path. Example: %SYS%\Application.dll. %SYS% refers to the active system folder.
WiseScript Actions
z Line Number
Enter the line number at which the new line should be inserted. Enter 0 (zero) to append the command to the end of the file. Th e Search for Exi sting Text area in this dialog box overrides the line number specified here. The line number applies only when the text is not found or when you do not specify any text.
z Search for Text
Enter the text to search for here. The installation scans Config.sys looking for a line that begins with, ends with, or contains the text, depending on the setting of the Match Criteria field. The line is inserted at the first found match.
z Comment Text
Enter text to insert at the beginning of the line that is found. Insert “REM ” (with the trailing space but without the quotation marks) to comment out the line, which lets you replace an existing command with a new command while leaving the existing command in place but inactive. If this is the case, set Insert Action to insert before the existing line so that a subsequent installation finds and edits the active command, not the commented line.
z Insert Action
Select where to insert the new line in relation to the found line.
z Match Criteria
Select how the found line matches the Search for Text.
z Ignore White Space
Mark this to ignore spaces and tab characters.
z Case Sensitive
Mark this to match case.
WiseScript Editor Reference 45
Page 45
z Make Backup File
Mark this to make a copy of Config.sys before editing it.
Add to SYSTEM.INI
(Windows 3.1x or Windows 9x only) This action adds a device entry to the 386Enh section of the System.ini file. The destination computer is restarted automatically to force the new device driver to be loaded.
Do not use this action to modify the display driver (display=xxx) or any other non­device entry. Instead, use the Edit INI action.
See Edit INI File on page 72.
To complete the dialog box
z Device Name
Enter the full command line for the device (example: device=vshare.386). The referenced files need a path unless they are in the System directory.
If you precede the command line with a semicolon (example: ;device=*vcp), the device entry is commented out if it exists in the 386Enh section of System.ini. If you add a device entry with the same device name but a different driver path, the old entry is commented out and the new entry is added.
WiseScript Actions
Browse for Directory
This action displays a dialog box asking the end user to select a directory. It is included to provide backward compatibility for older WiseScripts. In new scripts, use custom dialog boxes instead.
To complete the dialog box
z Window Name
Enter the title for the dialog box.
z Description
Enter text to explain the dialog box to the end user.
z Prompt Name
Enter explanatory text to be displayed above the directory field.
z Default Value
Enter the default location of the new directory. This appears as a default in the directory field.
z Variable Name
Enter a variable to store the chosen directory. The standard script uses the variable MAINDIR for this purpose.
z Don’t Append
Mark this to prevent the default directory (Default V alue field) from being appended to the chosen directory.
z Confirm If Exists
Mark this to warn the end user if the chosen directory already exists.
WiseScript Editor Reference 46
Page 46
Call DLL Function
This action calls a .DLL function from a .DLL on the destination computer. They can be be .DLLs you have written, .DLLs developed for WiseScript, or Windows .DLLs. You can branch the script based on the returned results of a .DLL by setting the Action to Start Block if Return Value True or Start While Loop.
When a WiseScript is called by a Windows Installer installation, you can also call a .DLL by using one of the Call Custom DLL or Call DLL actions in MSI Script in Windows Installer Editor.
To complete the dialog box
z DLL Pathname
Specify the path of the .DLL file (example: %MAINDIR%\Jso32.dll). For non-system .DLLs, the installation script must install the .DLL before the script
calls it or it will not be found. If the .DLL is only needed temporarily during installation, copy it to the Temp directory, represented by %TEMP%.
Note
You cannot test an installation that installs and immediately calls a .DLL unless you install the .DLL to the Temp directory. Testing installs files, then immediately deletes them, unless they are installed to the Temp directory.
WiseScript Actions
z Function Name
Enter the name of the function to call. The function should be exported when creating the .DLL. The function’s parameters and return value must exactly match those specified below (case-sensitive).
z Call a function written specifically for WiseScript
When calling functions developed specifically for WiseScript, mark this option and fill in Variables Added, Parameter String, and Action below.
Each .DLL function takes a single parameter (lpDllPar ams) that points to a structure containing information that can be passed back and forth between the .DLL function and the running installation script.
z Variables Added
Because WiseScript-specific .DLL functions have access to the variable list of the running installation, you can add new variables. List the names of the variables to add, separated by commas. Do not use variables enclosed in %.
z Parameter String
Use this to pass information to the .DLL function. Text you enter here is passed to the .DLL in the IpszParam variable. This can include variables surrounded with % signs.
z Action
Select the installation’s action when it returns from the .DLL call. The .DLL returns a boolean value (zero equals false, non-zero equals true).
Ignore return value
The script continues regardless of any value returned.
Exit if function returns true
WiseScript Editor Reference 47
The installation exits if the .DLL function returns non-zero.
Page 47
WiseScript Actions
Start block if function returns true
If the .DLL function returns non-zero, all actions between this action and its matching End action are executed. Otherwise these actions are skipped.
Loop while function returns true
The actions between this action and the matching End action (including the .DLL call) are executed repeatedly until the .DLL function returns zero.
z Perform while loop at least once.
If you select Loop while function returns true, mark this to force the loop to execute once before the test is performed. If the check box is cleared, the loop is executed if the condition is true, but is not executed if the condition is false.
z Call a function with variable parameter list
(Enables the options below.) Mark this to call .DLLs not specifically written for WiseScript. These .DLLs cannot access any of the installation’s internal variables, but you can pass this information to them. Below, specify the required parameters and Return Value Type.
z Return Value Type
Select the data type of the return value, which are described in DLL Parameter
Settings.
z Returned Variable
Select or enter a variable to store the returned value.
z Get Last Error Variable
When you call a Windows API function that uses the GetLastError() function to report errors, select a variable to hold the return value of that function. Doing so ensures that GetLastError() is called immediately following your function to prevent problems that can occur when you debug the WiseScript.
z Keep DLL loaded in memory after returning from function
By default, the Call DLL Function action loads a .DLL, calls a function in that .DLL, and then unloads the .DLL. If you call many functions from a certain .DLL, then the unload is unnecessary and can cause problems with certain .DLLs. To leave this .DLL loaded, check this check box.
z Hide progress bar before calling function
If the .DLL has UI, you can us this to hide the progress bar.
If you write a .DLL, use CALLBACK or WINAPI in the declaration of the .DLL. For help with .DLL development, review sample sour ce code, such as GETCPU32. C, in
the DLL subdirectory of this product’s installation directory. Also included is sample source code for C and Delphi .DLLs written for WiseScript.
Calling Visual Basic ActiveX controls is not supported. The sample scripts Application kill.wse, CheckDiskSpace.wse, Color.wse, and
Prompt.wse use this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
DLL Parameter Settings
The DLL Parameter Settings dialog box appears when you add a new parameter to a Call DLL Function action. Add parameters in the order in which they appear in the .DLL’s function prototype.
WiseScript Editor Reference 48
Page 48
To complete the dialog box
z Parameter Type
Check the table below for alternate names for data types.
WiseScript Actions
WiseScript Corresponds to Win32
SDK type
short SHORT Integer 16-bit, signed integer data type word WORD Integer 16-bit, unsigned integer data type long LONG, LRESUL T, BOOL Long, Boolean 32-bit, signed integer data type dword DWORD (Use this for any
parameter type that begins with an “H” or ends with the word “HANDLE,” such as HWND, HANDLE, HPEN, HFONT, and LPHANDLE.)
string pointer Use for any parameter that
ends in STR such as LPSTR and LPTSTR.
short pointer Pointer to SHORT or SHORT*
(use for PSHORT or LPSHORT)
word pointer Pointer to WORD or WORD*
(use for PWORD or LPWORD)
long pointer Pointer to LONG or LONG*
(use for PLONG or LPLONG)
dword pointer Pointer to DWORD or
DWORD* (use for LPDWORD or PDWORD)
string buffer char [size] String Use to place a character buffer of the
Corresponds to Visual Basic type
Long 32-bit, unsigned integer data type
Long 32-bit pointer to an ANSI character
Long 32-bit pointer to a SHORT data type
Long 32-bit pointer to a WORD data type
Long 32-bit pointer to a LONG data type
Long 32-bit pointer to a DWORD data type
Description
type null terminated string
(see SHORT for the reference to this data type)
(see WORD for the reference to this data type)
(see LONG for the reference to this data type)
(see DWORD for the reference to this data type)
given size (number of characters) into a structure. Use only with structures.
Note
If you are using the Win16 SDK, use word instead of dword for parameters that start with H or end with HANDLE.
z Buffer Length
If you set Parameter Type to string buffer, then this field is enabled. Enter the number of string buffer characters. The limit is 446.
z Passing type
Leave this set to Normal unless you are passing a complex structure to the .DLL. In that case, select First element of structure for the first element in the structure,
WiseScript Editor Reference 49
Page 49
and select Contained within structure for all subsequent elements of the structure. You do not pass the structure name, just the elements in side it.
See Passing Complex Structures to a .DLL: An Example on page 50
z Value Source
Select the type of value to be passed: Variable (pass by reference), constant (pass by value), constant with null v alue, or constan t with window handl e (pointing to the installation window).
z Variable Name
If Value Source is set to Variable, select or enter a variab le.
z Constant Value
If Value Source is set to Constant, enter a constant here. You can enter a variable here (example: %NUMUSERS%).
Passing Complex Structures to a .DLL: An Example
You can use a Call DLL Function to cal l a .DLL. In addition to passing simple paramet ers, such as integers and strings, to a .DLL, you can also pass complex structures (sometimes called records in Pascal or Visual Basic). For each parameter, you select a passing type. For non-structure parameters, select Normal from Passing Type in the DLL Parameter Settings dialog box. However, for structure elements (also referred to as members), select First element of structure for the first item in the structure, or Contained within structure for subsequent items. A structure ends if there are no more parameters, or if the next parameter is set to Normal or First element of a structure.
WiseScript Actions
Note
The following code samples are in the C programming language.
Suppose that you have a function in a .DLL that processes information for a new employee. The return value of the function is a simple integer indicating success or failure. The function accepts three parameters: a structure that contains three elements, an integer, and another structure that contains two elements. The calling statement for the .DLL is:
int NewEmployee (EMPLOYEE*, int, DEPARTMENT*);
where EMPLOYEE* is a pointer to a structure, int is a simple integer, and DEPARTMENT* is a pointer to a structure.
In this example, the layout of the EMPLOYEE structure is as follows:
typedef structure EMPLOYEE {
LPSTR name; LONG salary; CHAR title[50]; }
The layout of the DEPARTMENT structure is as follows:
typedef structure DEPARTMENT {
LPSTR deptname;
WiseScript Editor Reference 50
LPSTR deptnum;
Page 50
WiseScript Actions
}
To call the function NewEmployee from an installation script, you add six parameters in the Call DLL Function dialog box: the three elements of the first structure, the integer, and the two elements of the second structure.
To add parameters, see DLL Parameter Settings on page 48.
Parameter in the C function Parameter type in
WiseScript
name (first element of EMPLOYEE structure)
salary (second element of EMPLOYEE structure)
title (third element of EMPLOYEE structure)
int long Normal deptname (first element of
DEPARTMENT structure) deptnum (second element of
DEPARTMENT structure)
string pointer First element of a
long Contained within
string buffer (buffer length of 50)
string pointer First element of a
string pointer Contained within
Capture Application to SVS Layer
This SVS script action captures an application to a virtual software layer. You can use this script action to update a layer by adding the files that are installed by an .EXE. (Example: If you have a layer for Microsoft Word, you could create a WiseScript that installs Word templates. Y ou could use the Capture Application to SVS Layer script acti on to capture the templates installed by the WiseScript .EXE and to add these templates to the Word layer.)
Passing Type in WiseScript
structure
structure Contained within
structure
structure
structure
You can add an application to an existing layer or to a layer that the WiseScript creates. See Create SVS Layer on page 66. When a WiseScript that contains this script action runs, it runs the .EXE you specify and
captures its installation. You can use this script action to capture an .MSI by running msiexec.exe.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Program path
Specify the path and file name of the .EXE. When the WiseScript runs, it executes the .EXE and captures whatever it installs. To capture an .MSI, enter the path to msiexec.exe. You can use WiseScript variables.
WiseScript Editor Reference 51
Page 51
z Parameters
(Optional) Enter parameters for running the .EXE. If you specified .msiexec.exe in Program path, use Windows Installer command-line options. You can use these command-line options to create a WiseScript that captures an application by performing a silent installation of an .MSI. Example: /package “C:\Application.msi” / qn.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Change SVS Layer GUID
This SVS script action changes a layer’s GUID. Example: You can use this action to create a copy of a layer that is seen by SVS as a
different layer. This is similar to changing the ProductCode and PackageCode of an .MSI file. To create a copy of a layer, create a script that imports an archive file, changes the layer’s GUID, and then exports a copy of the original archive file.
WiseScript Actions
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z New Layer GUID
Enter a new GUID for the layer or a variable that represents the new GUID. If you enter a new GUID, do not include the { } brackets.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Check Configuration
This action tests the hardware configur ation, operating syst em, and other characteristics of the destination computer. As a result of this check, the action can display a message, halt the installation after displaying a message, or start a conditional block.
When a WiseScript is called by a Windows Installer installation, you can also check graphics by using the System Requirements page in Windows Installer Editor.
WiseScript Editor Reference 52
Page 52
WiseScript Actions
To complete the dialog box
z If System
Use the drop-down lists to build a statement of what to check for.
Note
When you check for an operating system, this action looks for the minimum operating system of the type for which you’re checking. Example: If you check for Windows XP, this action returns TRUE if Windows XP or later is running.
z Action
Occurs when the statement above is true. All options below display the message described in Title and Message Text below, unless Message Text is blank.
Display Message Only Abort Installation Start Block
Begins a conditional block. All actions between this action and the next Else or End action are executed.
z Title
Enter the title for the dialog box.
z Message Text
Appears in the body of the message dialog box. Leave this blank to prevent a message from appearing.
Note
Checking for “Share Loaded” opens a temporary file and tries to lock a section of it. It detects all versions of DOS SHARE, Windows VSHARE, Windows NT/2000/XP/ 2003/Vista/2008/7, and Windows 95/98. Checking for “VGA or better” graphics ensures that display resolution is at least 640x480. Checking for free memory tests the amount of memory (including virtual memory) available at installation time.
The sample script CheckVGA.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Check Disk Space
This action determines if enough disk space is available for the installation, based on files that are always installed. You would use this action only if the WiseScript contains Install File(s) actions that install files permanently on the destination computer.
Note
When a WiseScript is used in a Windows Installer installation, an alternative to using the Check Disk Space action is to determine how much disk space the WiseScript .EXE requires, and putting that figure in the ReserveCost table in the Windows Installer database. This works best when all files are always installed. See ReserveCost Table in the Windows Installer SDK Help.
You can leave all fields blank and the action checks disk space for all files. This action takes the cluster size of the disk into account.
WiseScript Editor Reference 53
Page 53
WiseScript Actions
To complete the dialog box
z Component Variable(s)
If a WiseScript installs files based on whether a component in the .MSI is set to be installed, specify the name of the variable that contains the list of components that are set to be installed.
z Status Variable
Select or enter the variable to store the result of the disk space check. If ther e is not enough disk space, an error message is displayed, and the end user can halt installation, ignore the error, or retry the disk space check. Status Variable is set to R if the end user chooses to retry, which lets you define what retrying means. (Example: Let the end user select a different directory or different components.) If no status variable is selected, clicking Retry simply executes the test again.
z Reserve Space
You can specify required disk space for up to three additional disks. (Example: Use this option if your application requires temporary disk space to operate, or if you plan to run a separate installer .EXE to install another application with its own space requirements.) Select or enter a Disk Variable, which contains a directory name to test. Enter the amount of space to check for in Extra Space.
See Modify Component Size on page 99.
z Do not cancel during silent installation
Mark this to continue installing if the disk space check fails during a silent installation. If you script includes an installation log, a message is written to Install.log. Otherwise, if the disk space check fails, the installation is halted with no message to the end user.
For information on how to create an installation log, see Open/Close Install.log on page 100.
Using Check Disk Space Within a Windows Installer Installation
When a WiseScript is called by a Windows Installer installation, the Check Disk Space action only checks disk space for files installed by this WiseScript. In other words, the WiseScript .EXE and the Windows Installer installation are unaware of each other’s disk space requirements. To avoid erroneous disk space estimates by either the WiseScript .EXE or the Windows Installer installation, place the Run WiseScript custom action before CostInitialize or after InstallFinalize in the Windows Installer installation. That way it does not interfere with Windows Installer disk space requirements. Place it in the User Interface sequence, the Execute Immediate sequence, or both.
If the installation of files by the WiseScript does not depend on which .MSI components are installed, you can insert the Check Disk Space action and leave the fields in the Check Disk Space Settings dialog box blank. However, if the WiseScript installs files based on whether a component in the .MSI is set to be installed, you must set a component variable and specify it in the Check Disk Space Settings dialog box.
Example: Your . MSI installation cont ains t wo features: Standar d and Plus. If the e nd user ch ooses
to install Plus, which installs the component Plus.txt, you wa nt the WiseScript to install the license file PlusLicense.exe.
Here’s how you create this portion of the WiseScript:
WiseScript Editor Reference 54
Page 54
WiseScript Actions
z Add an Evaluate Windows Installer Condition action that determines whether the
Plus feature is to be installed ($Plus.exe = 3) and places the result into the variable CHECK.
z Add an If Statement action that determines if the variable CHECK equals 1, that is,
if it is to be installed, and add a Set Variable action that then sets the variable COMPONENTS to the value Plus.exe.
z Insert a Check Disk Space action and, in the Check Disk Space Settings dialog box,
enter COMPONENTS in the Component Variable field.
z Add an If Statement action that determines if the variable COMPONENTS equals
Plus.exe, and then use an Install File(s) action to install the license file.
The script would look like this:
Evaluate Windows Installer Condition "$Plus.exe=3" into CHECK If CHECK equals "1" then
Set Variable COMPONENTS to Plus.exe (Append)
End Check free disk space If COMPONENTS Contains "Plus.exe" then
Install File C:\Installation Files\PlusLicense.exe to %MAINDIR%\PlusLicense.exe
End
Check HTTP Connection
This action determines whether a given URL is valid by using WinSock.dll to try to download the HTML page.
If the installation is not true 32-bit, specify both Win16 and Win32 error variables. Then, the Win32 WinSock.dll is used, followed by the Win16 WinSock.dll. Otherwise, only the 32-bit version is used.
If the download is successful, the Win32 Error Number Variable or Win16 Error Number Variable is set to 0, which indicates success. If an error occurs, the number variable is set to another error code, and the text variable is set to a string that describes the error return codes. The retu rn codes and error strings c ome from the API s that try the download. A sample of the return string is:
ProxyServer= ProxyIgnore= ProxyPort=80 ProxyType=CERN WinInetText= WinInetError=0 WinSockError=11001
This indicates that no proxy server was used and that WinSock returned the error code
11001.
WiseScript Editor Reference 55
Page 55
Note
If the Web server redirects URLs that are not valid to another internal Web page, no error is detected by this action.
To complete the dialog box
z URL to Check
Include “http://” in the URL.
z Win32 Error Text Variable
Select or enter a variable to store the error text returned by the 32-bit winsock.dll.
z Win32 Error Number Variable
Select or enter a variable to store the error code returned by the 32-bit winsock.dll.
z Win16 Error Text Variable
Select or enter a variable to store the error text returned by the 16-bit winsock.dll.
z Win16 Error Number Variable
Select or enter a variable to store the error code returned by the 16-bit winsock.dll.
Check If File/Dir Exists
WiseScript Actions
This action determines if a file or directory exists, whether a directory is writable, or if a .DLL is loaded into memory. It can perform different actions based on the result of the check.
To complete the dialog box
z If
Select the condition to check. To check if a .DLL is loaded, select Module loaded in memory.
z Pathname
To check a file or directory, enter its path. Wildcard characters, such as *, are
not valid. Use variables (example: %WIN%) rather than ha rdcoding a path.
To check if a .DLL is loaded, enter just the .DLL name, not a path. To check if a
.DLL is loaded in a specific directory, include the full path. Example: To determine if any User32.dll is loaded, just specify user32.dll. To
determine if c:\Windows\System32\User32.dll is loaded specify the full path.
z Title
Enter the title for the dialog box.
z Message Text
Appears in the body of the message dialog box. Leave this blank to prevent the message from appearing.
z Action
Occurs when the If statement above is true. The message described in the Title and Message Text fields appears unless Message Text is blank. In addition, select from these options.
WiseScript Editor Reference 56
Page 56
Display Message Only Abort Installation Start Block
Begins a conditional block. All actions between this action and the next Else or End action are executed.
Start While Loop
Begins a loop block. All actions between this action and the next End action are executed repeatedly as long as the condition is true.
z Perform loop at least once
If you chose Start While Loop, mark this to force the loop to execute once before the test is performed. If the check box is cleared, the loop is executed if the condition is true, but is not executed if the condition is false.
The sample script Newdisk.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Check In-use File
This action determines whether a particular file is “in use”, indicating a file is being accessed by a process. Typically, in-use files cannot be moved, deleted, or opened by other processes.
WiseScript Actions
To complete the dialog box
z Variable
z Pathname
Check Service
This action checks if a particular service is running.
To complete the dialog box
z Variable
z Service Name
Select or enter a variable to store the result of this test. After this action runs, the variable contains one of the following values: In-Use, Not In-Use, Non-Existent (which means the file could not be found), or Access Denied. The value Access Denied is returned if the user does not have write access to the file.
Enter the path of the file to check. You can use variables to build the path.
Select or enter a variable in which to put the status of the service. Possible return results are: Unknown, Running, Stopped, Paused, StartPending, StopPending, ContinuePending, or PausePending. Unknown means the service was not found or the current user does not have privileges to query the service. If the status ends with the word Pending, the service has received a request, but is still processing the request.
Enter the name of the service. This is not necessarily the same name you see in the Services control panel. If you are unsure of the service name, consult its documentation or manufacturer.
WiseScript Editor Reference 57
Page 57
Compiler Variable Actions
Compiler Variable If, Else, and End actions are used in an If block to let you compile different versions of an installation. You set the value of a compiler variable at compile time, and the actions inside a compiler variable If block are added to the script according to the value of the compiler variable
You create compiler variables on the Compiler Variables page. When you create a compiler variable, you specify its default value. You also specify when you should be prompted for a compiler variable value.
See Compiler Variables on page 18. Example:
z On the Compiler Variable page, create a compiler variable named _DEBUG_ with a
default value of “N”.
z Mark the Compiling From Within Wise option. z In the installation script, add a Compiler Variable If action that checks if _DEBUG_
equals “Y”.
z Below the Compiler Variable If action, add an Add Text to INSTALL.LOG action that
contains useful debug information.
WiseScript Actions
z End the If block with a Compiler Variable End action. z When you compile, you are prompted for the value of this compiler variable. Change
it to “Y”.
The Add T ext to INSTALL.LOG action within the Compiler Variable If block is added to the final script. The debug information you requested then appears in the installation log.
To create a compiler variable If block
1. Add a Compiler Variable If action and complete the dialog box:
If Variable
Build an If statement by selecting a compiler variable and a comparison. The first list shows compiler variables on the Compiler Variables page. The second list shows available comparisons.
The Value
Enter the value to be used in the comparison. This is case-sensitive. Do not enter variables in this field, because it checks your computer in real time, not run time.
If you selected File Exists above, the If statement checks to see if the file that you enter in The Value exists. If you selected File Version Equal or Greater, enter the file in The Value.
2. Below the Compiler Variable If action, add one or more actions to perform if the compiler variable has the specified value.
3. (Optional) Add a Compiler Variable Else action, followed by one or more actions to perform if the compiler variable does not have the specified value.
4. Add a Compiler Variable End action.
The sample script Compvar.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
WiseScript Editor Reference 58
Page 58
See also:
Compiler Variables and Run-time Variables on page 35
Config ODBC Data Source
This action configures an ODBC data source for use with an existing ODBC (Open Database Connectivity) driver.
To complete the dialog box
z Data Source Name
This name will be displayed in the ODBC data sources list on the destination computer. The Import button adds an ODBC data source from your computer and populates the fields.
z Driver Name
Enter the name of the ODBC driver used by this data source. The driver, along with its support files, must already have been installed on the destination computer.
z Install Data Source for
Select Win16 or Win32 APIs.
z Data Source Attributes
Either enter attributes, or use the Imp ort button to import them from an ODBC data source installed on your computer.
WiseScript Actions
z Display Configuration Dialogs
Mark this to display standard data source configuration dialog boxes to the end user. Otherwise, the data source is configured with default settings.
z System DSN
Mark this check box to make the data source available to all user accounts on the destination computer.
Copy Local File(s)
This action copies uncompressed files from a floppy disk, CD, the destination computer, or a network drive.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
To complete the dialog box
z Source
Specify the path of the file or files to be copied at installation time. Specify the path using a variable, such as %INST% for the directory where the installation .EXE is running. The value of the field should evaluate to a valid directory, file, or files.
To copy more than one file, do one of the following:
WiseScript Editor Reference 59
Page 59
WiseScript Actions
If you want the progress bar to update correctly, specify a directory in Source
without wildcards (example: %INST%\Pictures\), a directory in Destination, and a directory ending with a wildcard in Local Path (example: C:\My Pictures\*.jpg). The Source field will pick up the wildcard specified in Local Path. Specifying a wildcard in both the Source field and the Local Path field results in a compile error.
If you don’t need the progress bar to update correctly, use wildcards in Source
(example: %INST%\Pictures\*.jpg), specify a directory in Destination, and leave Local Path blank.
z Destination
Specify the location on the destination computer. If a single file is being copied, this should contain a full file path. If multiple files are being copied, this should contain a full directory path. To copy files to the installation directory, start this path with %MAINDIR%.
z Description
Enter text to display in the progress bar during file copy.
z Local Path
A hard-coded path that specifies the location of the files on your computer at compile time. Specify this for the installation progress bar to update correctly based on file size. See the description of the Source field above.
z Require Password
(Not applicable in this product) If you entered a password on the Password page, and you mark this, the end user is
prompted for the password before this file is installed. The password prompt appears only once, for the first password-protected file in an
installation, regardless of the number of password-protected files. If no password­protected files are slated for installation, the prompt does not appear.
z Include Sub-Directories
If you specify a directory in Source, mark this to include all subdirectories and their contents.
z Shared DLL Counter
If this is marked, and the file is a .DLL or .VBX, Windows tracks the file to prevent its removal if an application is still using it.
z No Progress Bar
Mark this to hide the progress bar while this file is being copied.
z Self-Register OCX/DLL/EXE/TLB
All .OCXs and .TLBs and some .DLLs and .EXEs support self-registration. Mark this so the file registers itself in the Windows registry before it is used. This action does not register the file, but specifies that it should be registered later. Include a Self­Register OCX/DLL action to register the file.
See Self-Register OCXs/DLLs on page 111.
z Don’t Convert to Floppy
(Not applicable in this product) If you marked Convert CD-ROM to Floppy on the Build Settings page, mark this
to override that option for this file.
z Replace Existing File
Select when to replace existing files on the destination computer.
WiseScript Editor Reference 60
Page 60
WiseScript Actions
Always
The new file always replaces the old file.
Never
The file never overwrites an existing file. Select this for files that should be installed if they are not present, but that might be customized by the end user and should therefore not be replaced on re-installation (example: configuration files).
Check File
The existing file is replaced only if the requirements you set in File Version and File Date/Time are true.
Doesn’t Matter
Select this option if only one of the requirements, File Version or File Date/Time, must be fulfilled to replace the existing file.
Same or Older
For File Version, this replaces the existing file if it has a version resource that is the same as or older than the new file. If the existing file lacks a version resource, it is not replaced.
For File Da t e/T im e , this replaces the existing file if its modification date and time are the same as or older than the new file.
z Retain Duplicates in Path
By default, version checking removes existing copies of .DLLs that are found in the path list. To suppress this feature, mark this check box.
The sample script FTPCopy.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Create Directory
Directories are created when files are installed to them. Use this action only to create an empty directory on the destination computer.
When a WiseScript is called by a Windows Installer installation, you also can create a directory on the Features or Components tabs of Setup Editor in Windows Installer Editor.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
Older
For File Version, this replaces the existing file if it has a version resource that is older than the new file. If the existing file lacks a version resource, it is not replaced.
For File Da t e/T im e , this replaces the existing file if its modification date and time are older than the new file.
WiseScript Editor Reference 61
Page 61
To complete the dialog box
z Pathname
Enter the directory path to create. Start the path with a variable (example: %MAINDIR%).
Create Directory in SVS Layer
This SVS script action creates a directory in a virtual software layer. You can create a directory in an existing layer or in the layer that the WiseScript creates. The directory is added to the read-only sublayer.
Note
Use this action on a deactivated SVS layer only.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
WiseScript Actions
z Path to create
z Return variable
See also:
About SVS Script Actions on page 40
Create Service
This action installs a Windows service on operating systems where they are supported. When a WiseScript is called by a Windows Installer installation, you also can create a
service on the Features or Components tabs of Setup Editor in Windows Installer Editor.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
Enter the full path of the directory to create. You can use SVS variables or WiseScript variables that resolve to a valid SVS path.
See SVS Variables on page 162.
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
z Service Name
Enter the internal service name, which is used in the registry.
WiseScript Editor Reference 62
Page 62
WiseScript Actions
z Display Name
Enter the name to appear in the Services control panel.
z Executable Path
Specify the complete path to the executable file as it will be on the destination computer. Start the path with a variable (example: %MAINDIR%).
z Login Username, Login Password
Enter the user name and password under which the service should run.
z Error Control
Specify what happens if an error occurs while the service starts.
Ignore Error
Logs the error and continues.
Normal Error
Displays a message to the end user, logs the error, and continues.
Severe Error
Logs the error. If the computer is starting the last known good configuration, startup continues. Otherwise, it restarts with the last known good configuration.
Critical Error
Logs the error if possible. If the computer is starting the last known good configuration, startup fails. Otherwise, it restarts with the last known good configuration.
z Group
Enter the name of the load ordering group to which this service belongs. Leave this empty if the service does not belong to a group.
z Dependencies
Enter a list of semicolon-separated names of services or load ordering groups that must start before this service. Leave this empty if there are no dependencies. If a service is dependent on a group, at least one member of the group must be started for this service to run.
Enter a plus sign (+) before group names to distinguish them from service names. Services and service groups share the same name space. Example: If you enter this string, "ftpsvr;httpsvr;drc;+sample", you create dependencies on the ftpsvr, httpsvr, and drc services and the sample group.
z Service Type
Select a service type.
z Start Service
Select the default setting for starting the service.
z Service Interacts With Desktop
Mark this to let the service display its user interface.
Create Shortcut
This action creates a shortcut. Common locations include the Start menu (%STARTMENUDIR%), the Startup directory (%STARTUPDIR%), the installation directory (%MAINDIR%), and the desktop (%DESKTOPDIR%).
When a WiseScript is called by a Windows Installer installation, you also can create a shortcut on the Features or Components tabs of Setup Editor in Windows Installer Editor.
WiseScript Editor Reference 63
Page 63
WiseScript Actions
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
To complete the dialog box
z Source Path
Specify the path of a file that will be installed on the destination computer. Start the path with a variable (example: %MAINDIR%\Application.EXE) and do not enclose it in quotation marks.
z Destination Path
Enter the path to the shortcut to be created, which should end in .LNK (example: %GROUP%\Application.lnk). For the current user’s desktop, Start menu, or Startup directory, use %DESKTOPDIR%, %STARTMENUDIR%, or %STARTUPDIR%. For the All Users equivalents, use %CDESKTOPDIR%, %CSTARTMENUDIR%, or %CSTARTUPDIR%.
z Command Options
(Optional) If the shortcut is for an .EXE, enter command-line options.
z Default Directory
Specify the default directory that should be set when running the target file, if different from the target file’s location. In Windows Explorer, this field is referred to as the Start in directory.
z Description
Enter text to appear in the Comment field of the shortcut’s properties dialog box.
z Icon Pathname
(Optional) Specify the file that contains the icon to be used for the shortcut. Otherwise, the target file’s icon is used.
z Window Size
Select an option to determine the appearance of the .EXE file’s window.
z Icon Number
Enter the number of the icon to use from the file specified in Icon Pathname above.
z Shift State, Hot Key Letter
These fields together populate the Shortcut Key field in the shortcut’s Properties dialog box in Windows Explorer. See Windows help.
z Support OSD software update checking
Open Software Description (OSD) is a Microsoft technology for describing and distributing software. Mark this for the shortcut to work with OSD.
Create Shortcut in SVS Layer
This SVS script action creates a shortcut in the virtual software layer. The shortcut can reference a program outside the layer. Common locations for shortcuts incl ude the Start menu, the Startup directory, the installation directory, and the desktop.
WiseScript Editor Reference 64
Page 64
WiseScript Actions
Note
Use this action on a deactivated SVS layer only.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Shortcut Name
Enter the name to appear on the shortcut.
z Source Path
Specify the path of a file that will be installed on the destination computer. You can only use an SVS variable to reference a program inside the layer. If you use a variable, start the path with a variable (example: [PROGRAMFILES]\Application.EXE) and do not enclose it in quotation marks.
z SVS Destination Path
Enter the path to the shortcut to be created (example: [DESKTOP]\). For the current user’s desktop, Star t menu, or Star tup directory, use [DESKTOP], [STARTMENU], or [STARTUP]. For the All Users equivalents, use [COMMONDESKTOP], [COMMONSTARTMENU], or [COMMONSTARTUP].
z Arguments
(Optional) If the shortcut is for an .EXE, enter command-line options.
z Default Directory
Specify the default directory that should be set when running the target file, if different from the target file’s location. In Windows Explorer, this field is referred to as the Start in directory. You an SVS path unless the shortcut references a program outside the layer.
z Description
Enter text to appear in the Comment field of the shortcut’s properties dialog box.
z Icon Path
(Optional) Specify the file that contains the icon to be used for the shortcut. Otherwise, the target file’s icon is used.
z Icon Number
Enter the number of the icon to use from the file specified in Icon Pathname above. Y ou an SVS path unless t he shortcut references a progr am out side the la yer.
z Window Style
Select an option to determine the appearance of the .EXE file’s window.
z Hot key shift state and Hot key letter
These fields together populate the Shortcut Key field in the shortcut’s Properties dialog box in Windows Explorer. See Windows help.
See also:
About SVS Script Actions on page 40
WiseScript Editor Reference 65
Page 65
Create SVS Layer
This SVS script action creates an empty virtual software layer. You can then use the Capture Application to SVS script action to add an application to the layer, or use other SVS script actions to add directories, files, registry keys, and shortcuts to the layer.
This script action can create a variable for the layer’ s GUID. You can use this variable in most of the other SVS script actions to identify the layer in the Layer GUID field.
To complete the dialog box
z Layer name
Enter the name for the layer.
z GUID variable
(Optional) Enter a name for a variable in which to place the layer’s GUID.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
WiseScript Actions
Create Virtual Directory
This script action creates a new IIS Web site or virtual directory. To set permissions for this Web site, also use the Set Web Permissions script action.
See Set Web Permissions on page 116.
To complete the dialog box
z Computer name
Enter the name of the computer where the virtual directory is to be created.
z Web site name
Enter the name of a new or existing Web site.
z Virtual directory name
Enter a name for the new virtual directory.
z Virtual directory path
Enter the path for the virtual directory on the destination computer.
Custom Billboard
This action opens the Custom Billboard Editor, which lets you create scalable graphics to display to end users during installation.
See About Billboards on page 147.
WiseScript Editor Reference 66
Page 66
Custom Dialog
Use this action to create your own dialog box or dialog box set. See About Dialog Boxes on page 120. To add a new dialog box within a wizard loop, see Adding a Dialog Box to
the Installation on page 121.
For details on the Dialog Box Properties dialog box, see Setting Dialog Box Properties on page 121.
For details on sample scripts that use this action, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Deactivate SVS Layer
This SVS script action deactivates a virtual software layer.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
WiseScript Actions
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
z Force running processes to terminate
(Optional) Mark this to force all processes that are associated with the layer to terminate when the layer is deactivated.
See also:
About SVS Script Actions on page 40
Delete File from SVS Layer
This SVS script action deletes a file from a virtual software layer. This adds the file to the delete entries list so that it doesn’t appear when the layer is activated. If you reset the layer, the file is restored because the deletion entry is in the writeable sublayer of the delete entries.
Note
Use this action on a deactivated SVS layer only.
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
WiseScript Editor Reference 67
Page 67
z File path
z Return variable
See also:
About SVS Script Actions on page 40
Delete File(s)
This action removes files from the destination computer. You do not need to delete temp files if you use the Get Temporary Filename action to
create them because they are deleted automatically.
To complete the dialog box
z Pathname
WiseScript Actions
Enter the path and file name of the file to delete. You can use SVS variables or WiseScript variables that resolve to a valid SVS path.
See SVS Variables on page 162.
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
Specify the directories or files to delete. For example, %TEMP%\Application.dll or %MAINDIR%\*.htm. You cannot perform wildcard deletions in the Windows, System, or root directories.
Click Browse to display and select files in the current WiseScript that are installed into the %MAINDIR%, %SYS32%, %SYS%, OR %FONTS% directories. When you select a path in the Browse for File dialog box, you must select a file.
z Include Sub-Directories
If you entered the path to a directory or used a wildcard, mark this to delete matching files in all subdirectories as well.
z Remove Directory Containing Files
If this is marked, and if the deletion leaves the directory empty, then the directory is deleted also.
If you mark this check bo x and Include Sub-Directories, and you do not include a file in the path, then all other empty subdirectories are deleted also. To prevent deletion of the other subdirectories, add a trailing backslash to the path. For example,
%MAINDIR%\Help\ deletes the Help directory if it is empty. %MAINDIR%\Help deletes the Help directory if it is empty and also deletes all
other empty subdirectories of %MAINDIR%.
Delete SVS Layer
This SVS script action deletes an installed virtual software layer.
WiseScript Editor Reference 68
Page 68
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Display Billboard
¾ Not applicable in this product.
This action displays a bitmap or .GRF file during installation if you have set the background to display a gradient on the Screen page. Create .GRF files (scalable bitmaps) with the Custom Billboard Editor.
WiseScript Actions
See About Billboards on page 147. You can use up to 16 Display Billboard actions in the script.
To complete the dialog box
z Pathname
Specify the full path to the graphic file on your computer. To use variables in this field, you must mark the Local Graphic option below.
z X-Position, Y-Position
Indicate the location on a 640 x 480 screen to place graphics. On larger screens, the billboard is placed proportionately based on the 640 x 480 location.
z Erase Num
Enter how many previously displayed graphics are erased before this graphic is displayed. To display one graphic at a time, set this to 1. To display all graphics simultaneously, set this to 0. The oldest graphic is removed first.
z Build Effect
Select a transition effect.
z Transparent
Mark this to have pure blue (R=0, G=0, B=255) parts of the graphic become transparent.
z Center Horizontal z Place at Right z Scale to Screen
Mark this for the graphic to cover the same percentage of the screen regardless of screen size.
WiseScript Editor Reference 69
Page 69
WiseScript Actions
z Hide Progress Bar
Mark this to hide the progress bar during graphic display.
z Center Vertical z Place at Bottom z Tile Background
Mark this to repeat the graphic edge-to-edge to fill the entire screen.
z Erase All
Mark this to remove all previous grap hics from the screen be fore displaying the new one.
z Timed Display
Mark this to display a series of graphics at evenly-spaced intervals, which is calculated by the number of files to be installed. Place all Display Billboard actions before the first Install File(s) action if you are using Timed Display.
z Local Graphic
Normally, you specify graphic files on your computer, which are then compiled into the installation. Mark this to specify a file from the destination computer. With this option, you can use variables in the Pathname field above. Example: %INST% to indicate the directory from which the installation .EXE is running. Use this to change graphics without rebuilding the .EXE.
Display Message
This action displays a message dialog box and can optionally branch the script based on the end user response. Without the branching option, this dialog box has an OK button, which continues, and a Cancel button, which halts installation.
To complete the dialog box
z Message Title
Enter the title for the dialog box.
z Message Text
This is displayed in the dialog box. Press Ctrl+Enter to add line brea ks in the displayed text. You can use variables in this text.
z Message Icon
Select an icon for the dialog box.
z Start If Block
Mark this to display Yes, No, and Cancel buttons instead of OK and Cancel. This action then acts like an If action. Statements between this action and its matching End action are executed if the end user clicks Yes. If the user clicks No, execution continues with the first action after the End action. Cancel halts the installation.
z No Cancel
Mark this to suppress the Cancel button. Use this in informational messages to prevent the end user from canceling installation.
Note
The Display Message action can help you debug. Use this action anywhere in the script to display the value of a variable by entering %VARIABLE_NAME% in Message Text.
WiseScript Editor Reference 70
Page 70
The sample scripts CheckDiskSpace.wse and Search.wse use this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Display Progress Message
This action displays a small dialog box during installation, typically to indicate the computer is still working during a long operation. The dialog box cannot be closed or cancelled. Also use this action to remove a previous progress dialog box.
To complete the dialog box
z Remove previous progress message(s)
Mark this to remove the previous progress dialog box from the screen. Marking this disables the rest of this dialog box. To display another progress message, add another Display Progress Message action.
z Display a new progress message
Message Title
Enter the title for the dialog box.
Message Text
Enter text to display in the dialog box. You can use variables in this text.
WiseScript Actions
X-Position, Y-Position
Height, Width
Center Horizontally
Center Vertically
Display Text File
This action displays a 30 K or smaller text file in a dialog box. It is included to provide backward compatibility for older WiseScripts.
To complete the dialog box
z File Pathname
Specify a file on the destination computer (examples: %MAINDIR%\Readme.txt, %TEMP%\%TEMPFILENAME%).
z Window Title
Enter the title for the dialog box.
z Description
Enter text to explain the dialog box to the end user.
In pixels, enter the location of the upper-left corner of the dialog box.
In pixels, enter the dimensions of the dialog box.
Mark this check box to override the X-Position field.
Mark this check box to override the Y-Position field.
WiseScript Editor Reference 71
Page 71
Edit INI File
WiseScript Actions
This action edits an .INI file on the destination computer. To edit SYSTEM.INI, use the Add to SYSTEM.INI action instead.
When a WiseScript is called by a Windows Installer installation, you also can edit an .INI file on the Features or Components tabs of Setup Editor in Windows Installer Editor.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
To complete the dialog box
z File
Enter the .INI file path, or select a path from the list and edit it.
z INI File Contents
Enter changes to make in the .INI file. Changes are interpreted as follows:
Edit Registry
To add to a section, type the section name in brackets, then type new lines for
that section. If the .INI file already contains a name-value pair that you type, the existing line is replaced by the new one. Example:
[SECTIONNAME] Color=Blue
To delete a section and its contents, type a section name with no lines after it.
Example: [SECTIONNAME]
To delete a name-value pair, type the name with an equals sign followed by
nothing. Example: Color=
Comments (lines starting with ;) are not supported.
This action adds, edits, or deletes registry keys or values. You can create registry entries manually or import a registry file (.REG).
When a WiseScript is called by a Windows Installer installation, you also can edit the registry on the Features or Components tabs of Setup Editor in Windows I nstall er Editor.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
WiseScript Editor Reference 72
Page 72
WiseScript Actions
To complete the dialog box
z Registry Keys
This field shows root registry keys and the keys added by this action. Select a root before adding or importing a key.
z Value Names
This field shows values being added or changed that reside under the key selected on the left.
z New Key
To add a new key, select the parent key in Registry Keys, click the New Key button, and select Key from the drop-down. A dialog box appears, where you enter information about the new key.
See Registry Key Settings Dialog Box on page 73. To import from a .REG file, select the parent key in Registry Keys, click the New
Key button, and select Import. When you add a key, you are not necessarily adding it to the registry on the
destination computer. If the key already exists, this action might add a value to it, update it, or delete it and all its associated values.
z Delete Key
Removes the selected key from the current installation. This does not remove it from the destination computer. To do that, you must change the Operation field in the key’s details dialog box.
z New Value
To add a new value, select the parent key in Registry Keys, then click the New Value button. A dialog box appears, where you enter information about the new value.
z Delete Value
Removes the selected value from the current installation. This does not remove it from the destination computer. To do that, you must change the Operation field in the value’s details dialog box.
z Data Settings
These fields in this section of the dialog box correspond to fields you set when creating the value.
See Registry Key Settings Dialog Box on page 73.
The sample script RunOnce.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Registry Key Settings Dialog Box
This dialog box ap pears when you double-cli ck the Edit R egistry action and c reate or edit a registry key on the Edit Registry Settings dialog box.
When a WiseScript is called by a Windows Installer installation, you also can create or edit registry entries by using the Registry page.
To complete the dialog box
z Operation
Select the operation to apply to the key or its associated value.
WiseScript Editor Reference 73
Page 73
WiseScript Actions
Create/update key and value
The value is updated if it already exists. If the key or value does not exist, it is created.
Create empty key
Creates the key but does not add any values.
Remove key and all subkeys
Deletes the key, its subkeys, and all named values associated with the key and its subkeys on the destination computer.
Remove key and value only
Removes the named value from the key on the destination computer. If the key has other named values, they are preserved.
Preserve existing key and value
Adds a new key or value if the specified item does not exist, but leaves the existing value in place if one already exists. This option is not a v ailable with the Edit Registry for SVS Layer script action.
z Root
Select the parent key in which the new key is added.
z Key
Enter the name of the new key. You can create multiple hierarchi cal keys at once by separating them with backslashes, as in directory paths. (Example: Entering NewDocument\Protocol\StdFileEditing creates the StdFileEditing key inside the Protocol key, which is created inside the NewDocument key.) Any keys in the path that do not exist are automatically created.
z Value Name
Enter the name of a new named value.
z Data Value
The data for the value. If the Data Type (below) is Double Word (DWORD), the data should be in decimal notation. To insert multiple lines of data here, press Ctrl+Enter to begin a new line.
z Data Type
Select the type of data contained in the named value. Available types are listed below. The associated Windows API data types are in parentheses.
String
(REG_SZ prefix) Indicates that a value entry is an expandable string. To embed a variable name, (such as %WIN%), enclose it with double percents (%%WIN%%). If you enclose it in single percents, then the variable name is expanded to its actual value. This allows Windows system variables to be embedded.
Unexpanded String
(REG_EXPAND_SZ prefix) Identifies a value entry as an unexpanded data string. To embed a variable name, (such as %WIN%), you must enclose it with double percents (%%WIN%%). If you only enclose it in single percents, then the variable name is expanded to its actual value. This allows Windows system variables to be embedded.
Multiple Strings
(REG_MULTI_SZ prefix) Identifies a value entry as a multiple string. These are multiple pieces of text, separated by carriage returns.
WiseScript Editor Reference 74
Page 74
Double Word
(REG_DWORD prefix) Identifies a value entry as a 32-bit (DWORD) entry.
Binary/Hex
(REG_BINARY prefix) Identifies a value entry as binary. Each byte should be separated by at least one blank space. For instance: AD 30 C0 A9 40 20 A8 FC 4C 00 08.
None
This is provided for compatibility with SMS Installer installations. It behaves the same as the binary data type.
z Append Data
Normally, if you set a registry key to a new value and the key already exists, the value is replaced with the new value. If you want to append the new data to an existing multiple strings value instead of replacing it, mark this check box. This option is unavailable unless Multiple Strings is selected in the Data Type drop­down list.
Edit Registry for SVS Layer
This action adds, edits, or deletes registry keys or values in an SVS Laye r. You can create registry entries manually or import a registry file (.REG).
WiseScript Actions
Note
Use this action on a deactivated SVS layer only.
To complete the dialog box
z Registry Keys
This field shows root registry keys and the keys added by this action. Select a root before adding or importing a key.
z Value Names
This field shows values being added or changed that reside under the key selected on the left.
z New Key
To add a new key, select the parent key in Registry Keys, click the New Key button, and select Key from the drop-down. A dialog box appears, where you enter information about the new key.
See Registry Key Settings Dialog Box on page 73. To import from a .REG file, select the parent key in Registry Keys, click the New
Key button, and select Import. When you add a key, you are not necessarily adding it to the registry on the
destination computer. If the key already exists, this action might add a value to it, update it, or delete it and all its associated values.
z Delete Key
Removes the selected key from the current installation. This does not remove it from the destination computer. To do that, you must change the Operation field in the key’s details dialog box.
WiseScript Editor Reference 75
Page 75
WiseScript Actions
z New Value
To add a new value, select the parent key in Registry Keys, then click the New Value button. A dialog box appears, where you enter information about the new value.
z Delete Value
Removes the selected value from the current installation. This does not remove it from the destination computer. To do that, you must change the Operation field in the value’s details dialog box.
z Data Settings
These fields in this section of the dialog box correspond to fields you set when creating the value.
See Registry Key Settings Dialog Box on page 73.
z SVS Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
See also:
About SVS Script Actions on page 40
Else Statement
This action marks the beginning of a section of instructions to be executed when the condition specified in the matching If action is false. It takes no parameters, and selecting it from the Actions list inserts it directly into the script with no further dialog boxes or prompts.
See also:
If Statement on page 91
ElseIf Statement
This action is put inside an If block to check for another condition. It marks the beginning of a block of code that is executed only if the condition checked by the If Statement is false, all previous ElseIfs are false, and this ElseIf is true. You can use one If Statement with multiple ElseIf Statements to check for multiple conditions.
To complete the dialog box
z If Variable
Select a variable from the first drop-down list, and a comparison method from the second drop-down list.
Expression True means the expression in the Value field below is evaluated according to the conventions for WiseScript expressions.
See Variables and Expressions on page 34.
WiseScript Editor Reference 76
Page 76
z The Value
See also:
If Statement on page 91
End Statement
This action marks the end of an If block or a While loop. It takes no parameters, and selecting it from the Action list inserts it directly into the script with no further dialog boxes or prompts.
WiseScript Actions
The variable is ignored and can be left blank. The result is considered true if it evaluates to a non-zero result. Valid Password and Invalid Password evaluate according to the password that is entered on the Passwords page.
(The password comparisons are not applicable in this product.)
Enter the value to be used in the comparison, or an expression if the comparison is set to Expression True. If you enter variable names in this field, do not surround them with percent signs (%). If you enter compiler variables, then you must surround them with percent signs.
Note
This is different from the End Statement action that is in MSI Script in a Windows Installer installation.
See also:
If Statement on page 91
Evaluate Windows Installer Condition
This action evaluates a condition in the curren tly -runnin g Windows Installer installation. You enter a Windows Installer condition and select a WiseScript variable to store the result. It puts the value of 1 (true) or 0 (false) into the WiseScript variable. Use this action only in WiseScripts that are called from a Windows Installer installation.
To complete the dialog box
z Dest. Variable
Select or enter a variable to store the result of the Windows Installer condition. The variable is set to 1 if the condition is true, or 0 if false.
z Condition
Enter a condition to evaluate. This can be any condition that can be evaluated in Windows Installer. You can either enter the literal condition or use WiseScript variables enclosed in percent signs.
See also:
Get Windows Installer Property on page 90 Set Windows Installer Property on page 116
WiseScript Editor Reference 77
Page 77
Execute Program
This action runs another .EXE. The .EXE can be a file that is already installed on the destination computer, a file you installed as part of the installation, or a file you pro vi de on a separate disk.
When a WiseScript is called by a Windows Installer installation, you can also use the Execute Program custom actions in MSI Script in Windows Installer Editor.
If the .EXE you plan to execute is coded to pass back a return v alue, the resulting return value is put into the variables %INSTALL_RESULT% and %PROCEXITCODE%. If the .EXE passes back a return value, mark the Wait for Program to Exit check box.
To complete the dialog box
z .EXE Path
Specify the full path to the program to run, including the program file name. Example: %MAINDIR%\Application.exe
z Command Line
Enter any command-line options to apply to the .EXE when it runs, as if you were typing them in the Run dialog box.
z Default Directory
Specify the directory that should be current when the .EXE file is executed. The installation performs the equivalent of a Change Directory command (cd) before running the .EXE. Click Browse and select a directory from your installation. You can select from directories that you created using the Create Directory action.
WiseScript Actions
See Create Directory on page 61.
z Variables Added
List any variables created in the .EXE that are not present in the calling script.
z Window Size
You can force the .EXE file to run in a maximized or a minimized window, or you can let it run in its default window. Select Hidden to run the .EXE silent ly, which means it runs minimized and its task is not shown on the task bar.
z Wait for Program to Exit
Mark this to stop the installation while this program runs. The installation does not resume until the program exits. Be sure to mark this if the .EXE returns a value to the script. If the installation does not wait for the .EXE to exit, add the command­line option -sms.
Note
This action uses the Windows ShellExecute call, which means that you can open documents as well as applications. When the script opens a document, the associated application starts.
The sample scripts FTPCopy .wse and Newdisk.wse use this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Execute VBScript
This action lets you execute VBScripts from within a WiseScript. This greatly expands the functionality of WiseScripts because you can use all the scripting capabilities of
WiseScript Editor Reference 78
Page 78
WiseScript Actions
VBScript (example: arrays and subfunctions). Adding VBScripts can also save you time because you can use scripts that others have created.
For each VBScript action in a script, a new tab appears at the bottom of the Installation Script pane. When you click this tab, the VBScript window appears. In this window, you can create and edit the VBScript. The window is similar to a WiseScript window, but has functionality that is appropriate only for a VBScript.
See Editing a VBScript on page 79. The WiseScript and VBScript interact so you can set a variable in either script and then
use that variable in the other script. The VBScript window also has an action to facilitate the calling of COM objects.
See VBScript Actions on page 80.
Warning
You should be familiar with VBScript to use this feature.
To complete the dialog box
z VB Script Path
Specify the full path to a .VBS file including the file name. To create a new .VBS file, specify its full path including the file name and click Yes when prompted to create a new file. You can use compiler variables in the path.
z Command Line
You can use WiseScript variables in the command line. The sample script MakeWebDir.wse uses WiseScript variables in the command line to let the end user specify the name and location of a virtual directory that the script creates. F or details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Editing a VBScript
When you use the Execute VBScript action in a WiseScript, a new tab appears at the bottom of the Installation Script pane. When you click this tab, the VBScript window appears. In this window, you can create and edit the VBScript. The window is similar to a WiseScript window, but has functionality that is appropriate only for a VBScript.
To edit a VBScript in Script Editor, use the following:
z Actions in the Actions pane.
z Buttons and drop-down list at the top of the Installation Script pane.
If the VBscript requires a command line, enter it here. A command line is probably required if:
The VBScript required a command line when it ran stand-alone. The WScript object with the Arguments property (WScript.Arguments) is in the
VBScript.
See VBScript Actions on page 80.
z Right-click menu. z Any options on the Edit menu that are enabled.
WiseScript Editor Reference 79
Page 79
WiseScript Actions
Display Options
Use the buttons and drop-down list at the top of the Installation Script pane to display different portions of the VBScript.
Event View Click this button and select a method from the drop-
down list to display one method at a time.
Full Module View Click this button to display the entire script. When you
select a method from the drop-down list, the script opens to that method.
Right-Click Menu Options
z List Objects
Displays a drop-down list of predefined objects and, when possible, objects that are called in the script.
For details on when called objects appear in this drop-down list, see VBScript
Actions on page 80.
z List Properties/Methods
Displays, when possible, a drop-down list of the properties and methods of an object when the cursor is on that object’s property or method. This drop-down list also appears as a pop-up when you enter the object’s name followed by a period.
VBScript Actions
For details on when this list appears for an object, see VBScript Actions on page 80.
z List Functions
Displays a list of VBScript functions. For help on VBScript functions, see the MSDN Library (msdn.microsoft.com/library/).
z Quick Info
Displays help text, when possible, for a selected item. This help text can also appear as a pop-up. Example: when you select an item in a drop-down list.
z Check Syntax
Checks the script for basic syntax and displays a Syntax Error message. A syntax error message also appear as a pop-up when a syntax error is detected.
z Revert to Saved
Reverts the current script to the last saved v e rsion, to undo any changes you made since you last saved.
When you use the Execute VBScript action in a WiseScript, a new tab appears at the bottom of the Installation Script pane. When you click this tab, the VBScript window appears. The VBScript window has three actions that facilitate the creation of the VB script.
Add an action to a VBScript in the same ways that you add an action to a WiseScript. See Adding an Action to a Script on page 26.
WiseScript Editor Reference 80
Page 80
WiseScript Actions
Call COM Object
Use this action to create a script to call a COM object in the VBScript. You can manually enter the script to call a COM object, but the Call COM Object action facilitates this process by providing information about the COM objects. If the object is registered on your computer, this action can provide the following functionality:
z The object appears in the Li s t Objects drop-down list that is accessed from the
right-click menu.
z The object has a List Properties/Methods drop-down that lists the exposed
properties and methods of that object. Example: This drop-down list appears when you enter the object’s name followed by a period.
z A help pop-up is associated with the object and its properties and methods. This
pop-up displays help text for these items when they are selected in a drop-down list or when you select Quick Info from the right-click menu.
When you call an object in a VBScript, the object persists between the execution of that script and any other VBScripts that are executed by the same WiseScript. (Example: If the WiseScript executes two VBScripts and the first VBScript calls an object, you do not need to create the object in the second script to access its properties and methods.) However, if you create an object in one editor window you will not automatically see its properties and methods in a second window even though they will execute properly.
See Calling a COM Object in a VBScript on page 81
Get WiseScript Variable
Use this action t o create script code that gets a WiseScript variable. You must set the variable in the WiseScript or another VBScript prior to the Execute VBScript action.
See Set Variable on page 114. In the VBScript, you put the name of the variable in the Get Variable function that
appears when you double-click this action. This action uses the VBScript GetVariable function.
The sample script SetGetVariable.wse uses the Get WiseScript Variable action in its VBScript to get a variable that is set in the WiseScript. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Set WiseScript Variable
Use this action to create a script that sets a variable in the VBScript that can be used in the WiseScript. You must also set the variable in the WiseScript prior to the Execute VBScript action, but the VBScript determines the value of the variable.
See Set Variable on page 114. To use the variable in the WiseScript, you must place the variable after the Execute
VBScript action. This action uses the VBScript SetVariable function. The sample script SetGetVariable.wse uses the Set WiseScript Variable action in its
VBScript and then uses this variable in the WiseScript. For de tails on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Calling a COM Object in a VBScript
When you use the Execute VBScript action in a WiseScript, a new tab appears at the bottom of the Installation Script pane. When you click this tab, the VBScript window
WiseScript Editor Reference 81
Page 81
WiseScript Actions
appears. In the VBScript, you can call a COM object and then use the functions and properties that are exposed by this object.
To call a COM object in a VBScript
1. Use the Execute VBScript action to add a VBScri pt to the WiseScript. See Execute VBScript on page 78.
2. Click the tab for the VBScript that appears at the bottom of the Installation Script pane.
The VBScript window appears.
3. Add a Call COM Object action. The Call COM Object dialog box appears. The only required fields on this dialog box
are Creatable Object ProgID and Variable name. The other fields help you identify an object’s ProgID.
Note
The Call COM Object dialog box only facilitates calling a COM object, it does not guarantee that the information it accesses on your computer is correct.
4. To use TypeLib information to identify the object, click Select. The Browse Typelib Information dialog box appears. It lists TypLib information for
all the objects registered on your computer.
5. Do one of the following:
For an object that is registered on your computer, select the TypeLib
information for the object.
For an object that is not registered on your computer, click Browse and locate
the file that contains the TypeLib information. TypeLib information for an unregistered object does not help you identify the object’s ProgID, but it does display a list of objects in the Objects field for the file you selected. This information might help you identify the correct object.
The Call COM Object dialog box reappears.
6. If the desired object does not appear in the Object field, select it from the drop­down list.
If a registered object has a ProgID, it will appear in Creatable Object ProgID. If an object does not have a ProgID, you can not call that object. A ProgID consists of the name of the application providing the object, followed by a period and the type or class of the object. If an object is not registered, you must enter its ProgID in Creatable Object ProgID.
7. In Variable name, enter a name for this object. You use this name in the VBScript to access it methods and properties.
8. Click OK. The script to call the selected object appears in the VBScript.
Exit Installation
This action exits the installation.
WiseScript Editor Reference 82
Page 82
WiseScript Actions
No message appears unless you also set the RESTART variable. See Automatic Run-time Variables on page 158.
Note
When a WiseScript is called by a Windows Installer installation, this does not exit the MSI installation. It only exits the WiseScript .EXE.
To complete the dialog box
z Application Exit Code
If this script is called by another application, this is the return code to the calling application. You can use a v ariable enclosed with %. F or example, with a WiseScr ipt wrapper that executes an MSI, you could type %INSTALL_RESULT%. The value of the Application Exit Code would then be the same as the exit code of the MSI. You would then not have to create an Exit Installation action for each possible value that Windows Installer co ul d return.
If the WISE_ERROR_RTN variable is already set, the value in WISE_ERROR_RTN does not override the Application Exit Code but is written to the installation log.
See Run-time Variables on page 160.
Export SVS Layer
To complete the dialog box
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Archive path
Enter the path and file name to which the archive file is to be exported. This directory must already exist. You can use WiseScript variables.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
z Overwrite archive file if it already exists
Mark this to overwrite the archive file if it already exists.
See also:
About SVS Script Actions on page 40
Find File in Path
This action searches for a file on the destination computer. If more than one match exists, only the first match is returned.
WiseScript Editor Reference 83
Page 83
WiseScript Actions
To complete the dialog box
z File Name
Enter just the file name, not a full path. Wildcard characters (*, ?) are not allowed.
z Variable Name
Enter a variable in which to store the path of the file if it is found. If the file is not found, this variable stores the Default Value specified below.
z Default Value
Enter a value to put into the variable if the file is not found. To use an If statement that tests the variable, leave this blank so it evaluates to false.
T o install a new v ersion of the file, specify the file’s typical location here. Then, if the file is found, the location replaces the default value, but if it is not, this default value is used to install the file.
z Description
Enter text to display if the find operation takes more than 1.5 seconds to complete. This happens only if the list of directories in the PATH is very long or a directory is on a slow device (example: CD-ROM).
z Search Directories
Enter a semicolon-delimited list of directories to search. You can use variables. If this field is blank, only directories in the PATH envir onment variable are searched.
z Remove File Name
Mark this to remove the file name from the end of a returned path, leaving only the directory name. This operation is not performed on the Default Value.
Find First SVS Layer
This SVS script action starts a search for a virtual software layer on the destination computer. To find additional layers, use this script action with the Find Next SVS Layer script action.
See Find Next SVS Layer on page 84.
To complete the dialog box
z Layer GUID Variable
Enter a name for a variable in which to place the layer’s GUID.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Find Next SVS Layer
This SVS script action finds the next virtual software layer on the destination computer after the Find First SVS Layer script action finds the first layer. To find additional layers, repeat this script action.
See Find First SVS Layer on page 84.
WiseScript Editor Reference 84
Page 84
To complete the dialog box
z Layer GUID Variable
Enter a name for a variable in which to place the layer’s GUID.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Find SVS Layer GUID
This SVS script action finds the GUID of a virtual software layer and creates a variable for this GUID. Y ou can use this v ariable in most of the other SVS script actions to identify the layer in the Layer GUID field.
To complete the dialog box
z Layer name
Enter the name of the layer.
WiseScript Actions
z GUID variable
Enter a name for a variable in which to place the layer’s GUID.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
See also:
About SVS Script Actions on page 40
Get Environment Variable
This action puts the value of a Windows environment v ari able into a WiseScript variable.
To complete the dialog box
z Env. Variable
Enter a Windows environment variable.
z Variable Name
Enter a variable to store the value of the environment variable.
z Default Value
(Optional) Enter the value to store in the variable if the environment variable is not found.
z Remove File Name
Mark this to remove a file name from the end of a returned path, leaving only the directory name. This operation is not performed on the Default Value.
To run a batch file or other application in a DOS window, use Get Environment Variable to put the value of ComSpec (path to command.com) into a variable (example: put it in %COMMAND%). Then use the Ex ecute Progr am action to c all command.com by entering
WiseScript Editor Reference 85
Page 85
%COMMAND% in the EXE Path field. Specify the file to open in the Command Line field. Add the /c command-line option to cause the command-line window to close when your program finishes execution.
Get Name/Serial Number
This action displays a dialog box that requests the end user’s name, company name, and a product serial number.
To complete the dialog box
z Title
Enter the title for the dialog box.
z Description
Enter text to explain the dialog box to the end user.
z Name Prompt
Enter text to appear next to the Name field.
z Company
Enter text to appear next to the Company field.
z Serial Number
Enter text to appear next to the Serial Number field.
WiseScript Actions
z Variable
In the three Variable fields, enter the variables to store the Name, Company, and Serial Number.
z Confirm Text
(Optional) Enter text to be displayed in a separate dialog box to confirm registration. If this is blank, no confirmation dialog box appears.
Get Registry Key Value
This action puts the value of a registry key into a variable. Multi-line (MULTI_SZ) registry values are read into a list format.
To complete the dialog box
z Variable Name
Select or enter a variable to store the value.
z Default Value
(Optional) Enter the value to put into the variable if the value is not found.
z Registry Key
Enter the key that contains the value to be retrieved.
z Value Name
Enter the value name. (If you are reading the Win16 registry, lea ve this f ield blank.)
z Root
Select the root that contains the registry key. (If you are reading the Win16 registry, leave HKEY_CLASSES_ROOT selected.)
WiseScript Editor Reference 86
Page 86
z Remove File Name
Mark this to remove a file name from the end of a returned path, leaving only the directory name. This operation is not performed on the Default Value.
z Expand Environment Variables
If you read a REG_EXPAND_SZ value, mark this to ha ve all environment v ariables in the registry value replaced with their actual values.
The sample script URL.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Get SVS Layer Info
This action retrieves information about an SVS layer on the destination computer and puts that information into different variables.
To complete the dialog box
Specify the layer’s GUID and select or enter a variable name in each field whose information you want to gather. Leave the other fields empty.
z Layer GUID
Enter the layer’s GUID (globally unique identifier) or a variable that represents the layer’s GUID. If you enter the layer’s GUID, do not include the { } brackets.
WiseScript Actions
For information on creating a variable for a layer’s GUID, see Create SVS Layer on page 66 and Find SVS Layer GUID on page 85.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
z Active Variable
If the layer is deactivated, 1 is placed in this variable. If the layer is activated, 2 is placed in this variable.
z Active On Start Variable
If the layer is deactivated when the computer starts, 1 is placed in this variable. If the layer is activated when the computer starts, 2 is placed in this variable.
z Layer Name Variable
The name of the layer as it appears in the Symantec SVS applet is placed in this variable.
z Layer Type Variable
If the layer is read-only, 0 is placed in the variable. If the layer is writeable (peer layer), 1 is placed in the variable. If the layer is a data layer, 2 is placed in the variable.
z Peer GUID Variable
The GUID of the writeable layer that is associated with this layer is placed in this variable.
z Reg Path Variable
The path to the registry key where layer attributes are stored is placed in this variable. These attributes include information such as the layer’s name and GUID.
z File Redir Path Variable
The file redirect path where the layer’s files are stored is placed in this variable.
WiseScript Editor Reference 87
Page 87
z Reg Redir Path Variable
The registry redirect path where the layer’s registry keys are stored is placed in this variable.
z Creation, Activate, and Reset Time Variables
The time the layer was created, activated, or reset is placed in these variables. The time is reported as the number of seconds since midnight (00:00:00), January 1,
1970.
See also:
About SVS Script Actions on page 40
Get System Information
This action retrieves information about the destination computer and puts it into a variable.
To complete the dialog box
z Variable Name
Specify the variable in which to store the retrieved value.
WiseScript Actions
z Retrieve
Select the information to retrieve:
Current Date/Time
The time is in 24-hour format. Example: 07/14/05 11:18:10
Windows Version
Example: 5.2.3790 (Windows 2003 Professional)
DOS Version
Example: 6.22
K Bytes Physical Memory
The amount of physical RAM.
File Date/Time Modified
The time and date on which the file that is specified in Pathname was modified.
File Version Number
The version of the file that is specified in Pathname. Example: 2.5.4.0 If the file does not have a version resource, the response is blank.
Registered Owner Name
The user name entered when Windows was installed. This is used to pre-fill the Branding / Registration dialog box.
Registered Company Name
The company name entered when Windows was installed. This is used to pre-fill the Branding / Registration dialog box.
Drive Type for Pathname
WiseScript Editor Reference 88
The type of drive of the file or directory that is specified in Pathname: N (network), H (hard disk), C (CD-ROM), F (floppy or removable disk), R (RAM disk).
Page 88
WiseScript Actions
First Network Drive
The letter of the first network drive, followed by a colon I f ther e are no network drives, the response is blank.
First CD-ROM Drive
The letter of the first CD-ROM drive, followed by a colon. If there is no CD-ROM drive, the response is blank.
Win32s Version
The version number of the currently running Win32s system in #.# format or blank if Win32s is not installed.
Full UNC Pathname
The UNC path of the destination computer.
Installer EXE Pathname
The path, including the file name, of the installation currently executing.
File Size (Bytes)
The size of the file that is specified in Pathname.
Volume Serial Number
The serial number of the disk drive that is specified in Pathname.
Volume Label
The label of the disk drive that is specified in Pathname.
Windows Logon Name
The Windows network logon name of the user logged onto the destination computer.
Service Pack Number
Service pack number of the current operating system, if one exists.
Current Date/Time (four-digit year)
Same as Current Date/Time above except a different format. Example: 07/ 14/2005 11:18:10
File Date/Time Modified (four-digit year)
Same as File Date/Time Modified above except a different format. Example: 07/14/2005 11:18:10
Disk Free Space (KBytes)
Free disk space of the drive that is specified in Pathname. In Pathname, enter a drive (C:\) or a path (%MAINDIR%\Readme.txt). If you enter a path, it returns the free space on the drive that the path refers to. You can enter a UNC path such as \\Server_Name\Apps\Cat.exe.
Current Date/Time (Regional settings)
The date and time specified by the destination computer’s regional settings.
UTC File Date/Time Modified
Same as File Date/Time Modified above except in Coordinated Universal Time (UTC) format. Coordinated Universal Time is an international time standard, in which all time zones are computed relative to UTC. Example: in the United States, Central Standard Time (CST) is six hours earlier than UTC time— 10:00 UTC is 4:00 CST.
Is OS 64 Bit
WiseScript Editor Reference 89
The value of the variable you specified above is set to 1 if the destination computer is running a 64-bit operating system, and 0 if not.
Page 89
z Pathname
Use this field only for operations that retrieve information on files or directories. Specify the full path of the file or directory to retrieve information from. You can use variables (example: %MAINDIR%\Readme.txt). You also can enter a hardcoded path (example: C:\Program Files\File.exe) but it is not recommended.
The sample script Autoplay.wse uses this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Get Temporary Filename
This action generates a unique, temporary file name and stores it in a variable. Use the temporary name when you need to install a file to the Windows Temp directory (%TEMP%). Files that you create using this file name are deleted when the installation finishes. Example: Use this to install a .DLL that is called during installation, and is then no longer needed.
To complete the dialog box
z Variable
Specify a variable in which to store the temporary file name. Only a file name is generated. To refer to this file, prefix it with the %TEMP% variable extension. Example: If the variable is %HELPFILE%, the full path of the file would be %TEMP%\%HELPFILE%.
WiseScript Actions
Get Windows Installer Property
This action gets the value of a Windows Installer property in the currently running Windows Installer installation and puts it into a WiseScript variable. Use this action only in WiseScripts that are called from a Windows Installer installation.
To complete the dialog box
z Dest. Variable
Select or enter a variable to store the value of a Windows Installer property.
z Property Name
Enter the name of the Windows Installer property in the currently running Windows Installer installation.
See also:
Set Windows Installer Property on page 116 Evaluate Windows Installer Condition on page 77
Halt Compilation
This action immediately stops compilation of the script. It must be placed between Compiler Variable If and Compiler Variable End statements or the script will never compile. Use this to ensure that conditions are met before compiling.
WiseScript Editor Reference 90
Page 90
If Statement
WiseScript Actions
To complete the dialog box
z Message Text
Enter a message to display to the user if the compile is stopped.
Example: You deve lop a script that uses runtime files. On y our own computer, you hav e the correct runtime files to pull into the installation. However, you want to prevent compilation on other computers if they lack correct runtime files because the resulting installation could damage runtime installations on destination computers.
You do this by adding a Compiler Variable If/Else/End block. You get the file version of a key runtime file using the file version option of a Compiler If statement. Then, if the file version is not the one the script requires, use the Halt Compilation action to prevent compilation.
This action marks the beginning of a conditional block of script, an If block. If the condition specified in the If Statement is true, the lines inside the If block are executed. The If block can also contain an Else or several ElseIf actions.
Note
This is different from the If Statement action that is in MSI Script in a Windows Installer installation.
To create an If block
1. Add an If Statement and complete the dialog box:
If Variable
Select a variable from the first drop-down list, and a comparison method from the second drop-down list.
Expression True means the expression in the Value field below is evaluated according to the rules outlined in Variables and Expressions on page 34. The variable is ignored and can be left blank. The result is considered true if it evaluates to a non-zero result.
(The password comparisons are not applicable in this product.)
The Value
Enter the value to be used in the comparison, or an expression if the comparison is set to Expression True. If you enter variable names, do not surround them with percent signs (%). If you enter compiler v ariables, then you must surround them with percent signs.
2. Below the If Statement, add one or more actions to perform if the variable has the specified value.
3. (Optional) Add an Else or several ElseIf actions. Follow the Else action with one or more actions to perform if the compiler variable does not have the specified value.
4. Add an End Statement.
Sample scripts that use this action are Search.wse, WiseUp.wse, and scripts that manipulate strings and perform calculations. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
WiseScript Editor Reference 91
Page 91
See also:
Else Statement on page 76 ElseIf Statement on page 76 End Statement on page 77
Import SVS Layer
To complete the dialog box
z Archive path
Specify the path and file name for the archive file. You can use WiseScript variables.
z GUID variable
(Optional) Enter a name for a variable in which to place the layer’s GUID.
z Return variable
(Optional.) Enter a name for the return variable. When this script action runs successfully, either 0 or 1 is placed in this variable.
z Overwrite layer if it already exists
Mark this option to overwrite the layer if it already exists.
WiseScript Actions
See also:
Activate SVS Layer on page 41 About SVS Script Actions on page 40
Include Script
This action adds an additional script to the current installation script. During compile, the include script is copied into the calling script at the location of the Include Script action, resulting in a combination of the scripts.
Include scripts can save time because you can develop a library of WiseScripts that perform specific functions, like subroutines. You can re-use include scripts and share them with colleagues. They typically contain just a few lines of code, such as calling an .EXE or displaying a particular dialog box. Include scripts can be any size with the limitation that the calling script plus include scripts cannot be more than 32,000 lines.
Include scripts are displayed in tabs at the bottom of the script window. To make an include script, create a new file and select Blank Script. Otherwise the
include script contains the default script, which is designed to perform an installation. The combined script would then have two wizard loops, two of every dialog box, and so on. Only the script is inserted into the calling script.
Any Compiler variables that are defined on the Compiler Variables page are ignored .
To complete the dialog box
z Pathname
Specify the path of the script. It should be a .WSE file on your computer, not the destination computer. Because the main script and include scripts are combined during compile, not run time, do not use a run-time variable in Pathname. Y ou can , however, use a compiler variable.
Example of a line in the script that includes a script:
WiseScript Editor Reference 92
Page 92
Include Script C:\Scripts\OpensWord.wse
Example of what a short include script might look like:
Execute %PROGRAM_FILES%\winword.exe
Initialize SVS
This action initializes the SVS Driver (Software Virtualization Agent) so that you can communicate with it. It takes no parameters, and selec ting it from the Action list insert s it directly into the script with no further dialog boxes or prompts. It is included in all of the SVS-specific actions. If you create a user-defined SVS-specific action, begin the action with this action.
See also:
About SVS Script Actions on page 40
Insert Line Into Text File
This action edits a text file on the destination computer. Use it to edit configur ation files that cannot be edited by Edit INI File, Add Device to System.ini, Add Command to Config.sys, or Add Command to Autoexec.bat.
WiseScript Actions
You can insert a new line at a particular line number, or you can search for text and insert a new line before, after, or in place of the line where the text was found. Either complete the Line Number field or the Search for Existing Text section. Do not complete both because you can only do one or the other.
To complete the dialog box
z File to Edit
Specify the path of the text file to edit (example: %SYS32%\File.txt).
z Text to Insert
Enter the text to add to the file. If the line refers to a directory or file, start the path with a variable (example: %MAINDIR%\Application.exe).
z Line Number
Enter the line number at which to insert the new text. Enter 0 to append to the end of the file. Information in the Search for Existing Text area overrides any line number that is specified here unless the text is not found.
z Search for Text
Enter the text to search for. If more than one line in the file matches, only the first is edited.
z Comment Text
Enter comment to insert at the beginning of the found line. When replacing an existing line, use this to leave the existing line in place but inactive. Set Insert Action to insert before the existing line so that subsequent installations find and edit the active command, not the commented line.
z Insert Action
Select the action to be taken when a line is found.
z Match Criteria
Select how the line is matched with the text in Search for Text.
WiseScript Editor Reference 93
Page 93
z Ignore White Space
z Case Sensitive
z Make Backup File
The sample scripts Add Tnsnames entr y.wse and T extFi le.wse use this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
Install File(s)
This action installs files on the destination computer. Each file or directory to be installed must have a separate Install File(s) action.
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
WiseScript Actions
Mark this to ignore spaces and tab characters.
Mark this to make the match case-sensitive.
Mark this to make a copy of the text file before editing it. A number is appended to the end of the file name for the backup copies (example: text.001, text.002, and so on).
When you’re installing files permanently on the destination computer using the Install File(s) script action, you might also want to make sure that the destination computer has enough disk space available for these files. Do this using the Check Disk Space script action.
See Check Disk Space on page 53. The results from an Install File(s) action are put into a variable, INSTALL_RESULT. See its description in Automatic Run-time Variables on page 158.
To complete the dialog box
z Source Pathname
Specify the path of the file on your computer. You can use wildcards in this field to indicate that all the files in a directory that match a certain pattern should be installed (example: C:\Dev\*.exe). You can also use compiler variables, but you should not use run-time variables, because this field is used at compile time.
z Destination Pathname
Specify the path the file will have on the destination computer. Use variables to start the path (example: %MAINDIR%\Dev\File.txt). This field has a drop-down list with common variables. Do not include wildcards in this field.
z Description
Enter text to appear in the progress bar while this file is installed.
z Require Password
(Not applicable in this product) If you entered a password on the Password page, and you mark this, the end user is
prompted for the password before this file is installed.
WiseScript Editor Reference 94
Page 94
WiseScript Actions
The password prompt appears only once, for the first password-protected file in an installation, regardless of the number of password-protected files. If no password­protected files are slated for installation, the prompt does not appear.
z Include Sub-Directories
If you specify a directory in Source Pathname, mark this to include all subdirectories and their contents.
z Shared DLL Counter
If this is marked, and the file is a .DLL or .VBX, Windows tracks the file to prevent its removal if an installed application is still using it.
z No Progress Bar
To hide the progress bar, mark this for every file in the installation. If you mark it for some files, but not others, the progress bar seems to display continuously because the screen does not refresh between files.
z Self-Register OCX/DLL/EXE/TLB
All .OCXs and .TLBs and some .DLLs and .EXEs support self-registration. Mark this so the file registers itself in the Windows registry before it is used. This action does not register the file, but specifies that it should be registered later. Include a Self­Register OCX/DLL action to register the file.
See Self-Register OCXs/DLLs on page 111.
z Replace Existing File
Select when to replace existing files on the destination computer.
Always
The new file always replaces the old file.
Never
The file never overwrites an existing file. Select this for files that should be installed if they are not present, but which might be customized by the end user and should therefore not be replaced on re-installation (example: configuration files).
Check File
The existing file is only replaced if the requirements you set in File Version and File Date/Time are true.
Doesn’t Matter
Select this option if only one of the requirements, File Version or File Date/Time, must be fulfilled to replace the existing file.
Same or Older
For File Version, this replaces the existing file if it has a version resource that is the same as or older than the new file. If the existing file lacks a version resource, it is not replaced.
For File Da t e/T im e , this replaces the existing file if its modification date and time are the same or older than the new file.
Older
For File Version, this replaces the existing file if it has a version resource that is older than the new file. If the existing file lacks a version resource, it is not replaced.
WiseScript Editor Reference 95
For File Da t e/T im e , this replaces the existing file if its modification date and time are older than the new file.
Page 95
z Retain Duplicates in Path
By default, version checking removes existing copies of .DLLs that are found in the path list. To suppress this feature, mark this check box.
Install SVS Package
This action installs a Virtual Software Package (VSP) on a destination computer. You can use this action to create a WiseScript that installs any number of VSPs.
After you add an Install SVS Package action to a script, you can open its .WVP file in Virtual Package Editor directly from the WiseScript. To open the .WVP file, select its Install SVS Package action and select Open Package from its right-click menu. If you edit and recompile the .WVP in Virtual Package Editor, those changes are incorporated into the WiseScript the next time it is compiled.
To complete the dialog box
z Source Pathname
Specify the .WVP file.
z Activate Layer
Check this to activate the layer after it is imported on the end user’s computer. We recommend that you check this unless you hav e a specific reason to not activate the layer when it is imported on the end user’s computer.
WiseScript Actions
z Bind this WiseScript to the .WVP release
When you check this, the name of the current WiseScript file appears by default in Release Name, and this WiseScript is added as a release to the .WVP file’s Releases page in Virtual Package Editor. If you then edit and recompile the .WVP file in Virtual Package Editor, this .WSE file is also recompiled by default.
We recommend that you select this option so that when you make changes to .WVP files that are used in Install SVS Package actions, you can also automatically u pdate the WiseScripts that contain these actions.
See also:
About SVS Script Actions on page 40
Install WiseUpdate Client
The Install WiseUpdate Client action updates an application on destination computers over the Internet.
To complete the dialog box
z Host Address
Enter the Web server address or IP address where the WiseUpdate Client looks for updated software (example: www.company.com or 1.1.1.1). The WiseUpdate Client on the destination computer uses this information when it checks for updates.
Note
The host must be accessible through both FTP and HTTP. You use an FTP client to transfer files to it, and WiseUpdate Client (on the destinat ion computers) uses HTTP to read and download files.
WiseScript Editor Reference 96
Page 96
WiseScript Actions
z Sever Username, Server Password
If necessary, enter the user name and password that are required to connect to the server. T ypically, Web servers don’t require user names and passwords. This is used for basic HTTP authentication.
z Host Directory
Enter the directory name on the host that stores the WiseUpdate configuration file. Your installation and its ReadMe are also stored in this directory. Leave this field blank to put the files on the top level of the host.
z Update Filename
Enter a name for the WiseUpdate update file. This file, which resides in the host directory, is a text file in .INI format that the WiseUpdate client reads to determine if a new version exists, and if so, where the new version and its ReadMe can be found. You must use the same file name when you use WiseUpdate in the future (example: WiseUpdate.INI).
z Product Version
Enter the version of the current installation. This version will be stored in the configuration file specified in Update Filename.
z Check Interval (days)
This works in conjunction with the Add client to Startup Group check box (see below). Enter the number of days between update reminders for the end user.
z Alternate Web Page
Enter the location of a Web page to display if the WiseUpdate client cannot check for updates or download the installation. Examples: A page with technical support, upgrade information, or troubleshooting.
z Start Menu Icon
Enter a name for a shortcut to the WiseUpdate Client, which appears in the Windows Start menu, giving end users the ability to check for updates. To communicate the shortcut’s purpose, give it a descriptive name, such as “Update Productname.” If this is left blank, mark Add client to Startup Group so that the WiseUpdate Client runs automatically.
z Add client to Startup Group
Mark this to add a shortcut for the WiseUpdate Client to the Windows Startup group. The WiseUpdate Client runs silently every time the destination comput er is restarted or the end user logs into Windows. If the Check Interval time has not been reached, is simply runs silently, checks the time interval, and quits. However, after the number of days in Check Interval elapse, instead of running silently and quitting, it runs with its normal interface and prompts the end user to check for updates.
About Windows Mobile Installations
The Microsoft® Windows Mobile™ platform supports Pocket PC and Smartphone devices. A Windows Mobile device installation consists of a single, self-extracting .CAB file and an optional Setup.dll file. The .CAB file contains all the resources (files, registry keys, and shortcuts) that comprise the application. The Setup.dll file provides functions for performing certain operations during the installation and removal of y our application.
Mobile device .CAB files are generated by the CabWiz program from an information file (.INF). The .INF is a text file that specifies directories, files, settings, an d confi gurations that are used to install a mobile device application.
WiseScript Editor Reference 97
Page 97
WiseScript Actions
(Pocket PC applications only.) A single .INF file can contain information to produce multiple .CAB files. Example: An application supports the Windows Mobile and Pocket PC 2002 platforms, but several of the application files are platform-dependent. When you create the installation, you assign the files to the device that supports that platform. When you compile, the Windows Mobile-specific files are placed in the Windows Mobile .CAB file, and the Pocket PC 2002-specific files are placed in the Pocket PC 2002 .CAB file.
A mobile device application can be installed in the following ways:
z The .CAB file and an .INI file that describes the .CAB are included in an installation
that runs on the desktop computer. The desktop computer contains Application Manager (CeAppMgr.exe), which is installed with ActiveSync. Application Manager installs the mobile device application on the device.
z The end user copies the .CAB file to the mobile device and opens it. The .CAB file
extracts its contents to the directories that were specified in the .INF file.
Uninstall of the mobile device application is controlled by the mobile device and ActiveSync. Uninstalling the mobile device installation from the desktop computer does not affect the application that is installed on the mobile device.
To add mobile device .CAB files to a WiseScript, use the Install Windows Mobile Application script action.
See:
Process for Adding Mobile Device Support to a WiseScript Install Windows Mobile Application on page 99
Process for Adding Mobile Device Support to a WiseScript
You can configure a WiseScript to install files that support a Windows Mobile device application.
1. Obtain the mobile device installation file or files. Windows Mobile installations consists of one or more .CAB files.
Obtain the .CAB files from a vendor or other source.
2. In WiseScript Editor, add the Install Windows Mobile Application script action and specify the .CAB files to add.
3. Finish assembling the WiseScript. Any resources that you add to the WiseScript, other than those in any Install Windows Mobile Application script actions, are installed on the desktop computer, not the mobile device.
4. Compile the WiseScript. The .CAB files are included in the compiled .EXE. Also, an .INI file that describes the .CABs is created and included in the compiled .EXE.
See:
About Windows Mobile Installations on page 97 Install Windows Mobile Application on page 99
WiseScript Editor Reference 98
Page 98
Install Windows Mobile Application
This action adds mobile device support for the Microsoft® Windows Mobile™ platform for Pocket PC and Smartphone devices. Use it to configure a WiseScript to install files that support a Windows Mobile device application.
See About Windows Mobile Installations on page 97. Each action line represents one mobile device application; each .CAB file represents a
different device that is supported by the application.
To complete the dialog box
z Application Name
Enter the name of the application you are installing. It also appears in the desktop computer’s mobile device software (the Add/Remove Programs dialog box, which is accessible from the Microsoft ActiveSync window).
z Description
This appears on the Add/Remove Programs dialog box on the desktop computer.
z Installation Files section
Specify up to three .CAB files to install.
z Desktop Shortcut section
If installation onto the mobile device will not take place immediately following the desktop installation, then use the following fields to create a shortcut on the desktop computer. This shortcut starts the installation onto the mobile device by calling the Application Manager.
WiseScript Actions
Name
Enter the name for the shortcut on the mobile device.
Icon File
T o use a custom icon, enter the path to the .ICO, .EXE, or .DLL file that contains the icon.
z Install on the mobile device following the desktop installation
If you mark this and the mobile device is connected during the desktop installation, then the end user is prompted to perform the mobi le device installation immediately following the desktop installation.
See also:
Process for Adding Mobile Device Support to a WiseScript on page 98
Modify Component Size
For files within the installation .EXE, the amount of required disk space is automatically tracked. However, if you call ext ernal .E XEs that install more files, the space those files require is not accounted for. Use this action to increase the amount of required disk space. Then use the Check Disk Space action to make sure that enough space exists.
Use this action inside an If block that checks whether the affected component is being installed. Example:
If COMPONENTS Contains Any Letters in “A” then
Modify Component Size: 1024
WiseScript Editor Reference 99
Page 99
End
The COMPONENTS variable is populated with a letter of the English alphabet for each component set to be installed, starting with A for the first component, B for the second, and so on.
To complete the dialog box
z Size (Kbytes)
Enter the amount of additional disk space to reserve.
z Dest. Path
Enter the directory where the files will be installed (example: %MAINDIR%\Pictures).
Open/Close Install.log
Use this action to create an installation log. Normally, every file that is installed is recorded in the install.log. The uninstall works by
reading Install.log from bottom to top and reversing each recorded action. The Open/Close Install.log action lets you customize the uninstall, by turning logging off
and on at key points to prevent some actions from being recorded in the log. If you use this action to stop logging, you must also use it to resume logging or no log file is created.
WiseScript Actions
Note
When a WiseScript is called by a Windows Installer installation, the Windows Installer installation does not recognize changes that the WiseScript makes to the destination computer and will not uninstall them. Therefore, you must provide a way to uninstall or repair such changes. See Uninstalling Changes Made by a WiseScript in the Windows Installer Editor Help.
To complete the dialog box
Select one of the following options for each Open/Close Install.log action that you add to the script.
z Resume/Start writing entries into installation log z Pause writing entries into installation log
This must be followed, at some point, by another Open/Close Install.log action that resumes writing, or no log file is created.
z Open new installation log
Mark this to create an installation log. Then enter the complete path or just the file name of the new log to the right (examples: %MAINDIR%\Speciallog.log or Speciallog.log). If just a file name is entered, the log is written to the same directory as the first installed file.
See also:
Add Text to INSTALL.LOG on page 43
WiseScript Editor Reference 100
Page 100
Parse String
WiseScript Actions
This action splits a text string and places the results in two variables. You can split the string at a character or substring that you specify, which discards the
character or substring you specified. Example: If you split the string “ONE,TWO” at the first occurrence of a comma, “ONE” is put into destination variable 1 and “TWO” is put into the destination variable 2. If the character or substring is not found, the entire string is put into destination variable 1, and nothing is put into destination variable 2. The find is case-sensitive.
You can also split a string at any arbitrary character position, which discards no characters. Example: If you split the string “ONE,TWO” at character position four from left, then “ONE,” is put into the destination variable 1 and “TWO” is put into the destination variable 2.
To complete the dialog box
z Source Value
Enter the text to be parsed. You enter text and variables (examples: %MAINDIR% or %MAINDIR%\%PICTDIR%). To include a lite ral percent ( %) symbol, use %%.
z Pattern/Position
Enter the character pattern or the character position at which to split. Character patterns are case-sensitive unless you mark Ignore Case. To split at a pattern, enter any number of characters, including numbers, and select one of the pattern options in Operation. To split a string based on character position, enter the character position, where 1 is the first character, and select one of the position options in Operation.
z Destination Variable 1,2
Select or enter variables to store the two strings resulting from this operation.
Operation, below, determines how each variable is populated.
Pause
z Operation
Select how to split the text string.
z Trim Spaces
Mark this to remove leading and trailing spaces from both destination variables.
z Ignore Case
Mark to make pattern matching case-insensitive.
The sample scripts TextFile.wse and URL.wse use this action. For details on sample scripts, see ScriptHelp.htm in the Samples subdirectory of this product’s installation directory.
This action temporarily stops a script from executing. After the specified number of milliseconds, the script continues. Example: Use this action to display a billboard for several seconds.
To complete the dialog box
z Milliseconds to pause
Enter the number of milliseconds to pause the script. A millisecond is 1/1000 of a second. To pause for one second, enter 1000.
WiseScript Editor Reference 101
Loading...