# Patent

## Title
System for creating media presentations of computer software application programs

## Abstract

A system for producing presentations of computer application programs that also allows the inclusion of advertising, or other information, into a presentation and which can be updated by a central ad server. When the presentation is viewed offline, default ads are kept in the presentation. Authoring software is used to create a sequence of screenshot images of an application program to be presented. Each screenshot is a slide in the presentation and is displayed for an interval of time during playback of the presentation. Text description in the form of “bubble text,” “memo text,” “questions,” etc. can be specified along with the position, size and other properties of the text. Characteristics such as cursor shape, speed of movement, starting and ending positions, alignment, etc. can be set, and a “click area” in association with a question, or prompt, to the viewer of the presentation can be specified. After a sequence has been completed, the sequence is compressed into a small self-contained package which includes two files that can be played back without a dedicated engine or specialized application that requires a separate download.

## Background
CROSS-REFERENCES TO RELATED APPLICATIONS
The present application is a divisional application of U.S. patent application Ser. No. 10/121,117, filed Apr. 10, 2002 now abandoned, entitled “SYSTEM FOR INCLUDING ADVERTISING IN A PRESENTATION OF INFORMATION”, which in turn is a divisional application of U.S. patent application Ser. No. 09/357,556, filed Jul. 16, 1999, entitled “SYSTEM FOR CREATING MEDIA PRESENTATIONS OF COMPUTER SOFTWARE APPLICATION PROGRAMS”, now U.S. Pat. No. 6,404,441, the disclosures of which are incorporated by reference herein.


