The present invention relates generally to computer help utilities.
Some computer help applications display text for a user to read in an effort to determine what data entries or settings are required as they complete a process on a computer. Other help applications display help information when, for example, the user moves a pointer (e.g., a mouse pointer) over a particular displayed control. As critically recognized herein, however, text files often confuse users, and pointer-based help features do not indicate to a user what step to perform next.
In lieu of using computer help features, a user may contact a customer service center to work with a person who can walk the user through a particular process and explain the various data entry choices that the user must make. Unfortunately, such customer service centers often can be difficult for users to contact (e.g., due to high call volume) and are expensive to operate. Having made the above critical observations, the invention herein is provided.
A help application assists users to complete step-by-step processes in real time by providing information associated with each step in a sequence of data entry steps. The help application provides context-based functionality by determining a particular step in the sequence at which a user needs help. The help application also provides context-based functionality by branching based on user actions in one or more particular steps.
Accordingly, a help utility application is disclosed that is executed on a computing platform. The help utility application includes coded instructions for acts that include displaying a first instruction display box that is associated with a first user interaction scenario. The first instruction display box may, if desired, include text instructions associated with data that is to be entered via a first data entry field. The method acts also include automatically displaying a second instruction display box that is associated with a second user interaction scenario, with the second instruction display box including text instructions associated with data that is to be entered via a second data entry field. The automatic display of the second instruction display box is based on completion of data entry via the first data entry field.
In some embodiments the text instructions associated with data that is to be entered via the second data entry field are based on the data that has been entered via the first data entry field. The method acts of the help utility may further include displaying one or more pointers that visually associate the instruction display boxes and the data entry fields.
In another aspect, a computer help utility includes means for determining a state of a client set-up application, and means for determining in real time a next step related to the set-up application. Means are provided for presenting help information in entering data in the next step, responsive to the means for determining in real time.
In non-limiting implementations of the second aspect of the invention, the means for determining a state correlates a client process window being displayed to a user to help instructions. The help utility may use a script containing steps of a client application for which help may be required. Information associated with the help utility that is related to steps in the client application may include one or more of: text to display instructions or queries to display to the user, a window or control identifying a current step, a description to a function that can run a test to determine what the next step should be, and branching/forking information indicating, based on a state of the client application, where to jump to various other parts of the script. Also, tests can be run to determine various states and/or capabilities of computer hardware and/or software, e.g., a wireless card.
In further non-limiting implementations of the second aspect of the invention, the help utility automatically steps to a different part in the script using a hook inserted into a message queue of the client application. The hook searches for a subset of standard windows messages that occur when predetermined actions are performed. The predetermined actions can include window state information and user actions on controls.
Or, the help utility can automatically step to a different part in the script using a peeking mechanism that triggers at an interval to peek ahead to determine whether the user has advanced to a next step in the client process. The peeking mechanism may advance to a next step of the help utility by ascertaining buttons manipulated by a user, and/or by ascertaining old or current windows that have been closed, and/or by ascertaining new windows that have been opened.
In yet another aspect, a method for presenting computer help to a user includes providing a help utility running at least one script related to at least one client application. The method also includes, based on where a user is in the client application, determining a next step the user should take in the client application. Based on this, the method identifies a corresponding portion of the script for display of help information to the user.
The details of the present invention, both as to its structure and operation, can best be understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which:
The embodiments described herein are illustrative of various embodiments. Certain well-known functions and features have been omitted from this description so as to more clearly describe the invention. Coding may be performed in various ways well-known to those of skill in the art and is routine in view of this description.
Referring initially to
In accordance with the present invention, a software-implemented help utility application 20 can be accessed by the processor 16 to provide step-by-step assistance in real time to a person using the device 10. By way of non-limiting example, the help utility application 20 may be used to assist a person in setting up a client process such as a wireless communication system application 22 for controlling the wireless communication system 18.
With greater particularity regarding the latter implementation, a library of functions can be included in the help utility 20 to test for certain states in the computing device 10 and return values that will tell the help utility 20 where to branch. For instance, if a particular error is detected, the help utility 20 will branch to the portion of the help utility 20 that instructs the user how to correct the problem. If the error is not present, the help utility skips the corresponding steps. In any case, these functions do not need to be compiled, but rather can be loaded and unloaded at run-time.
In ascertaining the state of the computing device 10, the help utility application 20 may identify the particular window being displayed by, e.g., the client process 22, and based on that determine the system state and, hence, what help information is relevant to present to the user for the current and next activity the user must perform. Many operating systems provide a mechanism called “FindWindow” that will find a window given its title or class, and when this is sufficient to uniquely identify the current window, the help utility correlates the window with the relevant help information. As recognized herein, however, the title and class of a particular window may be variable, or too general to uniquely identify a window. In this case, the help utility 20 uses additional characteristics of the window.
Referring briefly to
Returning to
With more specificity, a script (in, e.g., XML) can be used by the help utility application 20 that contains the steps of the process of the client application 22 for which help may be required. Help information (referred to as a stepinfo object) in the help utility 20 that is related to each step in the client application 22 may contain combinations of the following information. A stepinfo object may include text to display instructions or queries to display to the user, as well as a window or control on the computer to identify the current step, illustrated in
Thus, it may be determined that the help utility should automatically step to the next process and/or when the setup process should be changed. Instead of having the user continually move back and forth between the dynamic setup window of the help utility discussed further below and the corresponding client application 22 windows, it may be determined when the user has moved on to the next step, or has otherwise changed the environment. This may be accomplished with two mechanisms. A hook may be inserted into the message queue of the current client application 22 window on which the help utility 20 is rendering information, and this hook looks for a subset of the standard windows messages that occur when common actions are performed. These might include window state information (minimized, maximized, closed, activated) as well as user actions on certain controls (e.g., a button is clicked) A second mechanism that can be used is a peeking mechanism that triggers at intervals to “peek” ahead to determine whether the user has advanced to the next step in the client process 22. This peeking mechanism can advance to the next step of the help utility by looking for user interaction elements that have been activated, old or current windows that have been closed, and new windows that have been opened.
Once it has been determined what the user's next action should be, and what the current state of the system is, help information as set forth further below is displayed at block 38.
Now referring to
As shown in
Once the user enters data in the first field 102, the help utility application 20 may examine the entered data to determine if it is correct. If so, the help utility application 20 steps to data associated with a second field 104. If the data entered in the first field 102 is incorrect, the help utility application 20 may, for example, repeat the display of the instruction display box 108, using either the originally displayed text instructions or revised instructions that further prompt the user to enter the correct data. In some embodiments the help utility application 20 does not examine data entered in the first field 102 (or in the second and third fields 104, 106 as described below).
After the user enters data in the first field 102, represented by a series of X's in
After the user enters data in the second field 104, illustrated by a series of X's as shown in
The displays shown in
More specifically, now referring to
In this way the help utility application 20 provides a contextual, if-then feature that helps the user enter required data. That is, one data entry in the field 202 triggers one embodiment of the window 210 and its field 214, which in turn prompts the help utility application 20 to display one instruction set in the display instruction box 212. Alternatively, a second data entry in the field 202 triggers a second embodiment of the window 210 and its field 214, which in turn prompts the help utility application 20 to display a second instruction set in the display instruction box 212.
The help utility application 20 continues in a manner similar to that described above to assist the user with data required in other fields of the window 210. After assisting the user with the window 210, the help utility application 20 can continue to assist the user with further entries required by the process the user is completing, e.g., returning to the window 200, opening yet another window that requires data entry, or ending the process.
In accordance with the invention, therefore, the user receives step-by-step, real time help as he or she completes a process such as setting up an application in a computer. In addition, the help is contextual because the help utility application 20 determines what actions, if any, have been completed and begins the help functionality with the next required step. Further, the help branches based on if-then conditions such as the user's previous data field entry. This functionality of the help utility application 20 is in contrast to systems that provide help files for users to read (often displayed in a separate window if the user selects a “help” control) or that display a pop-up help window if the user moves a mouse over a particular control.
While the particular STATE-BASED COMPUTER HELP UTILITY as herein shown and described in detail is fully capable of attaining the above-described objects of the invention, it is to be understood that it is the presently preferred embodiment of the present invention and is thus representative of the subject matter which is broadly contemplated by the present invention, that the scope of the present invention fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the present invention is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more”. It is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims. Absent express definitions herein, claim terms are to be given all ordinary and accustomed meanings that are not irreconcilable with the present specification and file history.
This application claims priority from U.S. provisional patent application Ser. No. 60/592,867, filed Jul. 29, 2004.
Number | Date | Country | |
---|---|---|---|
60592867 | Jul 2004 | US |