Support programs and notification methods

The support program enhances printer control systems by acquiring and displaying information from a control program, addressing the lack of convenient notifications in existing general-purpose printing programs.

JP2026113970APending Publication Date: 2026-07-08BROTHER KOGYO KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
BROTHER KOGYO KK
Filing Date
2024-12-26
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing technologies for printer control using general-purpose printing programs lack the capability to provide highly convenient information notifications.

Method used

A support program that executes on a computer, acquires predetermined information from a control program, and displays notification information about a printing device via a user interface, enhancing the convenience of information delivery.

Benefits of technology

Enables users to receive highly convenient information through the support program, improving the user experience and functionality of printer control systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026113970000001_ABST
    Figure 2026113970000001_ABST
Patent Text Reader

Abstract

To realize a new technology that enables the notification of highly convenient information to the user using a support program in an information processing device that incorporates a general-purpose printing program. [Solution] An auxiliary program 42, which is a program that supports the general-purpose printing program 41 of OS21, acquires information from a printing application 54, which is a different program from the auxiliary program 42 and is used to control the printer 2. Based on the acquired information, it displays notification information, including information about the printer 2, on the display 13a of the PC1.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technical field disclosed in this specification relates to a support program and a notification method for supporting control to cause a printing device to perform printing.

Background Art

[0002] In recent years, a technology for controlling a printer by using a general-purpose printing program provided in an operating system (OS) without using a printer driver provided by a printer vendor has been put into practical use. In this technology, when the OS detects a printer, it associates the printer with the general-purpose printing program. Thereafter, when a print instruction for the printer is received, the general-purpose printing program generates print data without using the printer driver provided by the printer vendor, enabling printing by the general-purpose printing program.

[0003] Also, in a printer control technology via a general-purpose printing program, a support program for supporting control to cause a printer to perform printing is known. As a document disclosing a technology related to the support program, for example, there is Patent Document 1. Patent Document 1 discloses a configuration in which an auxiliary program corresponding to the support program acquires information from a printer and displays a message based on the acquired information.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] The technology disclosed in Patent Document 1 relates to notification using information acquired from a printer by a support program, but it is desirable to notify even more convenient information using the support program. [Means for solving the problem]

[0006] The support program designed to address the aforementioned issues is: A support program that is executable by the computer of the information processing device and supports a general-purpose printing program that has an operating system of the information processing device, To the aforementioned computer, An acquisition process is performed to acquire predetermined information which is information held by the control program, and the control program is a different program from the support program and is a program used to control the printing device. The aforementioned computer further: Based on the predetermined information acquired in the acquisition process, a display process is executed to display notification information, including information about the printing device, on the user interface of the information processing device. It is configured in this way.

[0007] The support program disclosed herein causes a computer to acquire predetermined information held by a control program and to display notification information, including information about a printing device, based on that predetermined information. This makes it possible to display information acquired by the control program from the printing device and external devices via the support program, and to provide convenient information from the support program.

[0008] The control method, computer program, and computer-readable storage medium for storing the computer program used to realize the functions of the above-mentioned device are also novel and useful. [Effects of the Invention]

[0009] The technology disclosed herein enables a new technology in which a general-purpose printing program is incorporated into an information processing device that can notify the user of highly convenient information using a support program. [Brief explanation of the drawing]

[0010] [Figure 1] This block diagram shows an overview of the electrical configuration of a PC. [Figure 2] This is a sequence diagram showing an example of the installation procedure for a print program set. [Figure 3] This figure shows an example of an installation guide screen. [Figure 4] This is a sequence diagram showing an example of the installation procedure for a printing application. [Figure 5] This is a sequence diagram showing an example of the printer selection and advanced settings procedure. [Figure 6] This is a sequence diagram showing an example of the printing procedure. [Figure 7] This is a sequence diagram illustrating an example of the procedure for notifying information about a printing application. [Figure 8] This is a sequence diagram illustrating an example of a procedure for notifying information from a printing application. [Figure 9] This figure shows an example of a battery level notification screen. [Figure 10] This figure shows an example of a colorant selection screen. [Figure 11] This figure shows an example of a maintenance notification screen. [Figure 12] This figure shows an example of a subscription notification screen. [Figure 13] This figure shows an example of the notification list display screen. [Figure 14] This figure shows an example of a notification list screen. [Modes for carrying out the invention]

[0011] Hereinafter, a printing system including a personal computer (hereinafter referred to as "PC") that uses the support program of this embodiment and a printer connected to the PC will be described in detail with reference to the accompanying drawings. This specification discloses a support program executed on a PC.

[0012] (System Configuration) As shown in FIG. 1, the printing system 100 of this embodiment includes a PC 1, a printer 2, a first server 30, a second server 31, and a third server 32, and the PC 1, the first server 30, the second server 31, and the third server 32 are connected via the Internet 6. The PC 1 and the printer 2 are connected by a LAN. Note that the printer 2 may also be connected to the Internet 6 or may be connected to the PC 1 or the like via the Internet 6.

[0013] The PC 1 is a general PC such as a desktop type, a notebook type, or a tablet type. The PC 1 includes a controller 10 including a CPU 11 and a memory 12. The PC 1 is an example of an information processing device. The CPU 11 is an example of a computer. Further, the PC 1 includes a user interface (hereinafter referred to as "user IF") 13 and a communication interface (hereinafter referred to as "communication IF") 14, and these are electrically connected to the controller 10. Note that the controller 10 in FIG. 1 is a general term for the hardware and software used for the control of the PC 1, and does not necessarily represent a single hardware actually existing in the PC 1.

[0014] The CPU 11 of PC1 executes various processes according to programs read from memory 12 and based on user operations. Memory 12 stores various programs and data. Memory 12 is also used as a workspace when executing various programs. The buffer provided by the CPU 11 is also an example of memory 12. Note that the example of memory 12 is not limited to ROM, RAM, HDD, etc., built into PC1, but may also be a storage medium that the CPU 11 can read and write to, such as a recording medium such as a CD-ROM or DVD-ROM.

[0015] The user interface 13 includes a display 13a, which is hardware that displays a screen for informing the user of information, and hardware that accepts user operations. The user interface 13 may also include a combination of a display 13a capable of displaying information and a mouse or keyboard with input acceptance functionality, or it may include a touch panel that has the functionality of the display 13a and input acceptance functionality.

[0016] The communication interface 14 includes hardware for communicating with external devices such as printer 2. The communication standards for the communication interface 14 include Ethernet (registered trademark), Wi-Fi (registered trademark), and USB. PC1 may be able to connect to the internet via the communication interface 14. PC1 may have multiple communication interfaces 14 that support multiple communication standards.

[0017] As shown in Figure 1, the memory 12 stores various programs and data, including an operating system (hereinafter referred to as "OS") 21 containing a general-purpose printing program 41, a print program set 40 consisting of multiple programs, an editing application 43, a browser 44, and a printing application 54. In this specification, application programs may be referred to as "apps."

[0018] OS21 is a multitasking operating system that can process multiple tasks in parallel by managing and switching between them. Examples of OS21 include Windows®, macOS®, Linux®, iOS®, and Android®.

[0019] OS21 includes a general-purpose printing program 41. The general-purpose printing program 41 is provided by the OS21 vendor and is offered as part of OS21; in other words, it is a program pre-installed in the OS. The general-purpose printing program 41 can be said to be a program that is standard in OS21. The general-purpose printing program 41 is packaged with OS21 and installed on PC1 together with OS21. In other words, PC1 has OS21 installed, which includes the general-purpose printing program 41. The general-purpose printing program 41 is not configured to use printer drivers specific to each printer. An example of the general-purpose printing program 41 is the IPP Class Driver.

[0020] The general-purpose printing program 41 is a program that has the functionality to perform printing on multiple types of printers, each provided by multiple vendors, based on user instructions. The general-purpose printing program 41 supports general-purpose functions that enable printing on many printers. Unlike printer drivers specific to each printer, the general-purpose printing program 41 does not support functions unique to each printer or printer driver, especially functions that require complex processing.

[0021] The general-purpose printing program 41 is a program that, based on user instructions, receives image data designated as the print target in print instructions output from various programs and includes a function to generate intermediate data based on that image data. The intermediate data is, for example, XPS data. The general-purpose printing program 41 further has a function to generate print data in a format that can be used for printing on various printers based on the intermediate data. The print data is, for example, PWGRaster data or PDF data. The general-purpose printing program 41 also has a function to send the generated print data to the printer selected as the device to perform the printing via the communication function of OS21.

[0022] The print program set 40 is a packaged set of programs that includes an auxiliary program 42, a launcher program 48, an environment checker 50, and an installer 52. The print program set 40 may also include programs other than those listed above.