COPYRIGHT NOTICE
A portion of the disclosure recited in the specification contains material which is subject to copyright protection. Specifically, a Microfiche Appendix in accordance with 37 CFR Section 1.96 is included that lists source code instructions for a process by which the present invention is practiced in a computer system. The Microfiche Appendix comprises 13 sheets of microfiche containing 1180 frames, or pages, of source code. The copyright owner has no objection to the facsimile reproduction of the specification as filed in the Patent and Trademark Office. Otherwise all copyright rights are reserved.
BACKGROUND OF THE INVENTION
This invention relates in general to computer software and, more specifically, to a system that allows the creation of a demonstration presentation of computer software, or other computer information.
Today, computer software application programs are an important, and prevalent, product. Computer software is used in virtually every facet of our lives including business, commerce, education and entertainment. Software has proven to be very popular and effective in performing in a wide variety of applications.
However, as computing resources and power have increased, so has the size and complexity of software programs. In order to allow human users to effectively operate these more complex application programs, sophisticated graphical user interfaces (GUIs) have been developed. Naturally, this increased complexity and sophistication requires that a new user spend considerable time learning, or being trained in, the operation of the software. Traditionally, such training has occurred on a person-to-person basis. As, for example, where an instructor and trainees meet face-to-face in a classroom. The use of written manuals, prerecorded videotapes, audiotapes, etc. are also an aid to new users' understanding of software applications. However, these traditional approaches to training in computer programs leaves something to be desired.
For example, considerable time and effort is required in instructor training and preparation; writing, publishing and maintaining effective references (either electronic or hard copy); producing a video or audiotape, etc. Also, these traditional approaches tend to be insufficient to support a new user's ongoing need for instruction in the software application. This is particularly true where, as with today's software, a user is constantly exposed to new features in the program, or needs to know of a new feature, and thus requires immediate instruction. Often manuals are unwieldy and difficult to index and access. Other media, such as video and audiotape, does not provide an effective means for obtaining the training information. Further, these traditional methods are not convenient for a user to access while the user is operating the application program and is suddenly struck with a problem or faced with a question.
Although “on-line help” forms of information have become popular, on-line help has much of the same characteristics as traditional manuals, providing only slight advantages over hard copy manuals by allowing searches. Although electronic on-line help is immediately accessible at a user's computer, the online help tends to be “static,” in that the electronic manuals mimic a hardcopy presentation of information in the form of pages of text along with illustrations.
A problem with on-line help, or electronic manuals, is that reference to the complex user interface controls and displays is purely by way of text. Often a user is directed through many steps in a confusing way. For example, a user may be asked to “open Window B, click on button X, pull down menu Y, highlight item Z, and enter a number into the resulting dialog box.” At each of the steps in the previous instruction, the user's display may change as the user operates the GUI so that the user must hunt for the next item to be selected, or activated. This can be confusing to the user as the user attempts to correlate a text description with visual controls that are spread out over the screen and may reappear, disappear or change. At any step in the way, the user is prone to making a mistake and heading down the wrong path. The user may not realize that they have taken the wrong path until a few steps have passed. In this case the user is unaware of exactly where the wrong step was taken.
Electronic manuals often include “screen shots,” or still pictures of the user interface, which are included adjacent to text in the electronic manual. While this helps improve a user's understanding of how to operate the user interface, it is still a static representation of the user interface that requires association of text in separate paragraphs to the image being presented. In such static presentation the user fails to get a feel for how the user interface is actually being operated. Also, it is not trivial for an author to compile such a manual by writing text, obtaining screen shots, inserting the screen shots into the text, correlating the screen shots to the text, etc.
Thus, it desirable to provide a product that allows an author to easily create presentations that are dynamic, and effective, in presenting information, such as the operation of a computer application program.
The rise in popularity of the Internet as a distribution and commerce medium for software and other digital information has also given rise to a greater need for effective presentation of information. One such need is the need to demonstrate the features, aspects and functionality of computer software to potential users, or purchasers. This is necessitated by the Internet since, unlike walking into a store and speaking with a salesman, purchasers over the Internet may have to make a buying decision without being able to operate a fully functional version of the software. Another use for such presentations is to assist users in running their current application programs, operating systems, utilities, etc. Again, because of the complexity in the application programs, and their GUIs, the need for a detailed, and precise, presentation of the steps, and operation, of the software is of vital importance.
Thus, it is desirable to provide a product that allows the creation of effective and efficient presentation of application programs, operating systems, utilities, and other computer information in a simple way. It is desirable for the resulting presentation to be compact and viewable without specialized programs. This is especially true where such presentations may be transferred over, downloaded, or otherwise obtained from networks of restricted bandwidth, such as the Internet.
Another recently emerging aspect of software in general, and of the Internet in particular, is advertising. Ads designed to sell products or services is a fast-growing aspect of electronic commerce (E-commerce). Typically, such ads take the form of “banners” on Web pages which are viewable when a user is on-line and viewing a Web page that includes a banner ad.
Another aspect of Internet e-commerce is in the method of distribution, marketing and sale of computer software. Such approaches as “shareware,” “demoware,” “trialware,” etc., are designed to allow users to experience a software product before purchasing the product. Typically, these approaches allow a user to operate a software product for a limited amount of time, or allow a user to operate a software product that has less than the full feature set. However, users will often use the product through the free trial period and then not purchase the product. Additionally, some users may continuously download new copies of the time-limited product so that they can continue using the product without paying. Still another problem is that such time restrictions are relatively easy to defeat for “hackers” who might modify the software, system timer, operating system, etc. Similarly, in the approach where some features of the software product are disabled, users may continue to use the software without being hampered too much by the disabled features. This allows a user to essentially use the software for free, indefinitely. Also, this type of software is still susceptible to hacking.
Thus, it is desirable to provide a revenue model for software manufacturers whereby users can obtain use of software while the manufacturer is assured of some revenue return.
SUMMARY OF THE INVENTION
The present invention provides a system for easily producing presentations of computer application programs. The system also provides for including advertising information in the produced presentations when an unpaid-for version of the system's software is being used. When the presentation is viewed online, the ads can be updated by a central ad server. This allows different ads to be inserted into the presentation, tailoring ads to the viewer, etc. When the presentation is viewed offline, default ads are kept in the presentation.
The system provides authoring software for creating a sequence of screenshot images of an application program to be presented. Each screenshot is a slide in the presentation and is displayed for an interval of time during playback of the presentation. The authoring software also allows an author to control cursor movement animation to be played back during the presentation. Text description in the form of “bubble text,” “memo text,” “questions,” etc. can be specified along with the position, size and other properties of the text. Various controls are provided for selection, editing, arrangement of the slides. Characteristics such as cursor shape, speed of movement, starting and ending positions, alignment, etc. can be set by the author.
The author can specify a “click area” in association with a question, or prompt, to the viewer of the presentation. This allows the presentation to ask the viewer to click on a button or control on a slide and to detect whether the viewer has complied. In response, additional feedback can be provided to the viewer as to whether the proper action was performed or not.
After an author completes a sequence, the sequence is compressed into a small self-contained package. In a preferred embodiment, the package includes two files that can be played back without any dedicated engine or specialized application that could require a separate download. A typical user with a web browser can quickly obtain a presentation from the Internet and play back the presentation instantly.
In one embodiment the invention provides a method for using a computer system to create a presentation of subject matter. The method includes generating a first screen display of the subject matter; storing at least a portion of the first screen display along with the cursor position at the time of storing; generating a second screen display of the subject matter; storing at least a portion of the second screen display along with the cursor position at the time of storing; displaying the stored portion of the first screen display along with a display of both cursor positions; and accepting signals from the user input device to allow manipulation of the cursor position to specify cursor animation during playback of the presentation.
Another aspect of the invention provides a system for including advertising in a presentation of information on a computer. The system provides for using an authoring program to generate a presentation for playback on a computer system; inserting a link to an advertisement source into the presentation; and displaying an advertisement obtained from the advertisement source during playback of the presentation.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates the basic approach of the invention;
FIG. 2A is an illustration of computer system suitable for use with the present invention;
FIG. 2B shows subsystems in the computer system of FIG. 2A;
FIG. 2C is a generalized diagram of a typical network;
FIG. 3 is a first screen display to illustrate the operation of the invention;
FIG. 4 is a next screen display to illustrate the operation of the invention;
FIG. 5 is a next screen display to illustrate the operation of the invention;
FIG. 6 is a next screen display to illustrate the operation of the invention;
FIG. 7 is a next screen display to illustrate the operation of the invention;
FIG. 8 is a next screen display to illustrate the operation of the invention;
FIG. 9 is a next screen display to illustrate the operation of the invention;
FIG. 10 is a next screen display to illustrate the operation of the invention;
FIG. 11 is a next screen display to illustrate the operation of the invention;
FIG. 12 is a next screen display to illustrate the operation of the invention;
FIG. 13 is a next screen display to illustrate the operation of the invention;
FIG. 14 is a next screen display to illustrate the operation of the invention;
FIG. 15 is a next screen display to illustrate the operation of the invention;
FIG. 16 is a next screen display to illustrate the operation of the invention;
FIG. 17 is a next screen display to illustrate the operation of the invention; and
FIG. 18 is a final screen display to illustrate the operation of the invention.



DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
The present invention includes several aspects. An authoring program is used by an author to create a presentation. The subject of the presentation is typically an application program but can, in general, be any information displayed on a computer. The authoring program uses screenshots of the information as the basis for creating a presentation, or “sequence,” of the information. The author can add cursor movements, text, user interaction, and can control the sequence. A human viewer, or user, plays back the presentation at a later time. The presentation is a self-contained file or set of files that is compacted for efficient transport, download and storage. The files are decompressed prior to playback. One version of the authoring program inserts advertising information into the presentation so that the advertisement is visible to a viewer during playback of the presentation.
A preferred embodiment of the present invention is the authoring program called “Leelou,” manufactured by J.E.T. Software. The source code for Leelou is provided with this application in the source code Appendix. The Appendix should be consulted for details about the invention. The source code Appendix includes code for an authoring program and player. The authoring tool uses Java 1.1.6+ virtual machine and the player uses the browser's Java 1.1.5+. The authoring tool also contains a small amount of C code for the screen capture.
Additionally, a hardcopy appendix has been included in U.S. patent application Ser. No. 10/121,117, filed Apr. 10, 2002, entitled “SYSTEM FOR INCLUDING ADVERTISING IN A PRESENTATION OF INFORMATION” which is incorporated herein. The hardcopy appendix describes the application programming interface (API) for the Leelou product and the class hierarchy of the objects used in the program.
The invention is presented below and is discussed in connection with the Figures. First, an overview of the inventions is presented. Next, standard hardware appropriate for use with the present invention is described. Next, features of the Leelou authoring software are discussed. Finally, the approach of using advertisements in certain of the finished presentations is set forth.
Overview of the Invention
FIG. 1 illustrates the basic approach of the invention. In FIG. 1, the invention provides an authoring program, Leelou, for use by an author to create a sequence of slides along with animations, text and other features for playback at a later time. This is referred to as a presentation that is viewed by a user, or viewer. The authoring program includes basic steps of having the author create screenshots, or slides of an application program, or other information. After screenshots are obtained, the author can further manipulate the screenshots to put them into sequence for a presentation. The author adds cursor movement, cursor transitions, descriptive text, interactive clickable areas and other features, explained in detail, below. The author finalizes the presentation as a Java applet that can be viewed with a web browser. The applet is provided to an end user for playback. The applet is self-contained and can be viewed in a Java-enabled browser without the need for downloading additional executables, plug-ins, etc.
A user can download and view the applet at any time. Sequence controls, similar to videocassette recorder controls, are provided to facilitate playback of the presentation. An added aspect of the invention allows presentations to include advertising. In one mode of advertising, an advertisement can be controlled by an ad server over the Internet. This allows a high-degree of customization and updating of advertisements.
Description of Hardware
FIG. 2A is an illustration of computer system 1 including display 3 having display screen 5. Cabinet 7 houses standard computer components (not shown) such as a disk drive, CDROM drive, display adapter, network card, random access memory (RAM), central processing unit (CPU), and other components, subsystems and devices. User input devices such as mouse 11 having buttons 13, and keyboard 9 are shown. Other user input devices such as a trackball, touch-screen, digitizing tablet, etc. can be used. In general, the computer system is illustrative of but one type of computer system, such as a desktop computer, suitable for use with the present invention. Computers can be configured with many different hardware components and can be made in many dimensions and styles (e.g., laptop, palmtop, pentop, server, workstation, mainframe). Any hardware platform suitable for performing the processing described herein is suitable for use with the present invention.
FIG. 2B illustrates subsystems that might typically be found in a computer such as computer 100. In FIG. 2, subsystems within box 20 are directly interfaced to internal bus 22. Such subsystems typically are contained within the computer system such as within cabinet 7 of FIG. 2A. Subsystems include input/output (I/O) controller 24, System Random Access Memory (RAM) 26, Central Processing Unit (CPU) 28, Display Adapter 30, Serial Port 40, Fixed Disk 42 and Network Interface Adapter 44. The use of bus 22 allows each of the subsystems to transfer data among the subsystems and, most importantly, with the CPU. External devices can communicate with the CPU or other subsystems via bus 22 by interfacing with a subsystem on the bus. Monitor 46 connects to the bus through Display Adapter 30. A relative pointing device (RPD) 48 such as a mouse connects through Serial Port 40. Some devices such as Keyboard 50 can communicate with the CPU by direct means without using the main data bus as, for example, via an interrupt controller and associated registers (not shown).
As with the external physical configuration shown in FIG. 2A, many subsystem configurations are possible. FIG. 2B is illustrative of but one suitable configuration. Subsystems, components or devices other than those shown in FIG. 2B can be added. A suitable computer system can be achieved without using all of the subsystems shown in FIG. 2. For example, a standalone computer need not be coupled to a network so Network Interface 44 would not be required. Other subsystems such as a CDROM drive, graphics accelerator, etc. can be included in the configuration without affecting the performance of the system of the present invention.
FIG. 2C is a generalized diagram of a typical network. In FIG. 2C, the network system 80 includes several local networks coupled to the Internet. Although specific network protocols, physical layers, topologies, and other network properties are presented herein, the present invention is suitable for use with any network.
In FIG. 2C, computer USER1 is connected to Server1. This connection can be by a network such as Ethernet, Asynchronous Transfer Mode, IEEE standard 1553 bus, modem connection, Universal Serial Bus, etc. The communication link need not be a wire but can be infrared, radio wave transmission, etc. Server1 is coupled to the Internet. The Internet is shown symbolically as a collection of server routers 82. Note that the use of the Internet for distribution or communication of information is not strictly necessary to practice the present invention but is merely used to illustrate a preferred embodiment, below. Further, the use of server computers and the designation of server and client machines is not crucial to an implementation of the present invention. USER1 Computer can be connected directly to the Internet. Server1's connection to the Internet is typically by a relatively high bandwidth transmission medium such as a T1 or T3 line.
Similarly, other computers at 84 are shown utilizing a local network at a different location from USER1 computer. The computers at 84 are coupled to the Internet via Server2. USER3 and Server3 represent yet a third installation.
Note that the concepts of “client” and “server,” as used in this application and the industry, are very loosely defined and, in fact, are not fixed with respect to machines or software processes executing on the machines. Typically, a server is a machine or process that is providing information to another machine or process, i.e., the “client,” that requests the information. In this respect, a computer or process can be acting as a client at one point in time (because it is requesting information) and can be acting as a server at another point in time (because it is providing information). Some computers are consistently referred to as “servers” because they usually act as a repository for a large amount of information that is often requested. For example, a World Wide Web (WWW, or simply, “Web”) site is often hosted by a server computer with a large storage capacity, high-speed processor and Internet link having the ability to handle many high-bandwidth communication lines.
A server machine will most likely not be manually operated by a human user on a continual basis, but, instead, has software for constantly, and automatically, responding to information requests. On the other hand, some machines, such as desktop computers, are typically thought of as client machines because they are primarily used to obtain information from the Internet for a user operating the machine.
Depending on the specific software executing at any point in time on these machines, the machine may actually be performing the role of a client or server, as the need may be. For example, a user's desktop computer can provide information to another desktop computer. Or a server may directly communicate with another server computer. Sometimes this is characterized as “peer-to-peer,” communication. Although processes of the present invention, and the hardware executing the processes, may be characterized by language common to a discussion of the Internet (e.g., “client,” “server,” “peer”) it should be apparent that software of the present invention can execute on any type of suitable hardware including networks other than the Internet.
Although software of the present invention, may be presented as a single entity, such software is readily able to be executed on multiple machines. That is, there may be multiple instances of a given software program, a single program may be executing on two or more processors in a distributed processing environment, parts of a single program may be executing on different physical machines, etc. Further, two different programs, such as a client and server program, can be executing in a single machine, or in different machines. A single program can be operating as a client for one information transaction and as a server for a different information transaction.
Creation of a Presentation Sequence
A first step in creating a presentation sequence of an application is to create, or “open” a new file that has the name of the presentation. In the preferred embodiment, sequence, or presentation, files have the extension “.leelou”. The file name is used to identify all files associated with playing back the named sequence, or presentation.
The basis of the sequence is a series of screen shots, or displays, that are selected for presentation to a viewer of the sequence. The Leelou program allows a human operator to select screen shots, designate cursor movements, define “bubble” text, etc., in order to create a sequence. Other embodiments may automate the process where, for example, another computer program automatically performs one or more of the authoring steps described herein.
In order to obtain screen shots the author simply executes the software application that is to be the subject of the sequence. It is assumed that the software application generates displays. In the Leelou product, screenshots are captured during the application's execution when the author depress a keyboard key, such as the “pause” key.
Next, the author selects a screen resolution for the screenshots. For example, common resolutions are 640×480, 800×600 and 1024×768. Note that the step of setting a resolution is necessitated by the specifics of today's operating systems, display hardware, drivers, etc. In the future, this step may not be necessary or, if necessary, can be automated so that it is not performed by the author.
The screen resolution is selected to be a lower resolution than the resolution at which the sequence will ultimately be replayed, or viewed. Screenshots taken at a selected resolution need to be viewed at a higher resolution in order for the operating system's window that displays the screenshot to be fully usable. The window, and this resolution requirement, are a result of using traditional operating systems, such as Microsoft's Windows operation systems, to later display the screen shots in a way that is familiar to users of computer systems. Different operating systems may not require displaying the sequence at a higher resolution than that at which the screenshots were captured. In the preferred embodiment, however, since a screenshot can occupy the entirety of the display screen, and since the screenshot will be displayed within a window which has peripheral controls such as a maximize/minimize button, title bar, etc.; the combination of the window and screenshot needs to be viewed at a higher resolution than that at which the screenshot was initially captured.
FIG. 3 shows the dialogue box used in Leelou to allow the sequence author to select a resolution. Predefined resolutions of 640×480, 800×600 and 1024×768 are possible. Alternatively, a custom size can be selected. Also, the author can decide to have screenshots taken of the active window by selecting the so-named option in the dialogue box. Also shown in the dialogue box is the name of the Leelou file to which the screenshots will be stored.
After the screen resolution has been set, the “done” button is pressed. At this point, the author minimizes the Leelou program and launches, or runs, the application program which is to be the subject of the sequence. During the running of the application program, the user depresses the “pause” key on the keyboard at each desired screenshot. The user can also position the cursor within the screenshot, as desired, to facilitate the presentation and description of the application program later.
FIG. 6 shows the display in Leelou after several screenshots have been taken. The application program that is the subject of the screenshots is the standard calculator program provided in the Microsoft Windows 95 operating system.
As shown in FIG. 6, 4 screenshots corresponding to slides #1 through #4 are displayed.
FIG. 5 shows a display of the application program executing. In FIG. 5, the calculator program is created at the display at the center of the screen. The sequence author is operating the calculator interface and can depress the “Pause” key at any time in order to capture a screenshot into the Leelou file. While screenshots are being taken, the number of screenshots currently taken can be determined by moving the mouse pointer over the Leelou button in the taskbar as shown in FIG. 5. After all screenshots have been taken, the author reactivates the Leelou program interface by depressing its button on the task bar.
When the Leelou program is re-activated, the author depresses the “Done” button. Leelou then compresses the captured screenshots and displays them as reduced slides so that multiple screenshots will fit on a single display screen as shown in FIG. 6. In general, the “.leelou” files are compressed before storing them to the hard disk, and are decompressed when retrieving the file from the hard disk so that the screenshots and other information can be readily accessed from RAM.
FIG. 6 shows the four slides captured as screenshots during the execution of the calculator application program. In the preferred embodiment, the display resolution is set to a higher resolution than that at which the screenshots were made. The view shown in FIG. 6 is referred to as the “main” view. By depressing button 200, a “list” view can also be made visible as shown in FIG. 7.
Individual slides can be selected, brought into an edit view for editing, rearranged and otherwise manipulated by using either the main or list views. The slides can be selected by clicking on the slide's name, or graphic representation, in either of the views. Slide names can be changed by double clicking on the text for the slide name in either of the views. Slides can be edited by double clicking on the slide graphic in the main view. Slides can be copied, moved or duplicated within these views. Slides, or other images, can also be imported into the list and main views so that previously acquired screenshots, pre-made graphics, photographs, etc. can be incorporated into the sequence. The preferred embodiment of the present invention supports both .gif and .jpg formats of images.
Double-clicking on a slide's graphic in the main view causes that slide to be brought into an “edit” view. FIG. 8 shows the Leelou display after slide #1 has been double clicked to bring it into the edit view.
FIG. 8 shows the Leelou display of frame #1 in the edit view. In FIG. 8, the Leelou control buttons are along the right side of the window. The title of the sequence file is displayed in the title bar at the top along with pull-down menu headers, as shown.
The numeral “1” at 202 indicates what number the slide is in the overall sequence. By right-clicking on this number, a list is brought up of all of the slides in the sequence. Any item in the list can be clicked to bring that respective slide into the edit view. By left-clicking on the slide number at 202, the slide number can be changed to bring up the slide corresponding to the new number. Buttons immediately below, and above (not shown) the slide number at 202 move forward, and backward, respectively, within the slide sequence. The button at 204 can be depressed to return to the main view.
Other buttons on the Leelou button bar at the right of the window of FIG. 8 include, from top to bottom, functions of “add/remove cursor,” “add/remove balloon,” “add/remove memo,” “add/remove click zone” and “show/hide control panel.” The use of these buttons is described below.
Editing and checking of the cursor shape and movement can be performed within the edit view as, for example, shown in FIG. 8.
For each slide, the starting cursor position is shown in a light gray circle while the ending cursor position is shown in a darker circle. In the actual leelou interface, extensive use is made of colors which are not reproduced in the Figures of this application. The starting, or “current,” cursor position is actually indicated with a green circle and the ending cursor position is shown at a blue circle. This is reproduced in the black and white figures as current cursor position at 220 and ending cursor position at 222 of FIG. 8. A dialogue box for positioning and selecting the cursor shape, is brought up by right-clicking on the current cursor location at 220.
FIG. 9 shows the display after the cursor options dialogue box has been opened by right-clicking at the cursor's current position at 220 of FIG. 8.
In FIG. 9, a cursor type can be selected from a list of different cursor images at 224. The cursor can be made to align with the cursor position of the slide previous to the slide being edited. Also, the cursor position can be made to align with the cursor position of the slide following the slide being edited. Or, the cursor position can be made to reside in the current position as indicated by the green, or lighter shaded, circle. Once the cursor's shape and alignment has been selected, the dialogue box is exited by depressing the “ok” button.
The cursor current position can be changed by clicking and dragging the current cursor position circle to any point on the slide or within the Leelou window.
The add/remove cursor button at 226 can be used to hide the cursor graphic and current location circle.
A button to add or remove balloon text is at 228 in FIG. 9. FIG. 10 shows the display including a balloon text dialogue box that appears after the “add/remove balloon” button is depressed. Text can be entered into the balloon text box. In FIG. 10, the text “Use the keypad to enter a value” has been entered in the dialogue box. After entering text, the pointer is moved and a point outside of the balloon text box is clicked to close the text entry. When the cursor is again placed within the closed balloon text box, as shown in FIG. 10, various controls appear within the balloon text box. These controls allow the resizing, moving and closing of the balloon text. Also, by clicking on the down-arrow control in the balloon text box, or by right-clicking within the balloon text box and selecting options in the pop-up menu, further balloon options are presented in another dialogue box. These are shown in FIG. 12. The dialogue box in FIG. 12 allows a sequence author to select the balloon shape and color. For example, the result of repositioning, resizing, and selecting a red color with a left pointer to the balloon of FIG. 11 is shown in FIG. 13.
The effect of pressing “add/remove memo” button is shown if FIG. 14. A dialogue box pops up, similar to the balloon text case, so that memo text can be entered. Similar to the balloon text example, when the cursor is positioned within a memo text box, the various controls appear so that the memo box can be resized, repositioned and closed. Memo options are also available by depressing the down-arrow control within the memo textbox. The text can be edited by left-clicking within the memo text box. Additional options include allowing different colors for the memo text box. The bar in the upper left corner of the memo text box fits the memo box size to the text.
By right-clicking within the memo box, a copy option can be selected which copies the text, size, color and any other properties of memo box for pasting into a different slide. The pasting is accomplished by bringing a desired slide into the edit window and allowing the user to press a predetermined key.
The add/remove “click zone” is the fourth from the top in a Leelou display. By clicking this button, a click zone border and question box appear. The author can reposition and resize the click zone border and can enter text into the question box and reposition, resize and set the color of the question box similar to the balloon and memo text boxes options. FIG. 15 shows the display after the add/remove click zone has been depressed while editing slide #2. The click zone border can be dragged to be placed over any desired zone on the slide. This allows the sequence author to let a user viewing the presentation click in a desired area within the presentation slide. For example, FIG. 16 shows the display of slide #2 where the click area boundary (shown by a dashed line) has been sized and positioned to fit over the decimal point button on the calculator key pad. The question, or instruction, asks the user to “click on the decimal point.”
By right-clicking on, or within, the click zone border, the dialogue box shown in FIG. 16 appears so that the author can make the presentation responsive to the user's success or error in clicking in the correct, or incorrect, respectively, areas. The “show message” options are to display a message when the user is successful, or to show a different message when the user is unsuccessful. The number of tries that a user will be allowed before an error message occurs can also be set by the sequence author.
A control panel display can be brought up by depressing the “show/hide control panel” button. This is the fifth button from the top in the Leelou display. FIG. 17 shows the control panel dialogue which is displayed after the “show/hide control panel” button is pressed.
The five buttons at the top of the control panel box allow the author to sequence, or step, through each of the slides in the presentation. The left button displays the first slide in the presentation. The next button to the right displays a slide immediately preceding the currently displayed slide in the edit view. The middle button runs the presentation from the currently viewed slide to till end. This button turns into a pause button which will stop the presentation if pressed while the presentation is running. The next button to the right skips to the slide immediately following the slide currently being viewed in the edit window. The right-most button displays the last slide in the sequence.
The box labeled “preview” in the control panel box allows the author to view the cursor animation for the currently viewed slide in the edit view. When “preview” is clicked, the cursor is animated and the animation repeats itself in a looped fashion. This allows the author to view the speed of the cursor movement. The speed of the cursor movement can be adjusted by dragging the top indicator left or right along the measure bar so that the cursor movement is slower or faster, respectively. The lower measure bar determines the point of transition from the first cursor shape to the second. For example, the cursor can be made to change from a standard pointer to an ‘I-beam’, used for entering text. The lower measure bar adjusts the point along the cursor travel path at which the transition takes place. Precise adjustment of the transition point may be necessary to make the cursor look realistic.
Additional controls within the control panel of FIG. 17 allow the author to control the amount of time a slide is presented, or displayed, before the next slide is displayed in its place. The “pause” option will display a slide for a predetermined, default, length of time. If the author desires, a specific number of seconds of delay can be set by clicking the “delay” option and by answering a number for the delay in seconds to the right. The “straight move” option will cause the cursor to move from its current point to its final point in a straight line. If this option is not checked, the Leelou program creates a slightly curved path for the cursor movement, instead.
FIG. 17 shows a “Create Applet” dialogue that allows an author to complete the applet for presentation. In FIG. 17, the author can change the name of the completed applet and can choose to display a logo, or other information, on the entry screen that is displayed when the presentation is played back.
FIG. 18 shows additional options in finalizing the applet. In FIG. 18, controls are shown to allow the author to direct how the applet is played back in a browser. The applet can be presented in a current browser window (i.e., an already-opened window) or a new browser window. The applet can be made to display at the user's full-screen resolution or a default resolution, can be made to loop continuously on playback and can be put under control of the user by allowing the display of the “VCR” controls as shown.
After the author clicks “OK” the applet is built and compressed. A preferred embodiment of the invention uses special compression to reduce the size of the completed applet. The applet is decompressed prior to playback. The routines for performing the compression and decompression of the applet are included in, and completely described by, the source code Appendix.
In view of the discussion above, it should be apparent that the Leelou interface provides many controls and features to allow an author to easily make an effective presentation of a software application. Any software application that generates visual information is susceptible for use with the present invention. Further, the invention can be used to make presentations of other information that is not, necessarily, generated from an application program. An example is where images are being viewed in a viewer, such as a web browser. Or a web browser can be used to view web pages that are captured and made into a presentation. Operating system displays, such as file hierarchies, desktop views, etc., can be captured and formed into a presentation with the present invention. Digital video, such as streaming video, can also be captured, annotated and presented. Other images displayed on a computer can be subject matter for a presentation prepared by the authoring interface and tools of the present invention.
Advertising Model
The present invention provides a novel approach to software distribution and provides a useful revenue model for software manufacturers and vendors. The preferred embodiment of the authoring program, leelou, is available in two commercial versions. A first version provides the features as presented above and is sold to end users. A second version also includes the full feature set as described above, but includes a provision for inserting advertising banners into the presentations. This latter version is provided to authors for free. This model is useful to software publishers because revenue can be obtained from advertisers whose banners are placed into different presentations.
Where a presentation is played back on a computer that is connected to the Internet, the advertising banner can be initialized, updated, or replaced, via an ad server operated by a software manufacturer. This allows changing the advertisement to suit a specific viewing audience or demographic. Also, the ads can be cycled or swapped to increase the number of advertisers that can be supported. Updating of the ads is useful to bill ads to advertisers according to time intervals. Geography can also be a factor in deciding which ads to display in which presentations as, by using queries about the viewer's computer location, ads can be localized.
Where a presentation is played back on a standalone computer, or a computer connected to a local area network (LAN) that is not coupled to the Internet, predetermined “canned” ads are included with the presentation information. These predefined ads are then displayed when the presentation is viewed. When the presentation is viewed on a computer coupled to the Internet then the ads can be updated or changed as described above.
Ads, or other information, can be visual or audible. When images are used, the images, text or other display, can be placed anywhere on the display screen, as desired. Any shape of images can be presented. An image can be a still image or can be animated. It can be displayed continuously or momentarily. Different images can be cycled through. An image can be a link to a web site so that, for example, when a viewer of the presentation clicks on the ad, a browser window to a web page is opened.
Although the invention has been presented with respect to particular embodiments thereof, these embodiments merely illustrate possible embodiments of the invention, the scope of which is determined solely by the appended claims.

