The present invention generally relates to apparatus and methods for preventing the untimely operation of a screen saver or screen lock out feature.
Many of today's secure computer systems run secure software which requires a computer user to enter a password to continue using the computer system after a time period of inactivity. Additionally, many computer systems, in general, run screen saving software which automatically over takes the screen to display some type of moving graphics after a time period of inactivity such as the absence of user input. While secure software and screen saving software and the like, referred to collectively herein as activity monitoring software, serve a useful purpose, many times these types of software become irritating or detrimental to the computer user.
For example, a business person may be using his or her portable computer to display visual slides to aid a presentation. Many times during the presentation, a discussion may result between the business person and the audience resulting in a time period where the business person or assistant does not provide user input to the portable computer. This failure to provide input may then result in the screen saving software operating to preempt the current slide from being projected and to cause the display of some non-relevant screen saving graphic. Such preemption distracts both the business person and his or her audience from the focus of the presentation. As a presentation becomes more interactive with an audience which is the goal of most presenters, the more interruptions caused by the activity monitoring software result. Alternatively, to avoid such interruptions, the presenter may be caused to manually move a pointing device such as a mouse or to re-key in his or her user password. Neither alternative is desirable.
To address such problems, most activity monitoring software allows a user to manually set the period of inactivity before a preemption takes place. With this approach, a user would be burdened by learning the software interface of the activity monitoring software. Once learned, the user may not accurately predict the appropriate time period needed or may not remember to restore the time period after the presentation, effectively rendering the activity monitoring software perpetually useless. As noted above, another approach may involve the user or an assistant manually moving the mouse regularly during the presentation, thus requiring the presenter or the assistant to stand by the computer during the entire presentation.
Some presentation software packages programmatically disable activity monitoring software, however, many do not. Furthermore, this problem of preemption is not isolated to the presentation scenario described above. For example, a user may be reading a complex document in a document editor and, during a period of intense concentration during which no inputs are made, be interrupted by activity monitoring software.
Other typical approaches may require additional specialized hardware not typically found standard on a computer, specialized software to run on the computer running the activity monitoring software, or both.
The present invention recognizes the need to create a cost effective hardware device which does not require additional software to execute on the computer running the activity monitoring software. Said device has minimum setup, if any. The present invention further recognizes that by emulating user input through a standard port typically found on a computer system and taking advantage of the present operation of existing software drivers, activity monitoring software can be readily managed so that it does not interrupt a user's presentation, or other computer session having relatively long periods of inactivity.
Among its several aspects, the present invention provides an apparatus, method, and computer readable medium for preventing activity monitoring software from interrupting other software applications, such as presentation software, running on a computer. To this end, the apparatus, for example, includes a processor programmed to send emulated user activity on a time controlled basis to preclude the activity monitoring software from taking control of the display, wherein the apparatus is packaged to plug into an existing port of the computer.
One advantageous aspect of the present invention includes not requiring any arbitration between software executing on the computer and the hardware plug-in device. Another advantageous aspect of the present invention includes the presence of an attached hardware plug-in device with an optional indicator to notify the user of the computer system that his or her activity monitoring software is effectively inactivated.
A more complete understanding of the present invention, as well as further features and advantages of the invention, will be apparent from the following Detailed Description and the accompanying drawings.
The present invention will now be described more fully with reference to the accompanying drawings, in which several presently preferred embodiments of the invention are shown. This invention may, however, be embodied in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
As will be appreciated by one of skill in the art, the present invention may be embodied as apparatus, methods, or computer program code. Accordingly, the present invention may take the form of an embodiment combining hardware and software aspects. Furthermore, the present invention may take the form of a computer program code on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, flash memories, magnetic storage devices, and the like.
Computer program code or “code” for carrying out operations according to the present invention may be written in various programming languages such as assembly, C, C++, Java, or other languages. Software embodiments of the present invention do not depend on implementation with a particular programming language.
The hardware plug-in 120 emulates user activity and transmits the emulated user activity through port 105 to effectively convince activity monitoring software that a user is providing input to portable computer 110 and should not be interrupted. The contents of hardware plug-in 120 will be discussed in further detail in connection with the discussion of
It should be noted that although the portable computer 110 is depicted as a laptop computer, the present invention applies to any computer system including a server, a workstation, a desktop, and the like which have a standard port, such as port 105.
The CPU has data inputs 215, optional power output port 209, output power port 211, and USB interface ports 233. The USB interface ports 233 include a negative data port (D−), a positive data port (D+), ground (GND), and a +5V voltage source (VDC). The CPU turns on power output port 209 and, thus, the light emitted diode 211 becomes lit when the hardware plug-in 120 connects into a computer port.
Resistor 220 connects output power port 211 with the negative data port D− and connects to capacitor 225. Preferably, resistor 220 is a 1.50 resistor and capacitor 225 is a 200 nanofarads (nF) capacitor. Optional power output port 209 connects to diode 210. The GND and VDC ports of USB interface ports 233 are connected with capacitor 235. Preferably, capacitor 235 is a 0.1 μF capacitor. VDC port of USB interface ports 233 also connects to optional switches 240 and 250. When the hardware plug-in 120 is connected with a computer such as portable computer 110 which is running activity monitoring software, the USB interface ports 233 also connect to the USB interface of the computer.
Optional switch 240 connects to one of four data input ports over paths 245A-245D. Optional switch 250 connects to one of four data input ports over paths 255A-255D. Optional switches 240 and 250 may suitably be manufactured as conventional dual in-line package (DIP) switches. The CPU and other illustrated devices and paths may be manufactured on a printed circuit board, a single silicon or ceramic chip, or any other substrate utilizing known techniques.
Switch 240 controls the amount of relative position displacement of an input device, such as a pointer device, on the connected computer. For example, when switch 240 connects to a data input of CPU 205 over path 245A, the CPU 205 will sense that the path 245A is not an open circuit. Thus, the software code, described in further detail in
Switch 250 controls the specified interval of time which passes before a relative position displacement as described above is sent. For example, when switch 250 connects to a data input of CPU 205 over path 255A, the CPU 205 will sense that the path 255A is not an open circuit. Thus, the software code, described in further detail in
Switches 240 and 250 are optional because the software code, according to the teachings of the present invention, may establish by default the amount of relative position displacement of an input device and a specified interval of time which passes before the relative position displacement is transmitted to the computer. In any combination of settings for switches 240 and 250 or defaulted values, for that matter, the resulting movement of the cursor or pointing device on the attached computer's display is not perceptually significant either because the movement of the cursor is small or the time between adding and subtracting the same position displacement is fast.
Returning to step 330, if the counter's value is less than the reset interval, the flow chart 300 proceeds to step 340. At step 340, the counter is incremented and the software code sleeps for one second to avoid needless tests of step 330. The flow chart 300 then proceeds to step 330 to again test the counter against the reset interval.
While the present invention has been disclosed in the context of various aspects of presently preferred embodiments, it will be recognized that the invention may be suitably embodied consistent with the claims which follow. Such embodiments include randomizing the specified time interval or randomizing the amount of relative position displacements.