Fixing Windows XP Annoyances
One of the ways to improve your experience with Windows XP is to reduce the time it takes to perform repetitive tasks, whether that involves backing up important files once a week, or generating custom web pages once every three seconds. Scripting, a form of very simple programming, is well suited to quick-and-dirty tasks, such as simple file operations, managing network connections, and even starting several programs with a single click of a button.
Scripts are plain-text files that can be written and executed without a special development environment and don't require a compiler just use your favorite text editor, or Notepad and don't require a compiler. (Simply put, a compiler is a program that translates editable program source code into application executables, such as .exe and .dll files. Scripts interpreted rather than compiled, which means that another program reads and executes the commands in the script, line-by-line.)
Windows comes with two forms of scripting: the Windows Script Host (WSH) and batch files. Both technologies have their strengths and limitations. Batch files are somewhat simpler to write, but WSH scripts are much more flexible and powerful and offer better user interaction. WSH scripts are Windows-based, and can take advantage of Windows' services, such as printing, networking, and Registry access. DOS batch files can be run on any PC made after 1982, regardless of the version of Windows being used, but WSH scripts run only on Windows 98/Me, Windows 2000, and Windows XP. (Windows 95 and Windows NT 4.0 can also run WSH scripts, but only after installing Microsoft's freely-available WSH add-on.)
The Windows Script Host is the engine behind the execution of scripts. Rather than a tangible, interactive application like Notepad or Internet Explorer, WSH is simply an extensible collection of support files. The beauty of the Windows Script Host (yes, I said beauty in regards to a Microsoft product) is that it is language-independent, meaning that it will work with any modern scripting language. It has built-in support for JavaScript and VBScript, but can be extended (with third-party add-ons) to use almost any other language, such as Perl and Python. This extensibility is a welcome change from Microsoft's usual narrow support of only its own, proprietary technologies.
VBScript is based on another Microsoft programming language, Visual Basic (VB), which, in turn, is loosely based on Beginner's All-purpose Symbolic Instruction Code (BASIC). If you're at all familiar with BASIC, taught in grade school since the seventies, the basics of VBScript won't be much of a challenge. VBScript will be used primarily in this chapter because it's easy to learn, it supports easy access to the features we need, like Registry access and file operations, and its cousin, VB, is one of the most widely used programming environments in the world.
So where does the Windows Script Host end and the VBScript language begin? From the point of view of the end user, WSH is started when you double-click on a script file, at which point it automatically chooses an appropriate language interpreter based upon the script filename extension. From the point of view of the developer, WSH provides special functionality to all languages through the use of objects (see Section 9.1.6 later in this chapter); that way, each WSH-supported language needn't bother including functionality for advanced functions, such as Registry access and filesystem operations.
The primary goals of this chapter are to provide an orientation to using the Windows Script Host and to show useful problem-solving applications that illustrate the power and flexibility of WSH.