## Claims

1. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program a first screen display of the subject matter and a first cursor position on the first screen display;
storing at least a portion of the first screen display along with the first cursor position at the time of storing;
generating from the computer application program a second screen display of the subject matter and a second cursor position on the second screen display;
storing at least a portion of the second screen display along with the second cursor position at the time of storing;
displaying the stored portion of the first screen display along with a display of the first cursor position;
displaying the second cursor position; and
accepting signals from a user input device of the computer system to allow manipulation of a cursor position to specify cursor animation during playback of the presentation of the subject matter.

2. The method of claim 1 wherein said displaying of the second cursor position comprises displaying the second cursor position at the time of displaying the first cursor position.

3. The method of claim 1 wherein said displaying of the second cursor position comprises displaying the second cursor position at the time of displaying the first screen display.

4. The method of claim 1 additionally comprising:
displaying the stored portion of the second screen display along with the displaying of the second cursor position.

5. The method of claim 1 additionally comprising:
playing at least a portion of the first screen display without any application requiring a separate download.

6. The method of claim 1 additionally comprising:
manipulating at least a portion of the first screen display for placing the portion of the first screen display in a sequence for the presentation of the subject matter.

7. The method of claim 1 additionally comprising:
setting a resolution for the first screen display.

8. The method of claim 1 additionally comprising:
editing at least a portion of the first screen display.