[0023] The auxiliary program 42 is a program or group of programs that performs processing based on instructions from the OS 21 in conjunction with the processing of the general-purpose printing program 41, and is a program that supports the control of the target hardware. The auxiliary program 42 can also be described as a program that supports the general-purpose printing program 41, or supports processing in accordance with the general-purpose printing program 41. In this form, the auxiliary program 42 corresponds to the model of the printer 2 connected to the PC 1, and is provided, for example, by the printer 2 vendor. The general-purpose printing program 41 starts the auxiliary program 42 corresponding to printer 2 when printer 2 is selected as the device to perform printing, when detailed print settings instructions are received while printer 2 is selected, when an instruction to perform printing on printer 2 is received, etc. The auxiliary program 42 is, for example, called a print support application (abbreviated as PSA) or a hardware support application (abbreviated as HSA). The auxiliary program 42 is an example of a support program.

[0024] The auxiliary program 42 may be a combination of multiple programs, each accepting execution commands, or it may be a single program capable of executing different processes depending on the command. Furthermore, the number of printers that the auxiliary program supports may be two or more. For example, it may be a program provided by a printer vendor for each type of printer. For instance, separate auxiliary programs may be provided for inkjet printers and laser printers. In addition to being limited to each printer type, auxiliary programs may also be provided for each printer model or series of printer models.

[0025] For example, if the OS21 of PC1 detects that a new printer has been connected to PC1, it can automatically download the appropriate auxiliary program from an external device and install it into PC1, depending on the type and model of the connected printer. The OS21 associates the identification information of the installed auxiliary program with the printer information of the newly connected printer and stores it in memory 12.

[0026] In this configuration, the auxiliary program 42 is one of a group of programs packaged as the print program set 40, and is incorporated into PC1 when the print program set 40 is downloaded to PC1 from the first server 30. Once downloaded to PC1, the print program set 40 is placed in a sandbox environment. That is, the auxiliary program 42, launcher program 48, environment checker 50, and installer 52 included in the print program set 40 are all placed in the sandbox environment. As used herein, "placement" is not limited to the installation of the program on PC1, but also includes the storage of the program's executable file, configuration files, etc., in a predetermined area of ​​PC1's memory 12.

[0027] An auxiliary program 42 deployed in a sandbox environment has restricted access to programs and files outside the sandbox environment. Furthermore, this embodiment of the auxiliary program 42 is configured to be able to give instructions to only one program deployed in the sandbox environment. Specifically, this embodiment of the auxiliary program 42 is configured to be able to give instructions to only a launcher program 48 deployed in the sandbox environment.

[0028] The launcher program 48, the environment checker 50, and the installer 52 are Win32 applications. Each of the launcher program 48, the environment checker 50, and the installer 52 is assigned an application ID to identify the application. As described above, the launcher program 48, the environment checker 50, and the installer 52 included in the print program set 40 are placed in a sandbox environment. Unlike the auxiliary program 42, the launcher program 48, the environment checker 50, and the installer 52 are configured to access programs and files that are not placed in the sandbox environment.

[0029] The launcher program 48 has the function of launching a specified Win32 application in response to a launch command that includes the specification of the application. The launcher program is an example of a launch program. The environment checker 50 has the function of checking the environment information of PC1 on which the environment checker 50 is located. The environment information includes information about applications installed on PC10, etc. The installer 52 is a program for installing the print application 54. The installer 52 is a program that requires User Account Control in order to execute processing with administrator privileges. In addition, the installer 52 may also be able to install applications other than the print application 54.

[0030] The print application 54 is a Win32 application. The print application 54 is also assigned an application ID to identify the application. The print application 54 is a program that is not included in the print program set 40 and is placed outside the sandbox environment. The print application 54 is a program used to control the printer and has the function of causing the printer to print and the function of acquiring and displaying printer status information. The status information includes, for example, the printing status and the remaining amount of colorants. In this application, colorants include toner and ink. Furthermore, the print application 54 has the function of acquiring information about the printer from the printer or an external server. The print application 54 is an example of a control program.

[0031] The editing application 43 is a program for creating and editing image data and document data, for example. The editing application 43 may be, for example, Microsoft Word or PowerPoint, or a program provided by the printer vendor. The browser 44 is a program for retrieving web pages from a web server and displaying those web pages for viewing. Both the editing application 43 and the browser 44 are Win32 applications and are deployed outside the sandbox environment. The editing application 43 can receive print execution commands via the user interface 13, for example, to print to printer 2. Note that the editing application 43 is not limited to a program for creating and editing data, but may also be a program that has the function of receiving display and print commands for various types of information such as map information and web pages, according to the user's request.

[0032] In this embodiment, printer 2 is a device having at least printing and communication functions. Therefore, printer 2 may be a multifunction printer, copier, fax machine, etc. When printer 2 receives print data from, for example, PC 1, it can perform printing based on the received print data. Printer 2 may be a device capable of color printing, or it may be a device capable of monochrome printing only. Printer 2 is an example of a printing device.

[0033] The first server 30 in this configuration is a server installed on the Internet 6 by the OS21 vendor. For example, the first server 30 is a cloud server that provides Microsoft Store services. The first server 30 may be a single server or a collection of multiple servers. The first server 30 stores various programs corresponding to OS21, and in this configuration, it stores a set of printing programs 40 corresponding to OS21.

[0034] In this configuration, the second server 31 is a server installed on the Internet 6 by the printer 2 vendor. The second server 31 may be a single server or a collection of multiple servers. The second server 31 stores various programs corresponding to the printer 2, and in this configuration, it stores the OS 21 and a printing application 54 corresponding to the printer 2.

[0035] In this configuration, the third server 32 is a server installed on the Internet 6 by a service company that provides services corresponding to the printer 2. The third server 32 may be a single server or a collection of multiple servers. The third server 32 manages the service subscription status for each printer. The third server 32 can send notification information such as services available for the printer 2 and advertisements from the printer 2 vendor. If the printer 2 vendor provides the service, the second server 31 may also serve as the third server 32.

[0036] (Installation Instructions) Next, the program installation procedure will be explained. In the initial state of this procedure, the print program set 40 and the print application 54 are not stored in the memory 12 of PC1. Also, printer 2 is not connected to PC1. In the following, all communication performed between PC1 and other devices is performed via the communication IF 14 of PC10. For this reason, the phrase "via the communication IF 14" will be omitted below. Furthermore, in the following, various processes that the CPU 11 implements according to the program may be described as being performed proactively by each program (e.g., OS 21). In addition, the print application 54, etc., accesses various hardware such as the user IF 13, memory 12, and communication IF 14 via OS 21 to perform various processes. In the following, the fact that the print application 54, etc., performs processes via OS 21 will be omitted as appropriate.

[0037] In this specification, "acquiring information" is used as a concept that does not necessarily require "requesting the information." That is, "acquiring information" is a concept that also includes "passively receiving information." Furthermore, "supplying specific information to a program" can also be said to pass specific information to the processing of a program. Let's explain using the case where memory is shared as an example. "Supplying information to a program" means storing specific identification information that identifies specific information in a storage area within shared memory that is accessible to the computer that executes processing according to the program. Furthermore, "acquiring information from a program" means acquiring specific information based on the above storage area and the specific identification information. Methods for supplying / acquiring information between multiple programs include using socket communication and using pipes.

[0038] First, the installation procedure for the print program set 40 will be explained with reference to the sequence diagram in Figure 2. In the installation procedure for the print program set 40, when printer 2 is connected to PC 1, OS 21 receives the model name and IP address from the connected printer 2 (T10). Next, OS 21 sends a program set request specifying the model name of printer 2 to the first server 30 (T12). The program set request is a signal to request the first server 30 to send the program set corresponding to the specified model name.

[0039] When the first server 30 receives a program set request from PC1, it identifies the print program set 40 corresponding to the specified model name and sends the identified print program set 40 to PC1 (T14).

[0040] When OS21 receives the print program set 40 from the first server 30, it executes a first installation process (T16) to install the print program set 40 on PC1. This installs (deploys) the print program set 40 into the sandbox environment of PC1. Next, OS21 notifies that the installation of the print program set 40 is complete and accepts an operation to start the print program set 40. Then, upon receiving an operation to start the print program set 40 via the user IF13, OS21 supplies a first application startup instruction, including the model name and IP address of printer 2, to the auxiliary program 42 in the sandbox environment. The auxiliary program 42 is registered with the print program set 40 as the application that will be started first by OS21 from among the multiple programs included in the print program set 40.

[0041] The auxiliary program 42 is started in response to receiving a first application launch command from the OS 21, and then the auxiliary program 42 supplies a second application launch command specifying the application ID of the environment checker 50 to the launcher program 48 in the sandbox environment (T32).

