Abstract:
The present invention includes computer programs on computer-readable media that allows for controlling a computer system to perform a delayed operation such as, but not limited to, a print command, an e-mailing distribution, a software installation, a file transfer protocol upload, a web site posting and an internet phone call. The present invention also includes methods for controlling a computer system to perform the above-discussed delayed operations and a computing system capable of performing the above-discussed delayed operations.

Description:
BACKGROUND 
     1. Field of the Invention 
     Certain embodiments of the present invention relate to computer operation, for example, printing a document using a computer and a printer. In particular, certain embodiments of the present invention relate to including a user-specified time delay in computer operations, for example, between when a user places a print job in a print queue and when the document is actually printed. 
     2. Description of the Related Art 
     A driver, in the context of the present invention, is a computer program that generally interacts with a printer or other computer hardware device (e.g., the keyboard or the cursor control device) but that can, in certain situations, also interact with a software program. The driver contains the precise machine language necessary to perform the functions requested by the application using the driver. In personal computers, drivers are often packaged and known as dynamic link library (DLL) files and DLL files that support specific device operations are known as device drivers. 
     When printing a document, a user of a currently-available word-processing application, such as the MICROSOFT WORD program, selects a “Print” icon from a pull-down menu of the word-processing application. This selection brings up a graphics device interface (GDI), permitting the user to accept or alter the default settings of the GDI and instruct the GDI to send commands (e.g., a print job) to the printer driver for a user-specified printer. According to currently-available word-processing applications, the printer driver is engaged almost instantaneously after the GDI sends commands to it and a document is printed shortly thereafter. 
     3. Disadvantages of the Related Art 
     However, in currently-available word-processing applications, there is no way to pause a print job for even a small amount of time in order to perform a short task before retrieving the print job. For example, the user cannot pause the print job for 5–10 minutes in order to travel to another location to retrieve the document from a specialized printer, go to the restroom or place a phone call. The lack of such an ability gives rise to the possibility of a person accidentally walking away with someone else&#39;s print job when retrieving their own. 
     In addition, current word-processing applications do not allow a user to request that a print job be held in a print queue for several hours or overnight to allow the computer user to retrieve the document at the end of the business day or early the next morning. The lack of such an ability gives rise to the possibility of one or a few users “bogging down” a company&#39;s printer with large print jobs that are of low priority while high-priority jobs are forced to wait their turn in the print queue. 
     Hence, what is needed is a computer-readable medium, a method and/or a computing system that allows for a printing delay to be specified by the user. 
     What is further needed is a computer-readable medium, a method and/or a computing system that includes a printing option that allows for avoiding one or several users during certain hours with a high-volume, low-priority print job. 
     SUMMARY OF THE INVENTION 
     Certain embodiments of the present invention are directed to a computer program product including a computer-readable medium containing instructions for controlling a computer system to perform a method of delaying an operation, the method including, requesting that a user input a delay criteria and delaying performance by the computer system of the operation until the delay criteria has been met, wherein the operation includes at least one operation chosen from the group consisting of a print command, an e-mailing distribution, a software installation, a file transfer protocol (FTP) upload, a web site posting and an internet phone call 
     Certain embodiments of the present invention are directed at a method for controlling a computer system to perform a delayed operation including requesting that a user input a delay criteria and delaying performance of the operation until the delay criteria has been met; wherein the operation includes at least one operation chosen from the group consisting of a print command, an e-mailing distribution, a software installation, an FTP upload, a web site posting and an internet phone call. 
     Certain embodiments of the present invention are directed at a computing system including a processor, a user-programmable delaying device operably connected to the processor, a storage device operably connected to the processor and a printer operably connected to the storage device. 
     Therefore, certain embodiments of the present invention provide a computer-readable medium, a method and/or a computing system that allows for a printing delay to be specified by the user. 
     Also, certain embodiments of the present invention provide a computer-readable medium, a method and/or a computing system that includes a printing option that allows for avoiding one or several users during certain hours with a high-volume, low-priority print job. 
     Among the advantages of certain embodiments of the present invention is that they allow for additional confidentiality of printed documents. With user-determined delays, users can give themselves enough time, for example, to walk over to the printer, corporate graphics department or commercial print shop to supervise the print job being printed as hard copies and to retrieve the documents immediately following the printing. 
     Beyond confidentiality, delayed printing can also provide for added efficiency, particularly if entities such as a corporate graphics department or commercial print shop are used. Currently, these entities must (1) receive the print job from the user&#39;s computer, (2) file the hard copies of the print job after they have been printed and (3) retrieve the hard copies when the user arrives. In contrast, certain embodiments of the present invention allow users to synchronize their arrival with the arrival of the print job and to obtain hard copies “hot off of the presses” before they are ever filed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The objects, features, and advantages of the present invention will be apparent from the following detailed description of embodiments of the invention with references to the following drawings. 
         FIG. 1  illustrates a flowchart of a method for delaying a printing operation by a user-specified delay period before printing or performing another operation. 
         FIG. 2  illustrates a flowchart of a method for sending a delayed print operation to a job store and overriding the delay period. 
         FIG. 3  illustrates a block diagram of a computing system capable of delaying and storing a printing operation. 
         FIG. 4  illustrates a GDI that allows a user to specify the type and amount of delay before a printing operation is carried out. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  illustrates a flowchart describing certain embodiments of the present invention.  FIG. 1  is primarily directed at the operation that includes printing digital documents but also applies to some of the other operations that are also within the scope of certain embodiments of the present invention. A partial list of such operations, along with brief descriptions of the items in this list, is included at the end of this section of the disclosure. The methods illustrated by the flowchart of  FIG. 1 , and those illustrated by the flowchart of  FIG. 2 , can be implemented, for example, in software or firmware for controlling the operation of a CPU or other processor. The methods can be embodied within a computer-readable medium, such as a memory, containing instructions to control operation of the CPU. 
     Step  5  of the flowchart in  FIG. 1  specifies that user instructions or requests are input into a device such as, but not limited to, a computer, a graphical interface, a personal digital assistant (PDA), a pager, a cellular phone, or other processor-based machine and that these instructions initiate the printing process for a digital document or the performance of another operation. The instructions or requests may be inputted manually, verbally or by any other method that initiates the printing process or other operation. 
     After the initiation of the printing process or operation, the user is asked, according to step  10 , whether a time delay is desired before the printing or other operation takes place. If the user responds that he/she does not wish to use a delay, the printing or performance of the operation proceeds immediately according to step  45 . However, if the user wishes to delay the print job or operation, he/she is then requested to input information concerning the length of the desired delay according to step  15 . 
     The delay that may be input according to any of steps  20 ,  25  or  30  can take many forms. According to step  20 , the user may specify that printing or the operation is to take place after a certain duration of time, such as 5 minutes, a half-hour, 2 days, or other time parameter. According to step  25 , the user may specify that printing or the operation is to take place at a particular date and/or time (e.g., Sep. 27, 2002 at 5:42 a.m.). According to step  30 , the user may specify that printing or the operation is to take place only after a particular situation has occurred (e.g., after the printer has remained idle for 45 minutes, after the office lights have been turned off, after a data-collecting or other computer routine has terminated, or upon occurrence of another event). Under certain circumstances, remote sensing may be needed to monitor the occurrence of the particular situation. 
     After the delay has been input, step  35  specifies that the printing operation (or other operation within the scope of the present invention) be held for the user-specified amount of time or until the user-specified date/time or situation occurs. According to certain embodiments of the present invention, “holding” the digital document to be printed can include storing the document in CPU memory, in printer memory, at a remote Internet site, or at another location. Other possible locations for storing the document will be discussed shortly in the description of the “job store”. 
     Step  40  monitors whether the delay criteria has been satisfied. If it has not been satisfied, the document or operation is held longer according to step  35 . However, once the delay criteria has been satisfied, step  45  follows. 
     Step  45  specifies that the document is to be printed or that the operation is performed. 
       FIG. 2  illustrates a flowchart describing yet other embodiments of the present invention. According to some of these embodiments, a user selects and sets the delay period for one or a number of print operations (or other operations within the scope of certain embodiments of the present invention) as specified in step  60 . Step  70  then specifies that the document or documents to be printed be sent to the job store that will be described with reference to  FIG. 3 . Step  80  then specifies that monitoring take place of whether the delay period set forth in step  60  has expired. If it is found that the delay period has expired, the document or documents print according to step  100 . 
     However, if it is found that the delay period has not expired, step  90  allows for monitoring of whether the user has overridden the delay period. If it is found that the delay has not been overridden, the document is kept in the job store according to step  70 . However, if the delay has been overridden by the user or someone else, the document is immediately set to print according to step  100 . Step  90  essentially allows for the user to change his/her mind if he/she decides that the initially inputted delay period was not appropriate. Steps  80  and  90  generally are repeated continuously until the delay period expires or the user overrides the delay period. 
     According to certain embodiments of the present invention, the user is also allowed, instead of completely overriding the delay period according to step  90 , to re-set the delay period to another value. For example, if a user initially specified at 2:00 p.m. that a document was to be printed at 5:15 p.m. of the same day, according to the embodiments illustrated by the flowchart in  FIG. 2 , at 4:30 p.m., the user could override the delay and cause immediate printing at 4:30 p.m. However, according to other embodiments not illustrated in the flowchart, the user could override the 5:15 p.m. delay at 4:30 p.m. and reset it to, for example, 6:00 p.m. of the next day or until the printer has been idle for 35 minutes. The user can also, at this point, cancel the job altogether if so desired. 
       FIG. 3  illustrates a hardware system according to certain embodiments of the present invention wherein operations within certain embodiments of the present invention may be carried out. Illustrated in  FIG. 3  are a CPU  110  to which is operably connected a display  120 . The CPU  110  is also operably connected to a job store  130  that can include a plurality of devices including, but not limited to, printer memories  140 , personal computer (PC) memories  150 , spoolers  160 , local area networks (LAN)  170 , wide area networks (WAN)  180  and internet storage locations  190 . The job store  130  is in turn operably connected to a printer  200  that includes, optionally, a printer control panel  210  and/or a sensor  220  capable of monitoring, among other parameters, whether the printer is idle. Other sensors that monitor above-discussed conditions pertinent to the printing delay are also within the scope of the present invention and may be operably connected to the system illustrated in  FIG. 3  in any manner that allows for the operation of the embodiments of the present invention as discussed above and as would be apparent to one skilled in the art practicing this invention. 
     According to certain embodiments of the present invention, the CPU  110  may be part of a computer, a PDA, a pager, a cellular phone, or any other device capable of generating a document. According to certain other embodiments of the present invention, the CPU  110  is any processor capable of performing any of the operation within the scope of any of the embodiments of the present invention. 
     The display  120  may be any interface between the user and the CPU  110  including, but not limited to, a computer monitor, a light-emitting diode (LED) display, a liquid crystal display, a display panel or other display device. According to certain embodiments of the present invention, the display  120  allows the user to view various screens (e.g., GDI) for selecting the document to be printed or other operation to be carried out. According to certain embodiments the display  120  further allows the user to view various screens (e.g., GDIs) monitor the progress of the operation selected and to send instructions, either directly or indirectly, to any of the other items illustrated in  FIG. 3  or referenced herein. 
     In order to access screen displays such as, but not limited to, display  120 , to select options and/or to input delay criteria, any of a number of input devices may be used. According to certain embodiments of the present invention, an item such as, but not limited to, a keyboard, keypad, cursor control device such as a “mouse”, microphone (for voice-recognition systems), pen (for a pressure sensitive display) or IR beam emitter may be used. These devices may be operably connected to the system illustrated in  FIG. 3  at any location that would permit for operation of the embodiments of the present invention. For example, a mouse and keyboard may be operably connected to the CPU  110 . 
     The job store  130  is a location where a printing operation or other data can be stored temporarily until the user-specified delay discussed above has expired. This temporary location can include any device capable of storing the desired document(s) or data and can include any device such as, but not limited to, the memory in a printer, the memory in a PC, a spooler, a LAN, a WAN or an Internet storage location. The CPU  110  send a document or other data to the job store  130 , the job store  130  holds the document or data for the user-specified amount of time and then transmits the document or data to the printer  200 . 
     According to certain embodiments of the present invention, the printer  200  is any device capable of printing a document after it has been sent either from the CPU  110  or the job store  130 . According to certain other embodiments of the present invention, the printer  200  is any device capable of displaying or operating upon the data sent to the printer  200  by the CPU  110  and/or by the job store  130 . 
     The printer control panel  210  is typically, although not exclusively, a monitor or LED display that allows a user to monitor and/or control the status of a print job in a print queue and/or to monitor and/or control the status of the printer  200  (e.g., on/off, printing/idle, or other command). The number of print jobs already in the queue, the times at which the print jobs are expected to start and end, and the size of each of the queued print jobs are made available to users in order to help them determine optimized start times for their print jobs. 
     Further, since the possibility of two print jobs being requested, perhaps by different users, to start at the same time or to print in overlapping time periods exists, queuing delayed printing operations is done in the same manner as is currently done for documents sent at the same time or having overlapping printing periods that have not been delayed. According to certain embodiments of the present invention, the printer control panel  210  also allows the user to override the printing operation, to reset the delay and to activate printing remotely. 
     According to certain embodiments of the present invention, the sensor  220  monitors the status of the printer  200  and provides reporting data to the job store  130  and/or the CPU  110 , as illustrated in  FIG. 3 . Although not illustrated, according to certain embodiments, one or a plurality of sensors such as sensor  220  may be operably connected to the system illustrated in  FIG. 3  to monitor various conditions in the system and/or outside of the system. 
     Operation of the system illustrated in  FIG. 3  has been discussed above and illustrated in the flowcharts of  FIGS. 1 and 2 . Again, similar systems that conduct operations other than printing operations are also within the scope of certain embodiments of the present invention. 
       FIG. 4  illustrates a GDI  300  that, according to certain embodiments of the present invention, can be displayed on the display  120 , on the printer control panel  210  or on any of the devices that can be included within the job store  130 . For example, the GDI  300  illustrated in  FIG. 4 , in section  306 , allows the user to select between printing immediately (“Print Now”  301 ), setting a delay period (“Print in  —  minutes”  302 ), setting a print time (“Print at  —  a.m./p.m.  303 ), printing once the printer becomes idle (“Print when Printer is Idle”  304 ) or printing when the printing operation is remotely activated  305  (e.g., when the print job is selected from the queue on the printer control panel  210 ). GDI  300  can include, for example, a section  307  to enter a printer name, address, or other identifier; a section  308  to specify a page range for printing; a section  309  to specify a number of copies to print; a button  310  to initiate printing; and a button  311  to cancel printing. 
     According to certain other embodiments of the present invention, the GDI or other user interface may have an item such as, but not limited to, an icon, button, voice command, etc., that is dedicated to setting a delay for a print job. Under such a circumstance, activating the item would lead to the appearance of a sub-menu where the user would be allowed to select a particular time period for the delay, a particular time at which to print or a particular condition that has to be satisfied before printing commences in ways similar to that shown in  FIG. 4 . 
     Operations Other Than Printing Operation: 
     Although the embodiments of the present invention discussed above mention only print jobs that are delayed for user-specified amounts of time, certain other embodiments of the present invention are directed towards other processes that can also be delayed for user-specified amounts of time. As with the print jobs, these processes can benefit the user if they are delayed to allow for optimal system use, convenience, confidentiality, or other purpose. 
     For example, according to certain embodiments of the present invention, a user-defined delay period can be used for processes such as, but not limited to, e-mail messages, FTP uploads/downloads and web-site postings. For example, if computer users wished to post pictures to their web sites and download software from FTP sites without bogging down their modems or digital subscriber lines (DSL) as they were navigating the Internet, they could put time-delays on their posts and downloads and have those operations performed at another time such as while they were sleeping. Likewise, users wishing to send e-mail messages at specified future times (e.g., on a relative&#39;s birthday), can use certain embodiments of the present invention to delay sending of the messages. 
     Users wishing to install software when they are not otherwise using their computers (e.g., in the middle of the night) can also use the above principles according to certain embodiments of the present invention to accomplish just that. According to yet other embodiments of the present invention, Internet phone calls could be placed with a specified delay in order to leave messages (e.g., wake-up calls or reminders), thereby benefiting travelers and/or business people. Delayed webcasting could also be done such that, for example, a presentation could be made in New York at a desirable local time and the same presentation could be seen in Calcutta with an appropriate delay. 
     Certain embodiments of the present invention are directed not only to drivers but also, more generally, to any device or means necessary to perform the functions requested by the application. Further, although the above embodiments are representative of portions of the present invention, other embodiments of the present invention will be apparent to those skilled in the art from a consideration of this specification or practice of the present invention disclosed herein. It is intended that the specification, figures and examples be considered as exemplary only, with the present invention being defined by the claims and their equivalents.