9. The method of claim 1 additionally comprising:
playing the presentation of the subject matter; and
controlling animation of movement of a cursor during the playing of the presentation of the subject matter.

10. The method of claim 9 wherein controlling animation of movement of the cursor is between a cursor starting point and a cursor ending point.

11. The method of claim 9 additionally comprising:
previewing animation of movement of the cursor.

12. The method of claim 9 additionally comprising:
adjusting a speed of the movement of the cursor during the animation of movement of the cursor.

13. The method of claim 1 additionally comprising:
determining a point of transition of a cursor.

14. The method of claim 13 additionally comprising:
determining the point of transition of the cursor from a first cursor shape to a second cursor shape.

15. The method of claim 13 additionally comprising:
adjusting the point of transition of the cursor along a cursor travel path where the transition of the cursor is conducted.

16. The method of claim 1 additionally comprising:
controlling the amount of time for displaying the stored portion of the first screen display.

17. An apparatus for creating a presentation of subject matter, comprising:
a computer system having a display screen, a processor, and a user input device for controlling a cursor on the display screen;
instructions for generating from a computer application program a first screen display of the subject matter and a first cursor position on the first screen display;
instructions for storing at least a portion of the first screen display along with the first cursor position at the time of storing;
instructions for generating from the computer application program a second screen display of the subject matter and a second cursor position on the second screen display;
instructions for storing at least a portion of the second screen display along with the second cursor position at the time of storing;
instructions for displaying the stored portion of the first screen display along with a display of the first cursor position;
instructions for displaying the second cursor position; and
instructions for accepting signals from the user input device of the computer system to allow manipulation of a cursor position to specify cursor animation during playback of the presentation of the subject matter.