[0042] The launcher program 48 is activated upon receiving a second application launch instruction from the auxiliary program 42, and identifies the environment checker 50 as the application to be launched based on the specified application ID. Next, the launcher program 48 supplies a third application launch instruction to the environment checker 50 in the sandbox environment (T34).

[0043] The environment checker 50 is activated in response to receiving a third startup instruction from the launcher program 48 and supplies the OS 21 with an environment information request (T40) specifying application identification information that identifies the print application 54. The environment information request is a signal to request the OS 21 to send environment information. The application identification information is, for example, information indicating the application ID of an application outside the sandbox environment and the path to the executable file of that application. The application identification information may also be the file name of the executable file instead of the application ID.

[0044] When OS21 receives an environmental information request from the environmental checker 50, it determines whether the application identified by the specified application identification information, namely the printing application 54, is installed on PC1. Next, OS21 supplies the determination result to the environmental checker 50. In the initial state of this procedure, the printing application 54 is not installed on PC1. Therefore, OS21 determines that the application corresponding to the acquired environmental information request is not installed and supplies environmental information including the installation information "not installed" to the environmental checker 50 (T42).

[0045] When the environment checker 50 obtains environmental information from the OS 21, it supplies the obtained environmental information to the auxiliary program 42 (T44). The environment checker 50 may supply the environmental information to the auxiliary program 42 via the launcher program 48, or it may supply the environmental information to the auxiliary program 42 without going through the launcher program 48.

[0046] When the auxiliary program 42 obtains environmental information from the environmental checker 50, it determines whether or not the print application 54 is installed based on the obtained environmental information (T50). T50 is an example of the determination process. In this procedure, since the environmental information includes the installation information "not installed", the auxiliary program 42 determines that the print application 54 is not installed.

[0047] If the print application 54 is not already installed, the auxiliary program 42 notifies the user that the print application 54 can be installed and displays an installation guidance screen 55 (T52) that accepts the user's command to install the print application 54, as shown in Figure 3. The installation guidance screen 55 includes a message 56 suggesting the installation of the print application 54, an "Install" button 57 for entering instructions to install the print application 54, and a "Later" button 58 for entering instructions not to install the print application 54. The installation guidance screen 55 is an example of an installation suggestion screen, and T52 is an example of an installation suggestion process.

[0048] If the "Install" button 57 is pressed while the installation guidance screen 55 is displayed, the system will proceed to the installation procedure for the print application 54. On the other hand, if the "Later" button 58 is pressed, the system will not proceed to the installation procedure for the print application 54. In this case, the auxiliary program 42 may store information indicating that the print application 54 was not installed. Note that the system will also not proceed to the installation procedure for the print application 54 if the print application 54 is already installed. In this case, instead of displaying the installation guidance screen 55, a screen indicating that the print application 54 is already installed or a screen introducing the functions of the print application 54 may be displayed.

[0049] Next, the installation procedure for the print application 54 will be explained with reference to the sequence diagram in Figure 4. In the installation procedure for the print application 54, first, the auxiliary program 42 supplies a fourth application launch command to the launcher program 48, specifying the model name of printer 2, the IP address of printer 2, and the application ID of installer 52 (T62).

[0050] When the launcher program 48 receives a fourth application launch instruction from the auxiliary program 42, it identifies the installer 52 as the application to be launched based on the specified application ID. Next, the launcher program 48 specifies the model name of printer 2 and the IP address of printer 2, and supplies a fifth application launch instruction, including an instruction to obtain administrator privileges, to the installer 52 in the sandbox environment (T64). In this way, the auxiliary program 42 is configured to be able to give instructions only to one application placed in the sandbox environment, which in this embodiment is the launcher program 48, but it is possible to selectively launch the environment checker 50 and the installer 52 via the launcher program 48.

[0051] The installer 52 is launched in response to receiving a fifth application launch instruction from the launcher program 48, and as part of User Account Control, it supplies an administrator privileges authorization request to the OS 21 (T66).

[0052] When OS21 receives an administrator privileges authorization request from installer52, it accepts the authorization operation from the user. Then, after receiving the authorization operation from the user via user IF13, OS21 grants administrator privileges to installer52 (T72).

[0053] When installer 52 obtains administrator privileges from OS 21, it identifies the model name of printer 2 specified in the fifth application launch instruction and accepts an installation instruction for the print application 54 corresponding to the model name of printer 2 (T80). When installer 52 receives the installation instruction for the print application 54 through user operation, it sends an application request for the print application 54 to the second server 31 (T84).

[0054] When the second server 31 receives an application request from the PC 10 in T84, it identifies the specified print application 54 from among the stored applications as the recipient. The second server 31 then sends the print application 54 to the PC 10.

[0055] When installer 52 receives the print application 54 from the second server 31, it executes a second installation process to install the print application 54 on PC1 (T90). In the second installation process, installer 52 supplies installation instructions, including the received print application 54, to OS21.

[0056] When OS21 receives installation instructions from installer 52, it places the executable files and other components corresponding to the print application 54 in a designated area outside the sandbox environment. OS21 also supplies installer 52 with installation completion information indicating that the print application 54 has been installed. This completes the second installation process, i.e., the installation of the print application 54 on PC1.

[0057] In the procedure described above, the first installation process of T16 installs the print program set 40, and then the second installation process of T90 installs the print application 54. However, if the user does not select to install the print application 54 in T80, the print application 54 will not be installed. In other words, even if the print program set 40, including the auxiliary program 42, is installed, a situation may arise where the print application 54 is not installed.

[0058] Furthermore, in the procedure described above, the print application 54 exists on the second server 31 and is sent from the second server 31. However, the print application 54 may also be included with the installer 52. In this case, the installer 52 does not make an application request to the second server 31 in T84, but can use the included print application 54 to execute the second installation process of T90.

[0059] (Printing procedure via a general-purpose printing program) Next, we will explain the procedures for various processes related to printing with printer 2 on PC1, where auxiliary program 42 is already installed. First, we will explain the selection and setting procedure for selecting the printer to be used for printing and specifying the print settings on PC1, referring to the sequence diagram in Figure 5.

[0060] In the selection and setting procedure, the editing application 43 first selects print based on the user's instructions (A01). The user can select print, for example, from the menu of operation items provided in the editing application 43. Note that the application that selects print only needs to be capable of issuing print commands, and instead of the editing application 43, it could be, for example, the printing application 54.

[0061] When the editing application 43 accepts the selection to print, it requests the general-purpose printing program 41 of the OS21 to display a screen that accepts instructions regarding printing (A02). The general-purpose printing program 41, in response to the request, displays the print settings screen to the user IF13 (A03). The print settings screen is a screen that accepts user instructions regarding various print settings that can be accepted by the general-purpose printing program 41. Note that the editing application 43 may also display the print settings screen. The print settings screen may also have an area that can display information specified by the auxiliary program corresponding to the selected printer.

[0062] For example, if printer 2 is selected as the device to perform printing and a command to perform detailed print settings is received (A11), the general-purpose printing program 41 starts the auxiliary program 42 corresponding to printer 2 and passes a command to the auxiliary program 42 to start accepting detailed print settings (A12).

[0063] When the auxiliary program 42 is activated in response to the instruction in A12, it obtains the capability information of printer 2. Specifically, the auxiliary program 42 requests the general-purpose printing program 41 to obtain the capability information (A13). The general-purpose printing program 41 sends a command to printer 2 requesting the capability information and obtains the capability information from printer 2 (A14). The general-purpose printing program 41 passes the capability information obtained from printer 2 to the auxiliary program 42 (A15). As a result, the auxiliary program 42 is able to obtain the capability information of printer 2.

[0064] The general-purpose printing program 41 communicates with the printer 2 via the OS 21 in A14, for example, by communication corresponding to IPP (Internet Printing Protocol). Alternatively, the auxiliary program 42 may obtain capability information directly from the printer 2 using, for example, the MIB (Management Information Base), instead of requesting it from the general-purpose printing program 41. Furthermore, the capability information that the auxiliary program 42 can obtain from the printer 2 may contain more information than the capability information obtained via the OS 21.

[0065] Based on the acquired capability information, the auxiliary program 42 displays a detailed settings screen on the user interface 13's display 13a, which accepts detailed print settings (A17). The parameters that can be set on the detailed settings screen provided by the auxiliary program 42 may include information on parameters that can be handled by the general-purpose printing program 41, as well as parameters that cannot be handled by the general-purpose printing program 41. Parameters that cannot be handled by the general-purpose printing program 41 may be included in the capability information, or they may be provided by the auxiliary program 42.

[0066] When the auxiliary program 42 receives an instruction to determine the print settings via the detailed settings screen (A23), it stores the determined print settings information and the capability information obtained in A15 in the memory 12 (A24).

