This invention relates generally to managing input to computers. More particularly, aspects of the invention are directed to training users on more efficient use of input devices for directing input to a computer.
Modern computers provide users a wide variety of methods and devices for providing input. The input provided to a computer may include selecting and launching an application from an operating system, opening a document within an application, typing a letter into a word processor application, or selecting colors in a drawing application. Input devices that make these inputs possible may include mice, keyboards, trackballs, game pads, digitizers, and so forth. Each of these input devices may provide any number of input components (e.g., keys on a keyboard, buttons on a mouse, etc.) allowing for an almost infinite range of possible interactions between a user and a computer.
Over the years, additional input components have been added to input devices to help users provide input to a computer more efficiently. For example, the scroll wheel on a mouse is commonly assigned the ability to scroll through a page or a list, allowing a user to avoid using a keyboard. Also, the F-keys on a keyboard (F1, F2, F3 . . . ) may be enabled to allow users to perform common or complex tasks with the press of a single button. Such input components may have actions assigned by the computer or sometimes by the user, and each assigned action may work in different contexts, for example globally within an operating system or only within a specific application. By providing additional input components that allow for more efficient input entry, computer users save time and are subsequently more productive.
As input components have been added, an ever expanding variety of enhanced input devices (e.g., three-, four-, and five-button mice and specialized keyboards) have been created, each for a different purpose. As a result, users moving between computers or purchasing a new input device may be unfamiliar with such enhancements and as a result lose out on potential gains in productivity. For example, a user who never realizes that a frequently used web page can be opened automatically with a special hotkey may waste time constantly drilling through menus with a mouse to get to the same web page. Sometimes, even when a user knows of the functionality tied to a particular input component, they may find no occasion to use it, and subsequently the input component may go unused and eventually forgotten.
It would be an enhancement for users of computer input devices to be notified that a particular action has been assigned to a particular input component, and that they can save time by using it. It would be a further enhancement for frequently used actions to be automatically assigned to unused input components, and for users to be notified that such an assignment is made.
The following presents a simplified summary in order to provide a basic understanding of some aspects of the invention. The summary is not an extensive overview of the invention. It is neither intended to identify key or critical elements of the invention nor to delineate the scope of the invention. The following summary merely presents some concepts of the invention in a simplified form as a prelude to the more detailed description below.
A first aspect of the invention provides input device training to a user. An input directed to an input device, such as a mouse, a keyboard, or a touchpad, is received and interpreted as to what action the user input requests. If an alternate input is determined that performs the requested action, then the user is alerted to the alternate input and optionally provided training on the alternate input.
A second aspect of the invention provides for assigning a frequently used input or combination of inputs to an available input component, such as a button, a key, or a combination of keys. Received inputs are stored, such as in a database. Frequently used inputs or input combinations are sought in the database. If found, the input or input combination is assigned to an input component (such as an unused input component), and the user is alerted to the assignment.
A third aspect of the invention provides a system for providing input device training.
The system includes a computer associated with storage (such as a database), a display device, and an input device. The computer is adapted to receive inputs from the input device, interpret actions based on the inputs, store the inputs in the storage, and search the storage for a pattern of input device usage. If an alternate input can optimally accomplish the same action, the user is alerted by displaying feedback on the display device.
A more complete understanding of the present invention and the advantages thereof may be acquired by referring to the following description in consideration of the accompanying drawings, in which like reference numbers indicate like features, and wherein:
In the following description of various illustrative embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which are shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made, without departing from the scope and spirit of the present invention.
Aspects of the invention may be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers (PCs); server computers; hand-held and other portable devices such as personal digital assistants (PDAs), tablet PCs or laptop PCs; multiprocessor systems; microprocessor-based systems; gaming consoles; set top boxes; programmable consumer electronics; network PCs; minicomputers; mainframe computers; distributed computing environments that include any of the above systems or devices; and the like.
Aspects of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 such as volatile, nonvolatile, removable, and non-removable media. By way of example, and not limitation, computer readable media may include computer storage media and communication media. Computer storage media may include volatile, nonvolatile, removable, and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, random-access memory (RAM), read-only memory (ROM), electrically-erasable programmable ROM (EEPROM), flash memory or other memory technology, compact-disc ROM (CD-ROM), digital video disc (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF) such as BLUETOOTH standard wireless links, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM 131 and RAM 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
Computer 110 may also include other computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball or touch pad. Each of these devices may include a plurality of input components, each providing its own input. In the case of a keyboard, each of the keys or specialized buttons may serve as input components. Moreover, a key combination may serve as a unique input component, such as a user modifying a key entry by holding a combination of the Control, Alt, Shift or other keys simultaneously. In the case of a mouse, trackball, or other pointing device, in addition to the position information each provides, input components may include the buttons, wheels, or other input mechanisms encased in the device.
Other classes of input devices, each having its own concept of an input component, have been conceived, allowing for new and diverse modes of user input. For example, systems requiring no physical contact by a user may be able to track the gestures, body movements, or even eye movements of a user. For such systems, each gesture or movement by the user may be interpreted as a different input component. For example, a camera, magnet, or other sensing component (not shown) attached to computer 110 may track hand and body motions of a user, and associated software may interpret separate input components depending on the location, path, and/or timing of a particular gesture. Another example of a next generation input device is a voice recognizer, which may use a microphone and associated software to interpret voice and sound commands as input components.
Additional input devices (not shown) may include a microphone, joystick, game pad, scanner, or the like. These and other input devices are often coupled to processing unit 120 through a user input interface 160 that is coupled to system bus 121, but may be connected by other interface and bus structures, such as a parallel port, game port, universal serial bus (USB), or IEEE 1394 serial bus (FIREWIRE). A monitor 184 or other type of display device is also coupled to the system bus 121 via an interface, such as a video adapter 183. Video adapter 183 may comprise advanced 2D or 3D graphics capabilities, in addition to its own specialized processor and memory.
Computer 110 may also include a digitizer 185 to allow a user to provide input using a stylus 186. Digitizer 185 may either be integrated into monitor 184 or another display device, or be part of a separate device, such as a digitizer pad. Computer 110 may also include other peripheral output devices such as speakers 189 and a printer 188, which may be connected through an output peripheral interface 187.
Computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. Remote computer 180 may be a personal computer, a server, a router, a satellite relay, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, computer 110 is coupled to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, computer 110 may include a modem 172, a satellite dish (not shown), or another device for establishing communications over WAN 173, such as the Internet. Modem 172, which may be internal or external, may be connected to system bus 121 via user input interface 160 or another appropriate mechanism. In a networked environment, program modules depicted relative to computer 110, or portions thereof, may be stored remotely such as in remote storage device 181. By way of example, and not limitation,
Dialog box 201 provides the user with feedback about the current settings on a selected input device, which in the present example is mouse 203. The feedback provided assists a user of the associated computer in learning about additional, possibly unknown, input device functionality. For example, a user may not realize that the front and rear side buttons on mouse 203 may be used to go forward or back when browsing in a web browser or similar application. Dialog box 201 provides information or even reinforcement for the user about how the input device may be used to make computer input more productive.
In order to make decisions about whether an alternate input is more optimal, the software may store input device usage data. Such data may be stored in a database, which may be in the form of a flat file, a relational database, an object database, or other form of database. The database may include a table having entries for each use of an input device. Each entry in such a table may include and associate together, by way of example and not limitation, a user identifier, a timestamp, a context (e.g., Windows® Explorer, Microsoft Word®, Textbox Control, etc.), an input device, an input component identifier (i.e. which key, combination of keys, or button on the input device was pressed, or which gesture was sensed), and/or an action performed. As user inputs are added to the database, the software may search for a pattern of input device usage. Such pattern searching may include, by way of example, looking for the most recently used input device and subsequently recommending an alternate input, on the same input device or a different input device that performs the same action. Upon making a recommendation, the computer may add an entry to the database for tracking recommendations that have been made. Such entries may be used to prevent overly repetitive messages, and also to track the effectiveness of the feedback in changing behavior.
It should be noted that mouse image 403 displays a different type of mouse from the mouse image 203 of
In addition to providing information about alternate inputs, a user may be directed to receive more information about a particular alternate input through the use of on-screen video or training software.
At decision 603, a determination is made as to whether an alternate input is available. Such a determination may be made solely on the single input provided and the action interpreted. It may be inherently more efficient to, for example, click the “Send” key on a keyboard rather than reposition and click a mouse. Alternatively, previous input device usage data may be used in making the determination of step 603, in order to recognize patterns of usage. Upon detecting a more suitable or otherwise different input component that performs the same or a related action, a recommendation may be appropriate. In one or more embodiments of the invention, however, a user may control the feedback provided and, in order to reduce annoyance, set a threshold level for when feedback dialogs are displayed. As such, an additional component of decision 603 is determining whether the recommendation meets a user's threshold criteria.
If an alternate input is available, then at step 604 feedback is provided to the user about the alternate input. This feedback may be in the form of a displayed dialog, such as in FIGS. 3 or 4. The feedback may additionally or alternatively take another form, with other visual, audio, or tactile feedback alerting the user to the available input. For example, an image of the input device may be displayed, while the recommendation, such as “Next time, try the side mouse button to go back,” may be read aloud by a synthesized voice. In addition, a user may be provided with an option to ignore future recommendations.
If a frequently used interaction is determined, then at step 704, the interaction is assigned to an unused input component. Using the example above, if it is determined that the combination of Control-B and Control-I is frequently used then the interaction may be assigned to an unused (or underutilized) mouse button, key, combination of keys, or other input component. In determining the best selection of an unused input component, a set of unassigned input components may be utilized. Such a set may be maintained in a database, be maintained by an application or the operating system, or may be determined and generated dynamically upon each assignment. In addition, a list of assigned but unused or underutilized input components may be maintained or generated dynamically based on the user input data stored in the database. If a user never (or infrequently) uses a particular key combination or button, for example, then it may be a candidate for assignment. Once all available input components are determined, then selecting an available input component may entail determining which would be most efficient for the user. This determination may involve examining input device usage patterns and determining which is most optimal or otherwise the most preferred, as described above.
The determination of whether a particular interaction is frequent enough may be determined in any number of ways. A preset number may be set within the application or the number of occurrences of an interaction may be set by a user in a control setting or within an application.
Once an assignment is made, at step 705, feedback is provided to the user about the assignment. This may entail displaying a dialog similar to those described above, letting the user know that a new assignment was created, and displaying the location of the input component. Optionally, a user may be provided with a choice of approving or declining the assignment.
Once the assignment of a frequently used interaction to an unused input component is made, and feedback is provided, then at step 706, information about the displayed feedback is stored, along with any optional data, such as whether the assignment was declined. This data may later be used to analyze the assignment of input components, the feedback provided, and whether a user actually learned to use the newly assigned input. If there are additional inputs, then at decision 707 the steps repeat beginning at step 701.
While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and methods that fall within the spirit and scope of the invention as set forth in the appended claims. A claim element should not be interpreted as being in means-plus-function format unless the phrase “means for”, “step for”, or “steps for” is included in that element. Also, numerically-labeled steps in method claims are for labeling purposes only and should not be interpreted as requiring a particular ordering of steps.