18. The apparatus of claim 17 wherein said instructions for displaying of the second cursor position comprise instructions for displaying the second cursor position at the time of displaying the first cursor position.

19. The apparatus of claim 17 wherein said instructions for displaying of the second cursor position comprise instructions for displaying the second cursor position at the time of displaying the first screen display.

20. The method of claim 17 additionally comprising:
instructions for displaying the stored portion of the second screen display along with the displaying of the second cursor position.

21. A computer-readable medium for directing a computer system to create a presentation of subject matter, comprising:
instructions for generating from a computer application program a first screen display of the subject matter and a first cursor position on the first screen display;
instructions for storing at least a portion of the first screen display along with the first cursor position at the time of storing;
instructions for generating from the computer application program a second screen display of the subject matter and a second cursor position on the second screen display;
instructions for storing at least a portion of the second screen display along with the second cursor position at the time of storing;
instructions for displaying the stored portion of the first screen display along with a display of the first cursor position;
instructions for displaying the second cursor position; and
instructions for accepting signals from a user input device of the computer system to allow manipulation of a cursor position to specify cursor animation during playback of the presentation of the subject matter.

22. The computer-readable medium of claim 21 wherein said instructions for displaying of the second cursor position comprise instructions for displaying the second cursor position at the time of displaying the first cursor position.