[0067] The auxiliary program 42 passes the determined print settings information to the general-purpose print program 41 (A25). The auxiliary program 42 may also pass the capability information obtained in A15 to the general-purpose print program 41. The general-purpose print program 41 may also display the print settings screen again based on the information passed from the auxiliary program 42.

[0068] In the selection setting procedure described above, the auxiliary program 42 is launched from the general-purpose printing program 41 when an instruction to perform detailed print settings is received. However, the auxiliary program 42 may also be launched from the general-purpose printing program 41 when printer 2 is selected as the printer selection. For example, when printer 2 is selected and the program is launched, capability information may be obtained from printer 2, and the obtained capability information may be cached. Then, when an instruction to perform detailed print settings is received and the program is launched, the capability information may not be obtained from printer 2, but rather from the cached information.

[0069] Next, the print execution procedure for sending print data from PC1 will be explained with reference to the sequence diagram in Figure 6. After the user decides on the image to be printed and the print settings, the user inputs a print execution command in the editing application 43 (B01). When the editing application 43 receives the print execution command from the user, it determines that it has received an execution command to the general-purpose printing program 41 to print the selected image to printer 2. The editing application 43 supplies the information of the received print command to the general-purpose printing program 41 (B02).

[0070] The general-purpose printing program 41 obtains image data indicating the image to be printed and information indicating the print settings from the editing application 43 as print instruction information. Based on the information obtained from the editing application 43, the general-purpose printing program 41 generates intermediate data by converting the format of the image data of the image to be printed into an intermediate data format (B03). The image data included in the editing application 43 is of various types, and the general-purpose printing program 41 converts the image data to be printed into intermediate data suitable for generating print data. If the image data to be printed is suitable for generating print data, the generation of intermediate data can be omitted, and the data can be used as intermediate data as is.

[0071] Furthermore, the general-purpose printing program 41 may, before generating intermediate data, start an auxiliary program 42 corresponding to the specified device, printer 2, to notify it that it has started processing the print job. When the auxiliary program 42 is started by the general-purpose printing program 41, it can pass information indicating various instructions used when generating intermediate data to the general-purpose printing program 41 as needed.

[0072] The general-purpose printing program 41 generates intermediate data and then starts the auxiliary program 42 by outputting an execution instruction to the auxiliary program 42 (B05). The auxiliary program 42 obtains intermediate data and print setting information generated by the general-purpose printing program 41 by making a request to the general-purpose printing program 41, for example (B06). The intermediate data obtained in B06 is intermediate data indicating the image to be printed, and is intermediate data generated by the general-purpose printing program 41 based on the image data obtained from the editing application 43 in B02.

[0073] Based on the print settings obtained in B06, the auxiliary program 42 executes an intermediate data editing process to edit the image data according to the parameters set in the print settings if editing of the image data is necessary (B11). For example, if the print settings include a layout that fits multiple pages onto one sheet, the intermediate data editing process will reduce the size and rearrange the images.

[0074] The auxiliary program 42 passes the intermediate data edited in the intermediate data editing process of B11, or the intermediate data received from the general-purpose printing program 41 in B06, to the general-purpose printing program 41 and instructs the general-purpose printing program 41 to generate print data (B21). As a result, the general-purpose printing program 41 performs necessary processing such as rasterizing the intermediate data to generate print data (B22), and passes the generated print data to the auxiliary program 42 (B23).

[0075] The auxiliary program 42 processes the print data obtained from the general-purpose printing program 41 as needed and passes it to the general-purpose printing program 41, instructing it to send the print data to the printer 2 (B24). As a result, the general-purpose printing program 41 sends the print data to the printer 2 (B25). The printer 2 receives the print data and performs printing based on the print data (B31).

[0076] Alternatively, the auxiliary program 42 may perform rasterization and generate print data instead of the general-purpose printing program 41. In this case, the auxiliary program 42 may perform rasterization based on the intermediate data to generate print data, and then pass the generated print data and print settings to the general-purpose printing program 41 to instruct it to send them to the printer 2. The auxiliary program 42 may also process the print data generated by the general-purpose printing program 41 or the auxiliary program 42 as needed. The print data sent to the printer 2 only needs to be in a format that can be printed by the printer 2.

[0077] Alternatively, instead of having the general-purpose printing program 41 send the print data to the printer 2, the auxiliary program 42 may send a print command instructing the printer to execute the print job, along with the print data, to the printer 2. For example, if the print settings include settings related to image processing that can be performed on the printer 2, the auxiliary program 42 may generate a print command that also includes information about that processing.

[0078] (Notification of information held by the printing app) Next, the procedure by which the auxiliary program 42 acquires and notifies information held by the print application 54 will be explained with reference to the sequence diagram in Figure 7. The notification procedure in this configuration is executed when the auxiliary program 42 is launched, for example, when the detailed settings screen is displayed or when a print command is received. The notification procedure in this configuration is divided into a preparation procedure for notification and a notification procedure that makes a notification based on the results of the preparation procedure.

[0079] First, the preparation procedure will be explained. In the preparation procedure, when the auxiliary program 42 is started, provided that the first execution condition of the preparation procedure is met (opt: first execution condition met), it specifies the application ID of the print application 54 and supplies a sixth application startup instruction to the launcher program 48, which includes a device request and a function request (S10). As mentioned above, the auxiliary program 42 is started by the OS 21 or the general-purpose print program 41 when the print application 54 is installed, when print settings are made, when printing is executed, etc. The first execution condition of the preparation procedure includes, for example, the fact that device information corresponding to the device request or function information corresponding to the function request is not stored, or that the storage date and time of the stored device information and function information is longer than a certain period, that is, that the stored device information and function information is old.

[0080] When the launcher program 48 receives a sixth application launch instruction from the auxiliary program 42, it identifies the print application 54 as the application to be launched based on the specified application ID. Next, the launcher program 48 supplies a seventh application launch instruction, including a device request and a function request, to the print application 54 outside the sandbox environment (S12).

[0081] When the print application 54 receives a seventh application launch instruction from the launcher program 48, it determines that the instruction includes a device request and a function request. In this case, as a process corresponding to the device request, the print application 54 generates device information indicating a list of printers managed by the print application 54. The device information includes a device ID and model name, which are identification information for each managed printer. The device ID may be, for example, an IP address or a node name. The print application 54 also generates function information indicating the functions that the print application 54 possesses as a process corresponding to the function request. The print application 54 has one or more functions related to printers, and the function information may include information indicating whether each function is enabled or disabled. For example, the print application 54 may have a remaining quantity acquisition function to acquire the remaining amount of colorants, a colorant selection function to select the colorants to purchase, a maintenance function to acquire the printer maintenance schedule, a service acquisition function to acquire information on services that the printer can support, and a notification function to receive and display notification information such as announcements and advertisements for services that the printer can support.

[0082] When the print application 54 generates device information and function information, it supplies the generated device information and function information to the launcher program 48 (S14). When the launcher program 48 obtains the device information and function information from the print application 54, it supplies the obtained device information and function information to the auxiliary program 42 (S16). When the auxiliary program 42 obtains the device information and function information from the launcher program 48, it stores the obtained device information and function information in the memory area of ​​the memory 12 for the auxiliary program 42 (S18). The device information and function information stored in the memory area is associated with information indicating the date and time of storage.

[0083] Auxiliary program 42 permits the execution of the notification procedure if there is a printer model compatible with auxiliary program 42, the printing application 54 has the necessary notification functions, and if those functions can be enabled or disabled, they are enabled. On the other hand, if there is no printer model compatible with auxiliary program 42, or if the printing application 54 does not have the necessary notification functions, or if the functions are present but not enabled, the execution of the notification procedure is not permitted. Note that the execution of the notification procedure is not permitted if the preparation procedure has not been performed.

[0084] Furthermore, the functions required for notification vary depending on the type of information to be notified. The types of information to be notified may be predetermined in the auxiliary program 42, or they may be selectable by user settings. For example, types of information to be notified include the remaining amount of colorants, printer maintenance, services that the printer can handle, and notification information based on the notification function of the printing application 54. If the type of information to be notified is the remaining amount of colorants, a function to acquire the remaining amount is required. If the type of information to be notified is printer maintenance, a maintenance function is required. If the type of information to be notified is a service that the printer can handle, a service acquisition function is required. If the type of information to be notified is notification information based on the notification function of the printing application 54, a notification function is required.

[0085] In the preparation procedure described above, a list of devices managed by the printing application 54 is obtained as device information, and the condition for allowing the notification procedure is that there is a printer model that the auxiliary program 42 can handle in that list. However, the auxiliary program 42 may identify the printer, query the printing application 54 to see if the identified printer is managed by the printing application 54, and the printing application 54 will respond whether the identified printer is managed by the printing application 54. The auxiliary program 42 may then include the condition for allowing the notification procedure if the identified printer is managed by the printing application 54, based on that response.

