WINDOWS SHELL FOR MICROSOFT WINDOWS 3.0 by Greg McCain October 25, 1991 Advisor: Charles Dana Computer Science Department School of Engineering California Polytechnic State University 199 TABLE OF CONTENTS ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Section I. Purpose of Windows Shell . . . . . . . . . . . . . . . . . . . . . . . . 1 II. Features of Windows Shell . . . . . . . . . . . . . . . . . . . . . . . . 2 Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Action Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Internal Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Shell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 ABSTRACT This document discusses the purpose and features of a command line shell for Microsoft Windows 3.0, the Windows Shell. The Windows Shell allows users launch both DOS and Windows programs from a command line environment, as well as perform disk maintenance operations such as copy, deleting, and moving files. The Windows Shell is implemented in the Microsoft Windows 3.0 environment. The shell has been tested on systems running Windows in VGA and EGA video modes. The Windows Shell uses Windows 3.0 non-preemptive multitasking techniques to allow multiple instances of the Windows Shell to run concurrently, as well as other programs in the Windows environment. The Windows Shell introduces several new features to the typical command shell environment, including interactive editing of Aliases and Environment variables, an "Action Bar" to quickly execute a command, the ability to set "permanent" options in shell commands, and customizable fonts and screen colors. PURPOSE OF WINDOWS SHELL The Windows Shell fills a gap in the Windows 3.0 environment. The original environment provides a highly graphic user interface for executing programs and file management. While this is great for naive users, the graphical interface can become cumbersome to experienced users. The Windows Shell is intended for experienced users, providing quick manipulation of files and directories, as well as executing Windows and DOS programs. The Windows Shell also includes some extra graphical niceties that are discussed in the following section. FEATURES OF WINDOWS SHELL THE COMMAND LINE figure 1 The Windows Shell provides a command line interface to the windows environment. The command line is similar in appearance to a DOS shell, with the following exceptions: - The Windows Shell prompt allows for text marking, cutting, and pasting. - The Windows Shell offers the "Action Bar" seen on the left side of the shell (see figure 1.) - The Windows Shell allows the user to configure the color and font used by each instance of the shell. - The Windows Shell recognizes the '&' character to run a windows program minimized. ALIASES Windows Shell allows the user to define aliases. Aliases allow long or complex commands to be abbreviated for quick access. figure 2 Windows shell provides the Alias Editor (as seen above in figure 2) for quick viewing and editing of aliases. ENVIRONMENT VARIABLES The Windows 3.0 environment provides environment variables similar to that of DOS and UNIX. Unfortunately, the environment variables in the Windows Shell are not inherited by the programs it executes. Each new program gets a copy of the environment that was recorded when windows was started. However, the environment variables do effect the shell itself, which is useful for changing the path or prompt. figure 3 Windows Shell provides the Environment Editor (as seen above in figure 3) for quick viewing and editing of environment variables. ACTION BAR The action bar is a column of eight buttons along the left side of the shell (see figure 1) It allows users to execute a predefined command at the press of a button. The following window is used to configure the action bar: figure 4 The Button Configuration Window allows the users to define the text seen on the buttons and the command that is carries out. The user can access text marked on the Windows Shell using the '=' character. The '=' character is replaced by a string containing the marked text when the command is executed. This makes it easy for a user to mark a block of text and perform actions upon it, such as deleting or editing files. INTERNAL COMMANDS Most shells provide shell commands which are built into the shell itself. The Windows Shell provides only the most basic shell commands, including: change directory (cd), make directory (md), and remove directory (rd). The rest of the usual shell commands are implemented as "internal commands". Each internal commands is a Windows 3.0 Dynamic Link Library (DLL). The Windows Shell uses a Windows 3.0 DLL loading function to load and run internal commands. Each internal command must provide a set of functions to execute the command, show an about box, and show an options box. The windows shell provides the "internal commands window" to view and configure internal commands (see figure 5). figure 5 The options box allows the user to set "permanent" options on a command that will be invoked each time the command is run. The about box allows the user to view an about box for the command which could contain useful information on what the command does and how to use it. The reason the "internal commands" are implemented as DLL's is that it allows new commands to be written without modification to the shell. Also, the format of the DLL is such that a normal DOS shell program can easily be ported to run under the shell. SHELL COMMANDS The user accessible commands contained in Winshell, or Shell Commands, are as follows: cd : Changes current directory to directory specified in dirname. md : Creates a directory as specified in dirname. rd : Deletes a directory as specified in dirname. : : Changes current disk specified to drive specified in DRIVE. ps : Lists currently running processes. min : Minimizes program with caption matching task_name. max : Maximizes program with caption matching task_name. kill : Closes program with caption matching task_name. exit : Exits current Windows Shell. exitwin : Exits Windows.