23. The computer-readable medium of claim 21 wherein said instructions for displaying of the second cursor position comprise instructions for displaying the second cursor position at the time of displaying the first screen display.

24. The computer-readable medium of claim 21 additionally comprising:
instructions for displaying the stored portion of the second screen display along with the displaying of the second cursor position.

25. A method for creating with a computer system a presentation of an application program, the method comprising:
capturing a screen display during execution of the application program, wherein the screen display includes a first cursor;
storing cursor information describing the first cursor at the time of the capturing step; and
animating a second cursor by using the cursor information, wherein the second cursor is animated over the screen display.

26. The method of claim 25 further comprising:
accepting signals from a user input device to modify the cursor information; and
wherein the step of animating the second cursor includes a sub step of using the modified cursor information.

27. The method of claim 26 further comprising:
setting a path of movement of the second cursor.

28. The method of claim 27 further comprising:
setting a starting point for movement of the second cursor.

29. The method of claim 27 further comprising:
setting an ending point for movement of the second cursor.

30. The method of claim 26 wherein animating the second cursor comprises using the modified cursor information to allow manipulation of a cursor position and to specify cursor animation during playback of the presentation of the application program.

31. The method of claim 25 additionally comprising:
storing at least a portion of the screen display.

32. The method of claim 25 wherein the cursor information includes a starting point of the first cursor.