[0086] Furthermore, even when the first execution condition of the preparation procedure is met, the print application 54 may not yet be installed. In that case, the process from T52 onwards shown in Figure 2 is executed, and the auxiliary program 42 displays the installation guidance screen 55 and accepts an operation to decide whether or not to proceed with the installation. If the "Install" button 57 is operated, the process may proceed to the print application 54 installation procedure shown in Figure 4. If the print application 54 is not installed, the installation of the print application 54 is suggested, and the installation of the print application 54 can be expected. Once the print application 54 is installed, the print application 54 becomes available for use. Note that the fact that the print application 54 is not installed can be determined, for example, by using the environment checker 50, by the launcher program 48 failing to launch the print application 54, or by the storage of information indicating that the print application 54 was not installed.

[0087] Next, the notification procedure will be described. The notification procedure is executed when the auxiliary program 42 is started and permission is granted to execute the notification procedure following the preparation procedure, or when the execution of the preparation procedure is omitted because the execution conditions for the preparation procedure are not met, and permission is granted to execute the notification procedure.

[0088] In the notification procedure, the auxiliary program 42 specifies the application ID of the print application 54 and supplies the launcher program 48 with an eighth application launch instruction that includes the device ID of the printer selected by the auxiliary program 42 and type information indicating the type of information to be notified (S20). In this embodiment, it is assumed that printer 2 is selected by the auxiliary program 42. The eighth application launch instruction includes at least one type information, and may include multiple type information.

[0089] When the launcher program 48 receives the eighth application launch instruction from the auxiliary program 42, it identifies the print application 54 as the application to be launched based on the specified application ID. Next, the launcher program 48 supplies a ninth application launch instruction, including the device ID and type information, to the print application 54 outside the sandbox environment (S22).

[0090] When the print application 54 receives the ninth application launch instruction from the launcher program 48, it determines that the instruction includes a device ID and type information. In this case, the print application 54 requests information of the type indicated by the type information from the printer 2 or the third server 32 corresponding to the device ID (S24), and obtains the information responded to by the requesting party (S26). Details on what information to obtain and from where for each type of information will be described later.

[0091] The print application 54 supplies the launcher program 48 with information corresponding to the type of information indicated in the type information, from among the information held by the print application 54 (S28). When the launcher program 48 acquires information from the print application 54, it supplies the acquired information to the auxiliary program 42 (S30). As a result, the auxiliary program 42 acquires the information held by the print application 54. The processing from S20 to S30 is an example of the acquisition process, and the information acquired by the auxiliary program 42 is an example of predetermined information. The print application 54 may supply the acquired information to the auxiliary program 42 via the launcher program 48, or it may supply the acquired information to the auxiliary program 42 without going through the launcher program 48.

[0092] When the auxiliary program 42 obtains information acquired by the printing application 54, that is, information held by the printing application 54, it provides a notification based on the acquired information (S32). The notification by the auxiliary program 42 may be a pop-up display, a message box display, or it may be launched via the launcher program 48 and displayed on the printing application 54. If multiple types of information are acquired, they may be displayed separately or combined into one display. S32 is an example of the display process.

[0093] This notification procedure allows the auxiliary program 42 to notify the user of information held by the print application 54 at the time the auxiliary program 42 is launched. In other words, if the auxiliary program 42 is launched when setting up print settings, it can notify the user of information held by the print application 54 along with the settings screen, making it easier for the user to notice the information. Also, if the auxiliary program 42 is launched when a print command is issued, it can notify the user of information held by the print application 54 in association with the sending of print data to the printer, making it easier for the user to notice the information.

[0094] Furthermore, the print application 54 may cache information obtained from printer 2 or the third server 32, and use that cache on subsequent occasions to read the cached information and supply it to the launcher program 48 without accessing printer 2 or the third server 32. When the print application 54 receives the ninth application launch instruction from the launcher program 48, if the cache is older than a certain period, it may obtain new information from printer 2 or the third server 32 and update the cache. In addition, the auxiliary program 42 manages the timing of cache updates, and if it is time to update the cache, it may include a cache update request in the eighth application launch instruction, and if the launcher program 48 includes a cache update request in the eighth application launch instruction, it may also include a cache update request in the ninth application launch instruction, and the print application 54 may update the cache based on the cache update request included in the ninth application launch instruction.

[0095] Furthermore, in the procedure described above, the auxiliary program 42 launches the print application 54 via the launcher program 48 to request information, and the print application 54 responds by obtaining information from the printer 2 or the third server 32 in response to that request. However, the timing of when the auxiliary program 42 obtains information and the timing of when the print application 54 obtains information may be configured to be asynchronous.

[0096] Figure 8 is a sequence diagram illustrating an application example of the procedure shown in Figure 7, where the timing of information acquisition by the auxiliary program 42 and the timing of information acquisition by the printing application 54 are asynchronous. In this application example, a shared area 25, which is a memory area shared by the printing application 54 and the auxiliary program 42, is allocated in memory 12. The shared area 25 is an example of a specific memory area. Steps that are the same as those shown in Figure 7 are denoted by the same reference numerals and their explanations are omitted.

[0097] In the preparation procedure for the application example, when the auxiliary program 42 is started, the auxiliary program 42 attempts to read device information and function information from the shared area 25 (S11). Then, provided that the second execution condition of the preparation procedure is met (opt: second execution condition met), the auxiliary program 42 supplies the sixth application launch instruction to the launcher program 48 (S10). The second execution condition of the preparation procedure includes, for example, that no device information or function information is stored in the shared area 25, or that the storage date and time of the device information or function information read from the shared area 25 is longer than a certain period, i.e., that the device information or function information stored in the shared area 25 is old.

[0098] When the launcher program 48 receives the sixth application launch instruction from the auxiliary program 42, it supplies the seventh application launch instruction to the print application 54 (S12). When the print application 54 receives the seventh application launch instruction from the launcher program 48, it generates device information and function information and writes the generated device information and function information to the shared area 25 (S13). The auxiliary program 42 attempts to read the device information and function information from the shared area 25 again (S11), and repeats the process in S11 until it obtains new device information and function information.

[0099] If the device information and function information read from the shared area 25 are not outdated, the auxiliary program 42 stores the read device information and function information in a memory area for the auxiliary program 42 (S18). Then, based on the stored device information and function information, the auxiliary program 42 determines whether or not to execute the notification procedure.

[0100] In the notification procedure of the application example, the auxiliary program 42 attempts to read information about the type of notification target from the shared area 25 (S31). Then, on the condition that the third execution condition of the notification procedure is met (opt: third execution condition met), the auxiliary program 42 supplies an eighth application launch instruction to the launcher program 48 (S20). The third execution condition of the notification procedure includes, for example, that information about the type of notification target is not stored in the shared area 25, or that the storage date and time of the information about the type of notification target read from the shared area 25 is longer than a certain period, i.e., that the information about the type of notification target stored in the shared area 25 is old. The certain period for determining the third execution condition and the certain period for determining the second execution condition may be the same or different.

[0101] When the launcher program 48 receives the eighth application launch instruction from the auxiliary program 42, it supplies the ninth application launch instruction to the print application 54 (S22). When the print application 54 receives the ninth application launch instruction from the launcher program 48, it requests the type of information indicated by the type information from the printer 2 or the third server 32 corresponding to the device ID, depending on the type of information indicated in the type information (S24), retrieves the information responded to from the request destination (S26), and writes the retrieved information to the shared area 25 (S27). The auxiliary program 42 attempts to read the information of the type to be notified from the shared area 25 again (S31), and repeats the reading until it obtains new information.

[0102] The auxiliary program 42 issues a notification based on the retrieved information if the information of the type of notification target is not outdated (S30). In this application example shown in Figure 8, if the information is not outdated and is stored in the shared area 25, the necessary information can be obtained without launching the print application 54, so it is expected that notifications can be issued earlier compared to the procedure shown in Figure 7. On the other hand, with the procedure shown in Figure 7, information is obtained from the print application 54 each time a notification is needed, so the likelihood of obtaining the latest information is higher compared to the procedure shown in Figure 8.

[0103] (Example of a notification) Next, the types and methods of information notified by the auxiliary program 42 will be explained. As mentioned above, the types of information notified by the auxiliary program 42 include the remaining amount of colorants, printer maintenance, services available to the printer, and notification information based on the notification function of the printing application 54. These types of information will be explained below.

