The present invention provides systems, computer program products and methods that are useful for operating a screensaver on a computer system as part of a computer application program installation. While the methods and apparatus that are included in the field of data processing comprise a wide variety of programs and programming languages, those having ordinary skill in the art will appreciate that the present invention may be implemented without limitation to a particular program or programming language, a particular application program or a particular system.
Particular embodiments of the methods, computer program products and systems of the present invention are useful for protecting privacy and maintaining security of information that may be displayed by a running application program on a desktop computer or other type of computing device. In a particular embodiment, a method of the present invention includes storing screensaver properties, such as a screensaver activation condition, for at least one application program selected from a plurality of application programs stored on the computer system. A screensaver process is activated to overlay the client area of at least one running application window for the application program in response to detecting the occurrence of the stored screensaver activation condition specified in the screensaver properties for the application program. The screensaver process is deactivated to expose the client area of the at least one running application window of the application program in response to no longer detecting the occurrence or existence of the stored screensaver activation condition specified in the screensaver properties for the application program. Preferably, the management of any particular application screensaver is at least partially independent of the management of any other particular application screensaver such that one application screensaver can be activated while other application screensavers are not.
Optionally, the stored screensaver activation condition for each of the at least one application program is a period of inactivity with the application program. Another option is that the screensaver deactivation condition for each of the at least one application programs is no longer detecting the occurrence or existence of the screensaver activation condition. Alternatively, the screensaver deactivation condition could be the entry of a specified password. The passwords for each application program may be the same or different.
The particular embodiment will preferably include the step of storing global desktop screensaver properties for the desktop of the computer system. Most preferably, the global desktop screensaver properties include a screensaver activation condition and a screensaver deactivation condition. For example, a global desktop screensaver process or image may be activated to overlay at least the client area of all running application windows in response to detecting the occurrence or existence of the screensaver activation condition for the global desktop screensaver. The global desktop screensaver process may be deactivated in response to no longer detecting the occurrence or existence of the screensaver activation condition for the global desktop screensaver. Optionally, the method may further include deactivating the at least one screensaver processes for the at least one application program in response to detecting the occurrence or existence of the screensaver deactivation condition for the global desktop screensaver. In a similar option, the method may include deactivating the at least one screensaver process in response to detecting the occurrence of the screensaver activation condition for the global desktop screensaver. Furthermore, the screensaver activation condition for the global desktop screensaver may be a period of inactivity with any application program. The screensaver deactivation condition for the global desktop screensaver may be the entry of a specified password.
In particular embodiments of the present invention, the screensaver program interacts or communicates with an application program interface (API), with a plug in or by other methods as would be appreciated by those having ordinary skill in the art. For example, an API is a set of routines, protocols and/or tools associated with a known operating system and/or application program. The API provides an interface with the operating system and/or application program for which it is associated. Therefore, an appropriate API may be selected that identifies the size and location of various application windows. The specific API may then be utilized to manage screensaver settings for individual user programs.
Personal computer 20 further includes a hard disk drive 35 for reading from and writing to a hard disk 27, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD-ROM or other optical media. Hard disk drive 35, magnetic disk drive 28, and optical disk drive 30 are connected to system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. Although the exemplary environment described herein employs hard disk 27, removable magnetic disk 29, and removable optical disk 31, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like, may also be used in the exemplary operating environment. The drives and their associated computer readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for personal computer 20. For example, the operating system 40 and application programs 36 may be stored in the RAM 25 and/or hard disk 27 of the personal computer 20.
A user may enter commands and information into personal computer 20 through input devices, such as a keyboard 55 and a pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to processing unit 22 through a serial port interface 46 that is coupled to the system bus 23, but may be connected by other interfaces, such as a parallel port, game port, a universal serial bus (USB), or the like. A display device 47 may also be connected to system bus 23 via an interface, such as a video adapter 48. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The personal computer 20 may operate in a networked environment using logical connections to one or more remote computers 49. Remote computer 49 may be another personal computer, a server, a client, a router, a network PC, a peer device, a mainframe, a personal digital assistant, an Internet-connected mobile telephone or other common network node. While a remote computer 49 typically includes many or all of the elements described above relative to the personal computer 20, only a memory storage device 50 has been illustrated in the figure. The logical connections depicted in the figure include a local area network (LAN) 51 and a wide area network (WAN) 52. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
When used in a LAN networking environment, the personal computer 20 is often connected to the local area network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a modem 54 or other means for establishing high-speed communications over WAN 52, such as the Internet. Modem 54, which may be internal or external, is connected to system bus 23 via serial port interface 46. In a networked environment, program modules depicted relative to personal computer 20, or portions thereof, may be stored in the remote memory storage device 50. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
A number of program modules may be stored on hard disk 27, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 40, application programs 36, the screensaver program 38 and the screensaver properties 39 associated with one of the application programs. Program modules include routines, sub-routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. Aspects of the present invention may be implemented in the form of a screensaver program 38 and properties 39 associated with application programs 36, where the screensaver program will protect the privacy and security of displayed application program information in accordance with the screensaver properties. The screensaver program 38 generally comprises computer-executable instructions for, inter alia, identifying running application programs 36 and monitoring inactivity with these programs.
The described example shown in
It should be recognized therefore, that embodiments of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In particular embodiments, including those embodiments of methods, the invention may be implemented in software, which includes but is not limited to firmware, resident software and microcode.
Furthermore, the invention can take the form of a computer program product accessible from a computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate or transport the program for use by or in connection with the instruction execution system, apparatus or device.
While inventive embodiments of methods are demonstrated in the following flow charts of the figures that follow, it should be realized that the demonstrated methods are exemplary methods provided by the present invention and may be implemented using computer code and/or a suitable system.
In state 112, the user is asked whether to setup or edit the deactivation settings for the global desktop screensaver. To setup the deactivation settings, state 114 prompts the user to enter a password or other security input that will deactivate the global desktop screensaver, such as no longer detecting the global desktop screensaver activation condition. In accordance with an embodiment of the invention, state 116 asks the user whether application screensavers should be deactivated when the global desktop screensaver is deactivated. Selecting this option allows the user to regain access to all of the applications running on the computer following activation of the global desktop screensaver without having to meet a deactivation condition, such as the entry of a deactivation code or password, for each running application. If this option is positively selected, then in state 118 deactivation settings are applied to each application that is running to include deactivation via the global desktop screensaver.
Returning to state 104, if the user requests to setup or edit a screensaver for an individual application program, then the process continues to state 120 where the user selects the application for which the screensaver properties are to be setup. In accordance with an embodiment of the invention, the system determines, in state 122, whether the selected application is a web browser. If the selected application is a web browser, then state 124 gives the user the option to provide browser screensaver settings that are specific to the Uniform Resource Locator (URL) accessed with the browser (i.e., URL-specific settings). Accordingly, state 126 allows the user to identify the URL to be setup with its own screensaver properties. This embodiment may be useful, for example, to provide greater security when viewing account information on an online banking website than when accessing a publicly available news service.
In state 128, the user may select to setup or edit the screensaver activation settings for the selected application or browser/URL combination, then in state 130 the user may enter a period of inactivity as the activation setting and, in state 132, enter a selection of a screensaver process or image to utilize with the selected application. If the user elects not to setup activations settings in state 128 or finishes setup of activation settings in state 132, then the process continues to state 134 where the user is asked whether to setup or edit deactivation settings for the selected application. If the user does not setup deactivation settings, then default deactivation setting are established in state 136. In state 138, the user is given the option to apply the global screensaver deactivation settings to the selected application. If the user does not apply these settings, then state 140 prompts the user to enter a condition or input that will deactivate the application screensaver, such as no longer detecting the screensaver activation condition or successful entry of a password.
Following either the end of the global desktop screensaver setup in state 142 or the end of the application screensaver setup in state 144, the user is asked whether to setup other screensaver properties in state 146. To setup other screensaver properties, the process returns to state 104, as described above. If no more screensaver properties are to be setup, then the process ends at state 148.
In state 216, the method 200 monitors inactivity in each application program that is running on the computer. In the preferred embodiment, the method 200 may keep track of a period of inactivity for each application program separate and apart from the other application programs. Next, state 218 determines whether there is a period of computer inactivity that exceeds the global desktop screensaver activation setting. If the global desktop screensaver activation setting has not been reached, then state 220 determines whether there is a period of inactivity for any of the application programs that exceeds the screensaver activation setting for that application program. If none of the application program screensaver activation settings have been exceeded, then, unless the computer or screensaver is turned off in state 222 to end the process at state 224, the process loops back to state 216 to further monitor inactivity. So long as there is activity in the running application programs, the process will continue to loop through steps 216, 218 and 220.
However, if it is determined, in state 218, that the global desktop screensaver activation setting or condition has in fact been detected, such as a period of inactivity being exceeded, then the process branches to state 226 to activate the global desktop screensaver and then to state 228 to monitor for detecting a deactivation condition, such as no longer detecting the screensaver activation condition. State 230 loops the process back to state 228 until it is determined that the deactivation condition has been detected. The correct deactivation condition, such as entry of a correct password or no longer detecting a screensaver activation condition, leads the process to state 232 to reset the inactivity period for the global desktop and each running application program. Process 200 then returns to state 216 for further monitoring of inactivity.
Furthermore, if, in state 220, it is determined that a period of inactivity for any of the individual application programs exceeds the screensaver activation setting or condition for that application, then state 234 activates a screensaver process for the inactive application and state 236 monitors for entry or detection of a deactivation condition for an activated application program screensaver. If it is determined, in state 238, that an application program screensaver deactivation condition has not been detected, then the process returns to state 222. However, if a correct application screensaver deactivation condition has been detected, then state 238 leads to state 240 for deactivation of the application screensaver and to state 242 for resetting the inactivity period for the deactivated application program screensaver. Following state 242, the process returns to state 222.
It should be understood from the foregoing description that various modifications and changes may be made in the preferred embodiments of the present invention without departing from its true spirit. The foregoing description is provided for the purpose of illustration only and should not be construed in a limiting sense. Only the language of the following claims should limit the scope of this invention.