33. The method of claim 32 wherein the cursor information includes an ending point of the first cursor.

34. The method of claim 33 additionally comprising:
providing a first color for the starting point of the first cursor.

35. The method of claim 34 additionally comprising:
providing a second color for the ending point of the first cursor.

36. The method of claim 35 wherein the first color is different from the second color.

37. The method of claim 32 additionally comprising:
storing the starting point; and
displaying the starting point after the starting point is stored.

38. The method of claim 32 additionally comprising:
storing at least a portion of the screen display; and
storing the starting point at the time of storing at least a portion of the screen display.

39. The method of claim 25 additionally comprising:
displaying the starting point of the first cursor within the screen display.

40. The method of claim 25 additionally comprising:
specifying a cursor transition during playback of the presentation of the application program.

41. The method of claim 40 wherein specifying the cursor transition comprises accepting signals from a user input device of the computer system.

42. The method of claim 25 additionally comprising:
compressing the presentation prior to a playback of the presentation of the application program.

43. The method of claim 25 additionally comprising:
playing the screen display without any dedicated engine requiring a separate download.

44. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
providing a first color for the cursor starting point.

45. The method of claim 44 additionally comprising storing at least a portion of the screen display.

46. The method of claim 44 additionally comprising storing the cursor starting point.

47. The method of claim 46 additionally comprising storing the cursor starting point prior to displaying the cursor starting point.

48. The method of claim 47 additionally comprising storing the cursor starting point at the time of storing the at least one screen display.

49. The method of claim 44 additionally comprising providing a second color for the cursor ending point.

50. The method of claim 49 wherein said first color is different from said second color.

51. The method of claim 44 wherein said generating from a computer application program at least one screen display comprises generating a first screen display, and generating a second screen display.

52. The method of claim 51 wherein said controlling animation of movement of a cursor comprises receiving signals from a user input device of the computer system to allow manipulation of a cursor position and to specify cursor animation during playback of the presentation of the subject matter.

53. The method of claim 44 additionally comprising displaying the cursor starting point within the at least one screen display.

54. The method of claim 44 additionally comprising specifying a cursor transition during playback of the presentation of the subject matter.

55. The method of claim 54 wherein said specifying a cursor transition comprises accepting signals from a user input device of the computer system.

56. The method of claim 44 additionally comprising displaying text in association with the at least one screen display.

57. The method of claim 56 wherein said displaying text comprises accepting signals from a user input device of a computer system.

58. The method of claim 44 additionally comprising compressing the presentation prior to a playback of the presentation of the subject matter.

59. The method of claim 44 wherein said generating from a computer application program at least one screen display comprises executing the computer application program.

60. The method of claim 44 additionally comprising playing the at least one display screen without any application requiring a separate download.

61. The method of claim 44 additionally comprising manipulating the at least one display screen for placing the display screen in a sequence for the presentation of the subject matter.

62. The method of claim 44 additionally comprising editing the at least one display screen.

63. The method of claim 62 wherein said editing comprises adding text to the at least one display screen.

64. The method of claim 44 additionally comprising indicating a number for the display screen for placing the display screen at a location in a sequence of display screens.

65. The method of claim 44 additionally comprising playing the presentation of the subject matter, and controlling the animation of movement of the cursor during the playing of the presentation of the subject matter.

66. The method of claim 44 wherein said controlling an animation of movement of a cursor is between the cursor starting point and the cursor ending point.

67. The method of claim 44 additionally comprising previewing the animation of movement of the cursor.

68. The method of claim 44 additionally comprising determining a point of transition of the cursor.

69. The method of claim 44 additionally comprising determining a point of transition of the cursor from a first cursor shape to a second cursor shape.

70. The method of claim 44 additionally comprising controlling an amount of time for displaying the at least one display screen.

71. The method of claim 44 additionally comprising selecting a balloon option.

72. The method of claim 44 additionally comprising controlling a sequence of the presentation of the subject matter.

73. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
playing the at least one display screen without any dedicated engine requiring a separate download.

74. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
setting a resolution for the at least one display screen.

75. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
selecting a shape for the cursor to obtain a selected cursor shape.

76. The method of claim 75 additionally comprising aligning the selected cursor shape with a cursor position.

77. The method of claim 76 additionally comprising aligning the selected cursor shape with the cursor position.

78. The method of claim 75 wherein the shape for the cursor is selected from a group comprising a pointer shape and an X shape.

79. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
adjusting a speed of the movement of the cursor during the animation of movement of the cursor.

80. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
adjusting a point of transition of the cursor along a cursor travel path where the transition of the cursor is conducted.

81. A method for creating with a computer system a presentation of subject matter, comprising:
generating from a computer application program at least one screen display of subject matter of a presentation;
displaying at least a portion of the screen display;
displaying a cursor starting point;
displaying a cursor ending point;
controlling an animation of movement of a cursor for creating the presentation of the subject matter, and
entering text into a balloon dialogue box.