[0104] When the auxiliary program 42 notifies information regarding the remaining amount of colorants, if the printing application 54 has a function to acquire the remaining amount, based on the function information obtained from the printing application 54, the execution of the notification procedure is permitted. The auxiliary program 42 then supplies the printing application 54 with type information indicating the remaining amount of colorants as the type of information to be notified, and the printing application 54 responds to the auxiliary program 42 with remaining amount information indicating the remaining amount of colorants obtained from the printer 2. Colorants are an example of consumables, and remaining amount information is an example of consumable information. The printing application 54 may respond with remaining amount information based on the remaining amount of colorants obtained when it was launched via the launcher program 48, or it may respond with remaining amount information based on the remaining amount of colorants that has been cached.

[0105] When the auxiliary program 42 obtains the remaining amount information from the print application 54, it displays a colorant remaining amount notification screen 60 on the display 13a as shown in Figure 9, which notifies the user of information based on the remaining amount information. The colorant remaining amount notification screen 60 includes the model name 61 of the printer 2, the model number 62 of the cartridge corresponding to each colorant, the remaining amount 63 of each colorant, and a "basket in" button 64 to move to the colorant selection screen. The colorant remaining amount notification screen 60 is an example of a remaining amount notification screen. By notifying the user of the remaining amount of colorants through the colorant remaining amount notification screen 60, the user can understand the remaining amount of each colorant in the printer 2. In addition, since the auxiliary program 42 obtains the remaining amount information from the print application 54, if the print application 54 caches the remaining amount information, it can notify the user of the remaining amount of colorants in the printer 2 even when the printer 2 is offline.

[0106] The auxiliary program 42 may display a message instead of popping up the colorant remaining amount notification screen 60. Furthermore, if launched during print setup, the detailed settings screen may include the contents of the colorant remaining amount notification screen 60. Alternatively, instead of the auxiliary program 42 displaying the information, the launcher program 48 may launch the print application 54, and the print application 54's status screen, which includes information indicating the remaining colorant amount, may be displayed.

[0107] Furthermore, when the "Basket In" button 64 is pressed while the colorant remaining amount notification screen 60 is displayed, the auxiliary program 42 launches the print application 54 via the launcher program 48, and the print application 54 displays the colorant selection screen 65 as shown in Figure 10. The colorant selection screen 65 includes a group of checkboxes 66 for selecting whether or not to purchase cartridges of each colorant, and a "Purchase" button 67 for going to the colorant purchase site. The colorant selection screen 65 is an example of a consumables selection screen.

[0108] While the colorant selection screen 65 is displayed, the user can select the cartridge to purchase by manipulating the checkboxes 66. When the "Purchase" button 67 is pressed, the printing application 54 launches the browser 44 and displays the colorant purchase site. At this time, the printing application 54 passes the information of the cartridge selected for purchase on the colorant selection screen 65 to the purchase site, and the purchase site displays the cartridge selected for purchase on the colorant selection screen 65 already selected as the purchase target. This allows the user to smoothly purchase the desired cartridge without having to search for it on the purchase site.

[0109] Furthermore, the auxiliary program 42 does not need to include the "Add to Basket" button 64 on the colorant remaining amount notification screen 60. In other words, simply notifying the user of the presence of colorants that are running low is enough to prompt the user to launch the browser 44 and purchase the colorants.

[0110] Furthermore, if the printing application 54 does not have a colorant selection function, i.e., does not have a function to display the colorant selection screen 65, the auxiliary program 42 displays the colorant remaining amount notification screen 60 shown in Figure 9, which includes a link to the colorant purchase site, instead of the "Basket In" button 64 for transitioning to the colorant selection screen 65. When that button is operated, the auxiliary program 42 launches the browser 44 via the launcher program 48, and the browser 44 displays the colorant purchase site. Alternatively, the auxiliary program 42 launches the printing application 54 via the launcher program 48, and the launched printing application 54 further launches the browser 44, which displays the colorant purchase site. The user can then select the colorants to purchase on that purchase site and buy them. In this case, the auxiliary program 42 only launches the browser 44 and displays the purchase site; the user must select the colorants through that purchase site.

[0111] When the auxiliary program 42 notifies the printer 2 of maintenance information, if the print application 54 has a maintenance function based on the function information obtained from the print application 54, the execution of the notification procedure is permitted. The auxiliary program 42 then supplies the print application 54 with type information indicating printer 2 maintenance as the type of information to be notified, and the print application 54 responds to the auxiliary program 42 with maintenance timing information indicating when the maintenance should be performed, obtained from the printer 2. Maintenance timing information is an example of maintenance information. The print application 54 may respond with maintenance timing information based on the maintenance timing obtained when it was launched by the auxiliary program 42 via the launcher program 48, or it may respond with maintenance timing information based on cached maintenance timing. The information indicating the maintenance timing may be direct information indicating whether maintenance processing is required, or indirect information indicating the elapsed time since the last maintenance processing or the amount of prints. Examples of maintenance processing include ink head cleaning, image quality adjustment, and firmware updates. If there are multiple maintenance processing, the maintenance timing information includes information indicating when each maintenance processing should be performed. Regarding firmware updates, the print application 54 may obtain maintenance schedule information from a server that provides the latest firmware, instead of from the printer 2.

[0112] When the auxiliary program 42 obtains maintenance timing information from the print application 54, it determines whether maintenance is necessary based on the obtained maintenance timing information. If it determines that at least one maintenance process needs to be performed, it displays a maintenance notification screen 70 on the display 13a, as shown in Figure 11, which suggests performing the maintenance process. Figure 11 shows the maintenance notification screen 70 when head cleaning is required as a maintenance process. The maintenance notification screen 70 includes the model name 71 of the printer 2, the type of maintenance process determined to be necessary 72, an "Execute" button 73 to instruct the execution of the maintenance process, and a "Later" button 74 to instruct the user not to perform the maintenance process. The maintenance notification screen 70 is an example of a maintenance suggestion screen. By notifying the user of the necessity of maintenance through the maintenance notification screen 70, the user can understand that the printer 2 needs maintenance.

[0113] While the maintenance notification screen 70 is displayed, if the "Execute" button 73 is pressed, the auxiliary program 42 launches the print application 54 via the launcher program 48 and requests the print application 54 to execute any maintenance processes that it has determined are necessary. For example, if head cleaning is required, it requests the head cleaning process to be executed. The print application 54, having received a request to execute a maintenance process, supplies the execution command for the requested maintenance process to the printer 2. The printer 2, having received the execution command, executes the maintenance process corresponding to the execution command. By allowing the printer 2 to execute maintenance processes via the print application 54 from the maintenance notification screen 70, the effort required of the user to perform maintenance processes can be reduced.

[0114] If the "Later" button 74 is pressed while the maintenance notification screen 70 is displayed, the auxiliary program 42 will close the maintenance notification screen 70 without launching the print application 54, that is, without requesting the execution of any maintenance processes that it has determined are necessary. Even in this case, the user will be aware that maintenance processes are necessary, and it can be expected that the user will perform the maintenance processes.

[0115] Furthermore, the auxiliary program 42 does not need to include an "Execute" button 73 on the maintenance notification screen 70. In other words, simply notifying the user of the existence of maintenance processes that need to be executed is sufficient to encourage the user to perform those processes.

[0116] Alternatively, the auxiliary program 42 may display a message instead of popping up the maintenance notification screen 70. Furthermore, if launched during print setup, the contents of the maintenance notification screen 70 may be included in the detailed settings screen. Alternatively, instead of the auxiliary program 42 displaying the information, the launcher program 48 may launch the print application 54 and display a warning screen from the print application 54 that notifies the user of necessary maintenance processes.

[0117] Furthermore, if the auxiliary program 42 determines, based on the maintenance timing information held by the printing application 54, that there are no maintenance processes that need to be executed, it may display a screen indicating that no maintenance processes need to be executed, or it may choose not to display anything.

[0118] When the auxiliary program 42 notifies the printer 2 of information regarding services that the printer 2 can handle, the printer application 54 is permitted to execute the notification procedure if it has a service acquisition function based on the function information obtained from the printer application 54. The auxiliary program 42 then supplies the printer application 54 with type information indicating the services that the printer 2 can handle as the type of information to be notified, and the printer application 54 responds to the auxiliary program 42 with subscription information indicating the subscription status of the subscription service obtained from the third server 32. Subscription services that the printer 2 can handle include an automatic shipping service in which, when the amount of colorant in the printer 2's cartridge becomes low, the cartridge is automatically shipped to the printer 2 user. In addition, the subscription service charges the printer 2 user a fixed fee at regular intervals. Users can join the subscription service by registering the printer's serial number and user information with the third server 32. That is, when a user joins the subscription service, information indicating that they have joined the subscription service is stored in the third server 32 in association with the printer's serial number. The types of subscription services that can be handled may differ depending on the type of printer. Subscription information is an example of service information. The printing application 54 may respond with subscription information obtained when it is launched from the auxiliary program 42 via the launcher program 48, or it may respond with cached subscription information. If there are multiple types of services, the subscription information will include the subscription status for each service. In this specification, subscription services may be referred to as "subscriptions".

[0119] When the auxiliary program 42 obtains subscription information from the print application 54, it determines whether the printer 2 is subscribed to any available subscription services. If it determines that there is at least one unsubscribed service, it displays a subscription notification screen 80 on the display 13a, as shown in Figure 12, suggesting that the user subscribe to a subscription service. The subscription notification screen 80 includes the model name 81 of the printer 2, a description of the available subscription services 82, a "Subscribe" button 83 to direct the user to the registration site for subscribing to the subscription service, a "Later" button 84 to indicate that the user does not want to subscribe to the subscription service, and a checkbox 85 to indicate that the subscription notification screen 80 should not be displayed next time. The subscription notification screen 80 is an example of a service information screen. By suggesting subscription to a subscription service through the subscription notification screen 80, the user can become aware of the existence of unsubscribed subscription services. Furthermore, the user can consider subscribing to the unsubscribed subscription services.

[0120] While the subscription notification screen 80 is displayed, if the "Subscribe" button 83 is pressed, the auxiliary program 42 launches a browser 44 via the launcher program 48 and displays a registration site for subscribing to the subscription service. Alternatively, the auxiliary program 42 launches a printing application 54 via the launcher program 48, and the launched printing application 54 further launches a browser 44, which displays a registration site for subscribing to the subscription service. The user can subscribe to the subscription service by entering the necessary information on that registration site.

[0121] If the "Later" button 84 is pressed while the subscription notification screen 80 is displayed, the auxiliary program 42 closes the subscription notification screen 80 without launching the browser 44, that is, without displaying the registration site for subscribing to the subscription service. Even in this case, the user can be aware that there are subscription services they have not yet subscribed to, and it can be expected that the user will subscribe to the subscription service through user action.

[0122] Furthermore, the auxiliary program 42 does not need to include a "Subscribe" button 83 on the subscription notification screen 80. In other words, simply notifying the user of the existence of an unsubscribed subscription service is sufficient to encourage user participation in the subscription service. Also, once the checkbox 85 is checked, the subscription notification screen 80 will not be displayed in subsequent instances, even if the display conditions for the subscription notification screen 80 are met. This avoids the annoyance of repeatedly displaying the subscription notification screen 80 to users who are not interested in the subscription service.

[0123] The auxiliary program 42 may display a message instead of popping up the subscription notification screen 80. Also, if launched during print setup, the contents of the subscription notification screen 80 may be included in the detailed settings screen. Alternatively, instead of the auxiliary program 42 displaying it, the launcher program 48 may launch the print application 54 and display the introductory screen of the print application 54 that introduces unsubscribed subscription services.

[0124] Furthermore, if the auxiliary program 42 determines, based on the subscription information held by the printing application 54, that there are no unsubscribed services, it may display a screen indicating that the user is subscribed to a subscription service, or it may choose not to display anything. Alternatively, it may launch the browser 44 via the launcher program 48 and display a web page showing the usage status of the subscription services.

[0125] When the auxiliary program 42 notifies the printing application 54 of a guide to view notification information it possesses, if the printing application 54 has a notification function, based on the functional information obtained from the printing application 54, the execution of the notification procedure is permitted. The auxiliary program 42 then supplies the printing application 54 with notification information based on the printing application 54's notification function as the type of information to be notified, and the printing application 54 responds to the auxiliary program 42 with notification storage information indicating whether or not there is notification information. Notification information is an example of contact information, and notification storage information is an example of contact storage information. Notification information is distributed from the third server 32, and the printing application 54, which has a notification function, can receive and store the notification information. When the printing application 54 is launched by the auxiliary program 42 via the launcher program 48, it determines whether or not notification information has been stored and responds with notification storage information.

[0126] When the auxiliary program 42 obtains the notification storage information held by the print application 54, it determines whether or not there is any notification storage information. If it determines that there is at least one notification in the print application 54, it pops up a notification list call screen 90 on the display 13a, as shown in Figure 13, which launches the print application 54 and displays the notification list screen. The notification list call screen 90 includes the model name 91 of the printer 2, a "Notification List" button 93 to instruct the display of the notification list screen of the print application 54, a "Later" button 94 to instruct not to display the notification list screen, and a checkbox 95 to instruct not to display the notification list call screen 90 in the future. The notification list call screen 90 is an example of a contact instruction screen. By suggesting the display of the notification list screen via the notification list call screen 90, the user can be aware of the existence of notification information.

[0127] While the notification list display screen 90 is displayed, if the "Notification List" button 93 is operated, the auxiliary program 42 launches the print application 54 via the launcher program 48, and the print application 54 displays the notification list screen 96 as shown in Figure 14. The notification list screen 96 is a list of contact screens. By making the notification list screen 96 of the print application 54 accessible from the auxiliary program 42, the user can easily check the contents of the notification information.

[0128] If the "Later" button 94 is pressed while the notification list display screen 90 is displayed, the auxiliary program 42 will close the notification list display screen 90 without launching the print application 54, i.e., without displaying the notification list screen 96. Even in this case, the user will be aware that there is notification information, and it can be expected that the user will launch the print application 54 and display the notification list screen 96. Furthermore, the notification list display screen 90 does not need to include the "Notification List" button 93. That is, simply notifying the user that there is notification information can be expected to result in the user displaying the notification list screen 96. In addition, if the checkbox 95 is pressed, the notification list display screen 90 will not be displayed in subsequent instances, even if the conditions for displaying the notification list display screen 90 are met. This avoids the annoyance of repeatedly displaying the notification list display screen 90 to users who are not interested in the notification information.

[0129] The auxiliary program 42 may display a message instead of popping up the notification list display screen 90. Furthermore, if launched during print settings, the display content of the notification list display screen 90 may be included in the detailed settings screen.

[0130] Furthermore, if the auxiliary program 42 determines, based on the notification information stored in the printing application 54, that there is no notification information in the printing application 54, it may display a screen indicating that there is no notification information, or it may choose not to display anything.

[0131] Furthermore, if the printing application 54 stores information associating whether it has been read or not, the printing application 54 may respond with stored notification information indicating whether or not there is unread notification information. In this case, the auxiliary program 42 may be configured to display the notification list call screen 90 if there is unread notification information in the printing application 54, and not to display the notification list call screen 90 if there is no unread notification information.

[0132] As described in detail above, the auxiliary program 42 in this configuration acquires various information from the printing application 54 and displays notification information, including information about the printer 2, based on the acquired information. This allows the auxiliary program 42 to display information acquired by the printing application 54 from the printer 2, such as colorant information and maintenance information, information about services available on the printer 2, such as subscription information, and information that utilizes the functions of the printing application 54, such as notification information, thereby providing highly convenient information from the auxiliary program 42.

[0133] The embodiments disclosed herein are merely illustrative and do not limit the present invention in any way. Therefore, the technology disclosed herein can naturally be improved and modified in various ways without departing from its essence.

[0134] For example, the examples of screens displayed in User IF13 are all just examples and are not limited to those shown in the illustration. Furthermore, the text, object shapes, backgrounds, etc., displayed in each illustrated screen can be anything.

[0135] Furthermore, the display of notification information based on the information held by the printing application 54 by the auxiliary program 42 does not need to be performed at all of the multiple times when the auxiliary program 42 is launched, such as when the detailed settings screen is launched or when a print command is issued; it only needs to be performed at at least one time.

[0136] Furthermore, the services offered through the support program 42 are not limited to subscription services. Services that are not subscription services can also be offered if they are available for use with Printer 2. Examples include cartridge purchase services and automatic cartridge shipping services. The cartridge purchase service is a service provided by the printer vendor, a type of e-commerce site, that provides a user interface for selecting and purchasing cartridges from the printer vendor. The automatic cartridge shipping service is a service that automatically ships cartridges to the printer user when the amount of colorant remaining in the printer's cartridges becomes low. Note that subscription services are a set of fixed-rate charges and automatic shipping services, but automatic shipping services can also exist as a standalone service.

[0137] Furthermore, while the embodiment describes processing under the assumption that the OS21 imposes restrictions on the auxiliary program 42, namely restrictions on access to programs and files outside the sandbox environment, and restrictions on being able to give instructions only to the launcher program 48 located in the sandbox environment, it is also possible to assume that there are no such restrictions. For example, the auxiliary program 42 may be able to access outside the sandbox environment, and may be able to give instructions to multiple programs. In such a configuration, the auxiliary program 42 can directly execute the installation procedure processing shown in Figures 2 and 4 without going through the launcher program 48 or the environment checker 50. Also, the auxiliary program 42, the launcher program 48, the environment checker 50, and the installer 52 do not have to be located in the sandbox environment.

[0138] Furthermore, if, after the print settings screen is displayed by the general-purpose print program 41, the user changes the controlled printer from another printer to printer 2 via the OS 21, the general-purpose print program 41 may also start the auxiliary program 42. Even in this case, as with the display of the detailed settings screen, when the auxiliary program 42 is started by the general-purpose print program 41, it may execute the procedure shown in Figure 7 or Figure 8 to obtain information held by the print application 54 and provide notifications based on that information.

[0139] Furthermore, although the embodiment describes only the printing operation as the operation of the auxiliary program 42 in detail, the auxiliary program 42 may have other roles as well. Also, the program that executes the processing of this embodiment is not limited to the auxiliary program 42, but can be any program that receives instructions from the OS 21 or the general-purpose printing program 41 when printing using the general-purpose printing program 41. For example, the Print Workflow application whose specifications have been published by Microsoft may also be used.

[0140] Furthermore, the execution timing of the auxiliary program 42 is not limited to the examples of this embodiment. For example, it may be executed by direct execution instruction from the OS 21, or it may be a resident auxiliary program 42. In the case of a resident auxiliary program, the auxiliary program 42 should perform the operations described above upon receiving an execution instruction.

[0141] Furthermore, in any flowchart disclosed in the embodiments, the execution order of any multiple processes in any multiple steps can be arbitrarily changed or executed in parallel, as long as no inconsistencies arise in the processing content.

[0142] Furthermore, the processes disclosed in the embodiments may be executed by a single CPU, multiple CPUs, hardware such as an ASIC, or a combination thereof. Also, the processes disclosed in the embodiments can be implemented in various forms, such as a recording medium or method that stores a program for executing the process. [Explanation of symbols]

[0143] 1 PC 2 Printer 41 General-purpose printing program 42 Support Programs 54 Printing Apps

Claims

1. A support program that is executable by the computer of the information processing device and supports a general-purpose printing program that has an operating system of the information processing device, To the aforementioned computer, An acquisition process is performed to acquire predetermined information which is information held by the control program, and the control program is a different program from the support program and is a program used to control the printing device. The aforementioned computer further: Based on the predetermined information acquired in the acquisition process, a display process is executed to display notification information, including information about the printing device, on the user interface of the information processing device. A support program configured in this way.

2. A support program as described in claim 1, In the aforementioned acquisition process, The predetermined information includes consumable information indicating the remaining amount of consumables for the printing device, and the control program has a function to acquire the consumable information from the printing device. In the aforementioned display process, Based on the consumable information acquired in the acquisition process, a remaining quantity notification screen, which notifies the remaining quantity of the consumable, is displayed on the user interface of the information processing device as notification information. A support program configured in this way.

3. A support program as described in claim 2, In the aforementioned display process, Based on the consumable information acquired in the acquisition process, the remaining amount notification screen, which notifies the remaining amount of the consumable as notification information, is displayed on the user interface of the information processing device. The remaining amount notification screen accepts a command to display the consumable selection screen. When a command to display the consumable selection screen is received, the control program is activated and the control program displays the consumable selection screen. The control program can display the consumable selection screen on the user interface of the information processing device. The control program further has a function to accept the selection of consumables to be purchased via the consumable selection screen, and a function to display a purchase site, which is a website where consumables can be purchased. On the purchase site displayed from the consumable selection screen of the control program, the consumables selected on the consumable selection screen are displayed as already selected for purchase. A support program configured in this way.

4. A support program as described in claim 1, In the aforementioned acquisition process, The predetermined information includes maintenance information indicating whether or not maintenance processing is required on the printing device, and the control program has a function to determine whether or not maintenance processing is required based on the control history of the printing device. In the aforementioned display process, Based on the maintenance information obtained in the acquisition process described above, When the aforementioned maintenance process is required, a maintenance suggestion screen proposing the execution of the maintenance process is displayed on the user interface of the information processing device as notification information. A support program configured in this way.

5. A support program as described in claim 4, In the aforementioned display process, Based on the maintenance information obtained in the acquisition process described above, When the execution of the aforementioned maintenance process is required, the user interface of the information processing device displays the maintenance proposal screen, which proposes the execution of the aforementioned maintenance process and accepts instructions to execute the aforementioned maintenance process, as notification information. Upon receiving the execution instruction, the control program is activated and a command is sent to the printing device to execute the aforementioned maintenance process. A support program configured in this way.

6. A support program as described in claim 1, In the aforementioned acquisition process, The control program has a function to acquire the service information, which includes whether the printing device is able to use a specific service and whether it is subscribed to the specific service. In the aforementioned display process, Based on the service information obtained in the acquisition process described above, If the printing device is capable of using the specific service and is not subscribed to the specific service, the user interface of the information processing device will display a service guidance screen that provides information about the specific service as notification information. A support program configured in this way.

7. A support program according to claim 6, In the aforementioned display process, Based on the service information obtained in the acquisition process described above, If the printing device is capable of using the specific service and is not subscribed to the specific service, the user interface of the information processing device displays the service information screen, which provides information about the specific service and includes a link to a subscription site, which is a website where one can subscribe to the specific service, as notification information, and when the link is clicked, the user interface of the information processing device displays the subscription site. A support program configured in this way.

8. A support program as described in claim 1, In the aforementioned acquisition process, As predetermined information, the control program acquires contact storage information indicating whether or not it has contact information related to the printing device, and the control program has a contact function that acquires the contact information from the notification server and displays a contact screen including the acquired contact information. In the aforementioned display process, Based on the contact information stored in the acquisition process described above, If the control program has the communication information, it displays a communication instruction screen that accepts a command to display the communication screen on the user interface of the information processing device as the notification information, and when it receives a command to display the communication screen, it starts the control program and displays the communication screen on the user interface of the information processing device. A support program configured in this way.

9. A support program as described in claim 1, In the aforementioned acquisition process, The system instructs the control program to start, requests the acquisition of the predetermined information, and acquires the predetermined information received in response from the control program in response to the request. A support program configured in this way.

10. A support program as described in claim 1, In the aforementioned acquisition process, The predetermined information is obtained by reading it from a specific storage area in the memory of the information processing device, the specific storage area being a shared storage area between the support program and the control program, and the control program having a function to write the predetermined information to the specific storage area when predetermined conditions are met. A support program configured in this way.

11. A support program as described in claim 1, To the aforementioned computer, In response to a request from the general-purpose printing program, the system executes a settings screen display process to display a settings screen on the user interface of the information processing device that accepts settings for the printing device to perform printing. The aforementioned computer further: The display of the settings screen triggers the execution of the acquisition process and the display process. A support program configured in this way.

12. A support program as described in claim 1, To the aforementioned computer, The process involves, when a print command is issued to the general-purpose printing program to print an image to the printing device, acquiring image data representing the image from the general-purpose printing program, and controlling the transmission of print data based on the acquired image data to the printing device, wherein the printing device that receives the print data executes a print data transmission process to perform printing based on the print data. The aforementioned computer further: Upon receiving the aforementioned print command, the acquisition process and the display process are executed. A support program configured in this way.

13. A support program as described in claim 1, To the aforementioned computer, The system executes a determination process to determine whether the control program is installed on the information processing device. If the aforementioned determination process determines that the control program is not installed, an installation suggestion process is executed to display an installation suggestion screen on the user interface of the information processing device, which suggests the installation of the control program. A support program configured in this way.

14. A support program as described in claim 13, In the aforementioned installation suggestion process, The installation suggestion screen, which proposes the installation of the control program, is displayed on the user interface of the information processing device, and when the installation instruction is received, the device executes a process to install the control program. A support program configured in this way.

15. A support program as described in claim 1, In the aforementioned acquisition process, The control program is a Win32 application, and the control program is not located in the sandbox where the support program is located. A support program configured in this way.

16. A support program according to claim 15, In the aforementioned acquisition process, A startup program which is a Win32 application, wherein the startup program placed in the sandbox requests the control program to acquire the predetermined information specified by the control program, and the control program launched by the startup program acquires the predetermined information output from the control program which was requested by the startup program to acquire the predetermined information. A support program configured in this way.

17. A notification method for notifying notification information including information about a printing device using an information processing device, wherein the information processing device has a support program that supports a general-purpose printing program on the operating system of the information processing device. The support program includes an acquisition step of acquiring predetermined information which is information possessed by the control program, wherein the control program is a program different from the support program and is a program used to control the printing device. Furthermore, the support program includes a display step in which it displays notification information, including information about the printing device, on the user interface of the information processing device, based on the predetermined information acquired in the acquisition step. A notification method configured in such a way.