JP7013176B2 - プログラム、情報処理装置、及び制御方法 - Google Patents

プログラム、情報処理装置、及び制御方法 Download PDF

Info

Publication number
JP7013176B2
JP7013176B2 JP2017171179A JP2017171179A JP7013176B2 JP 7013176 B2 JP7013176 B2 JP 7013176B2 JP 2017171179 A JP2017171179 A JP 2017171179A JP 2017171179 A JP2017171179 A JP 2017171179A JP 7013176 B2 JP7013176 B2 JP 7013176B2
Authority
JP
Japan
Prior art keywords
installer
installation
application software
installation process
shortcut
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017171179A
Other languages
English (en)
Other versions
JP2019046360A (ja
JP2019046360A5 (ja
Inventor
洋 布施
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017171179A priority Critical patent/JP7013176B2/ja
Priority to US16/027,105 priority patent/US11023216B2/en
Publication of JP2019046360A publication Critical patent/JP2019046360A/ja
Publication of JP2019046360A5 publication Critical patent/JP2019046360A5/ja
Priority to JP2022002549A priority patent/JP7289940B2/ja
Application granted granted Critical
Publication of JP7013176B2 publication Critical patent/JP7013176B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Description

本発明は、アプリケーションソフトウェアをインストールするためのプログラム、情報処理装置、及び制御方法に関する。
近年、アプリケーションソフトウェアの大規模・複雑化に伴い、1つのアプリケーションソフトウェアを動作させるために複数のインストーラを正しい手順で実行する必要のある製品が増えてきた。しかしながら、ITリテラシーの低いユーザにとって正しい手順でインストーラを実行することは必ずしも容易なことではない。
そこで特許文献1には、サーバーコンピュータにおいて、複数のソフトウェアをインストールする際のインストール順によるコンフリクトチェック(整合性確認)を実施することが記載されている。特許文献1によれば、ユーザはインストーラの実行順序を意識することなく所望のアプリケーションソフトウェアがインストールできるようになる。
特開2012-48410号公報
しかしながら、複数のインストーラを連続実行している際にユーザがインストール中のアプリケーションソフトウェアを起動してしまうと、インストール処理が失敗する場合がある。
例えば、ユーザがサービスパックを含むアプリケーションソフトウェアを購入した場合、製品にはベース用のインストーラ及びサービスパック用のインストーラが同梱されていることがある。一般的にこのような構成のインストーラでは、ベースのインストール処理が完了した後に自動的にサービスパックのインストール処理が開始されることが多い。この場合、ベースのインストール処理が完了した時点でOS(Operating System)のデスクトップ画面上にショートカットが作成される。そのため、サービスパックのインストール中にユーザがショートカットからアプリケーションソフトウェアを容易に起動することが出来てしまう。
ここでユーザがインストール中のアプリケーションソフトウェアを起動した場合、OSによってアプリケーションソフトウェア実行に必要なモジュールはロードされ、ロックされる。そのため、サービスパックのインストーラによるサービスパック用モジュールの更新ができなくなるため、サービスパックのインストール処理が失敗するという問題が発生する。
また、サービスパックのインストーラによる更新ができなかったモジュールを、ソフトウェアの再起動後に更新することも可能である。しかしながら、ユーザがサービスパックを含むアプリケーションソフトウェアを購入したにもかかわらず、そのユーザが「Bug-Fix未適用の製品」や「新機能がまだ存在しないベース機能のみの製品」を一時的にでも使用することは好ましくない。
そこで、本発明は、既にインストールされたアプリケーションソフトウェアについての追加インストールを行うためのインストーラを起動させる前に、前記インストールされたアプリケーションソフトウェアの起動のための処理を実行させないことを目的とする。
上記課題を解決するために、第1のインストール手段によって情報処理装置にインストールされたアプリケーションをアップデートするための未実行の第2のインストール処理が存在する場合、第2のインストール処理を実行する第2のインストール手段に対して第2のインストール処理を実行するように指示し、第1のインストール処理が完了していたとしても前記第2のインストール処理が完了するまでは前記アプリケーションのショートカットを作成せず、未実行の第2のインストール処理が存在しない場合、前記第1のインストール処理が完了すると前記アプリケーションのショートカットを作成することを特徴とする。
本発明により、既にインストールされたアプリケーションソフトウェアについての追加インストールを行うためのインストーラを起動させる前に、前記インストールされたアプリケーションソフトウェアの起動のための処理を実行させないようにすることができる。
ハードウェア構成例を示す図 ソフトウェア構成例を示す図 インストーラに関する設定情報の一例を示す図 実施例1の処理を示すフローチャート 実施例2の処理を示すフローチャート 実施例3の処理を示すフローチャート
本発明では、ユーザがインストーラ実行中に、アプリケーションソフトウェアの起動を防ぐためのショートカット作成方法を実現する。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
[ハードウェア構成]
図1は、本発明の一実施形態におけるハードウェア構成例を示す図である。図1では、コンピュータである情報処理装置100のハードウェア構成例を示している。情報処理装置100は、ユーザ操作入力を受信する入力デバイスであるキーボード105とポインティングデバイス106が設けられている。
キーボード105は、情報処理装置100に対して文字や数字などの情報を入力する装置である。キーボードは、例えば仮名や英文字などを入力するキーや数字を入力するためのテンキー、各種機能キー、カーソルキー及びその他のキーを備える。
ポインティングデバイス106は、例えばマウスなどを備える。ユーザが、GUI(Graphical User Interface)などを用いて情報処理装置100を操作する場合、表示装置上に表示されたボタンやアイコンなどをマウスでクリックすることにより、所定の情報の入力を行うことができる。例えば、情報処理装置100が、インストールされたアプリケーションソフトウェアを表すアイコンを表示部102上に表示し、ユーザがアイコンをマウスでクリックすることに応じて、CPU101がアプリケーションソフトウェアを起動させる。さらに、ユーザに視覚的な出力情報フィードバックを与える表示部102を備える。
表示部102は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、又はプラズマディスプレイを備える画面上に各種情報を表示する。表示部102は、キーボードやマウスの入力結果や、インストーラやアプリケーションソフトウェアが提供する画面(例えばユーザインターフェース)等を表示する。
さらに、情報処理装置100は、動作を制御するための手段であるCPU101、RAM103、ROM104、HDD107を備える。本実施形態に特有の動作として、CPU101は、情報処理装置100上では図2に示す複数のインストーラ200・210の動作を制御する。CPU101は、情報処理装置100の各インストーラを実行し、所定のプログラムに従って、各種の演算、情報処理、情報処理装置100全体の制御処理を行う。
RAM103、ROM104、HDD107は本実施形態における各種プログラムや実行情報を保管する。また、DVD/CDに記録されたデータを読み出すためのDVD/CD-ROMドライバ108も設ける。RAM103は、CPU101によりOS(Operating System)や本実施例を実現するための制御プログラムを含むその他の制御プログラムがロードされ実行される。また、制御プログラムを実行するために用いられる各種作業領域、一時待避領域として機能する。本実施形態では、RAM103には、CPU101がインストーラの起動やシステム内部の処理などを行うためのエリアが確保される。ROM104は、CPU101の各種制御を実行する各種制御プログラム、データ及びパラメータ等を記憶する記憶装置である。
HDD107は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータを読み書きするための駆動装置と、を備える。本実施形態では、HDD107は、ハードディスクを備えるローカルディスクである。なお、HDD107が備える記憶媒体が、光磁気ディスク、磁気ディスク、半導体メモリ等であってもよい。HDD107には、図2に示す複数のインストーラ200・210が記憶されている。また、HDD107には、インターフェイスデバイスI/O109を制御し、ネットワークを介した通信を維持する通信プログラムが記憶されている。また、HDD107には、メモリ管理やファイル入出力管理などのクライアントを動作させるための基本アプリケーションソフトウェアであるOSなどが記憶されている。
さらに、外部機器との通信を行うインターフェイスデバイスI/O109を備え、プログラム実行を行うCPU101を備える。なお、周辺機器との接続形態は有線/無線を問わない。インターフェイスデバイスI/O109は、ネットワーク(例えば、LANやインターネット)を介して他の端末(Webサーバ、メールサーバなど)に接続する。インターネットを介した通信を行う場合には、例えば、TCP/IP等のプロトコルが用いられる。
なお、本実施例で説明される処理は、ROM104、またはHDD107に保存されたプログラムや実行情報、一時データをRAM103にロードし、CPU101で実行することによって実現される。
[ソフトウェア構成]
図2は、ソフトウェアの構成例を示す図である。
情報処理装置100は、複数のインストーラ(第一のインストーラ200、第二のインストーラ210)を備える。なお、本実施例では、インストーラ210はインストーラ200と同様の構成であり重複する情報は省略する。
ここで、第一のインストーラ200および第二のインストーラ210は、アプリケーションソフトウェアの制作者によってDVDやCD等に記憶され、或いは、アーカイブファイルに変換されWebページ等にアップロードされることが一般的である。また、インストーラの配布方式は、単数のインストーラを別々に配布する単数インストーラ形式や、複数のインストーラをあわせて配布する複数インストーラ形式の2パターンが存在する。例えば、アプリケーションソフトウェアのサービスパックがリリースされて、ベースとサービスパックの2つのインストーラを1つにまとめて配布する場合、複数インストーラ形式となる。なお、ユーザのPCに既にベースのインストールしており、後にリリースされたサービスパックを追加でインストールする場合には、サービスパックのインストーラが単数インストーラ形式で配布されることとなる。図2で示すような第一のインストーラ200および第二のインストーラ210は、複数インストーラ形式で配布されたインストーラセットであると言える。
情報処理装置100が備える各構成について説明する。
インストーラ200は、アプリケーションソフトウェアのインストール実行するための各種のユーザインターフェースを備え、情報処理装置100のデスクトップ上でユーザからの要求を受け付けて、各機能処理の実行を総括的に管理している。
インストーラ200は、表示部201および制御部202を有する。各インストーラを構成するコンポーネントについて説明する。
表示部201は、インストーラ200のユーザインターフェースの構築を行う。また、GUIを介して、ユーザからの各種入力操作の受け付けを処理する。
制御部202は、インストーラ制御に関する処理全般の機能を備える。例えば、ユーザからの各種入力操作の受け付けを基に、図示を省略するアプリケーションソフトウェアのインストール、アンインストール、修復インストールやアプリケーションの設定や構築を行う。また、制御部202は、情報処理装置100のインストーラに関する設定情報を解析する。設定情報とは、例えば、インストーラ情報300や各インストーラが管理するレジストリ情報320等を示す。設定情報の詳細については、図3を用いて後述する。
さらに、制御部202は、アプリケーションソフトウェアのインストールに際して、既にインストールされたアプリケーションソフトウェアの起動のためのユーザ入力を受け付け可能にする処理を実行する。その処理の一例として、制御部202は、情報処理装置のOSが提供するデスクトップ画面上に、アプリケーションソフトウェアの起動のためのユーザ入力を受け付けるショートカットを作成する。また処理の他の例として、制御部202は、メニュー画面の一覧にアプリケーションソフトウェアを表示させたり、ファイルに対する拡張子の関連付けを行ったりしてもよい。
なお、インストーラ200は、アプリケーションソフトウェアの基本機能を情報処理装置にインストールするためのインストーラである。また、表示部211および制御部212を有するインストーラ210は、アプリケーションソフトウェアの追加インストールするためのサービスパックのインストーラである。サービスパックのインストーラにおける追加インストールでは、例えば、ベースのインストーラにおける基本機能についてのバグ修正やセキュリティ強化、ベースの機能をバージョンアップした機能の追加などが行われる。一方、図5で後述する実施例2におけるインストーラ210は、アプリケーションソフトウェアの追加インストールとして、オプション機能をインストールするためのインストーラとして扱う。オプション機能のインストーラにおいては、ベースの機能には含まれない付帯機能であり、ユーザがカスタマイズして追加可能な機能がインストールされる。サービスパックのインストーラの制御部212は、ベースのインストーラの制御部202と同様に、既にインストールされたアプリケーションソフトウェアの起動のためのユーザ入力を受け付け可能にする処理を実行可能である。例えば、制御部212はショートカット作成の機能などを有している。一方、オプション機能のインストーラの制御部212は、既にインストールされたアプリケーションソフトウェアの起動のためのユーザ入力を受け付け可能にする処理を実行する機能を有していないため、ショートカットの作成などはできない。
本実施例で説明される処理は、ROM104またはHDD107に保存されたプログラムが、RAM103にロードされて、CPU101で実行されることによって実現される。
[インストーラに関する設定情報]
図3は、インストーラに関する設定情報の一例を示している。
インストーラに関する設定情報には、インストーラが保持するインストーラ情報およびOSが保持するレジストリ情報が含まれる。これらの情報は各インストーラのインストール処理において、併用して利用される。
初めに、図3(a)で示すインストーラ情報300について説明する。インストーラ情報300は、インストーラ200のインストール処理に必要な設定情報であり、インストーラ200が保持する情報である。設定情報は、例えばInstallerVersion301やProductCode302、UpgradeCode等を含む。同様に、図3(b)で示すインストーラ情報310は、インストーラ210のインストール処理に必要な設定情報であり、インストーラ210が保持する情報である。なお、本実施例では、インストーラ情報310はインストーラ情報300と同様の構成であり、重複する情報の説明は省略する。
インストーラ情報300の各項目について説明する。InstallerVersion301は、インストーラ210がインストール可能なアプリケーションソフトウェアのバージョンを示す。一般的にアプリケーションソフトウェアのバージョンは、メジャーバージョン、マイナーバージョン、リビジョン(サービスパックのバージョン)の3つの値で構成される。例えば、メジャーバージョンの値が「3」、マイナーバージョンの値が「0」、リビジョンの値が「0」であれば、アプリケーションソフトウェアのバージョンは「3.0.0」となる。本実施例におけるInstallerVersion301の値は「3.0.0」であるため、インストーラ200によってバージョン3.0.0のアプリケーションソフトウェアがインストールされる。また、インストーラ情報310のInstallerVersion311の値は「3.0.1」であるため、インストーラ210によってバージョン3.0.1のアプリケーションソフトウェアがインストールされる。
ProductCode302は、アプリケーションソフトウェアの識別などに用いられる固有の番号や文字列である。この値はインストーラ200によって、レジストリ情報320のProductCode322へ書き込まれる。また、一般的に、リリース済みのアプリケーションソフトウェアに適用可能なサービスパックをリリースする場合、ProductCode302およびUpgradeCodeは変更しない。即ち、サービスパックをインストールした場合、レジストリ情報320に書き込まれるProductCode322の値およびUpgradeCodeの値は変更されない。なお、第二のインストーラ210がオプション機能のインストーラである場合、ProductCodeやUpgradeCodeは、第一のインストーラ200が保持する値と異なる(不図示)。値が異なる場合、第一のインストーラ200と第二のインストーラ210によってインストールされるアプリケーションソフトウェアは、それぞれアップグレードの依存関係がないとことになる。なお、ProductVersion323およびProductCode324については、実施例2で説明する。
図3を例にまとめると、インストーラ情報300を有するインストーラ200はベースであり、インストーラ情報310を有するインストーラ210は、ベースに対するサービスパックであると言える。
次に、図3(c)で示すレジストリ情報320について説明する。レジストリ情報320は、情報処理装置100のOSが保持するレジストリ情報一覧の一例を示す。
レジストリ情報320は、情報処理装置100にインストールされているアプリケーションソフトウェアの情報であり、ROM104に保存されている。例えば、レジストリ情報320は、アプリケーションソフトウェアのProductVersion321やProductCode322、UpgradeCode、インストールパス等を含む。また、レジストリ情報320は複数のアプリケーションソフトウェアを管理する。図3を例にあげると、レジストリ情報320は、ベースのアプリケーションソフトウェアとベースに対するオプション機能のアプリケーションソフトウェアの2つのアプリケーションソフトウェアを含む。具体的には、ProductVersion321、ProductCode322はベースのアプリケーションソフトウェアのレジストリ情報に関する情報である。また、ProductVersion323、ProductCode324はベースに対するオプション機能のアプリケーションソフトウェアのレジストリ情報に関する情報である。なお、レジストリ情報320に含まれる2つのProductVersion、ProductCodeにおいて、重複する情報の説明は省略する。
レジストリ情報320の各項目について説明する。ProductVersion321は、情報処理装置100にインストールされているベースのアプリケーションソフトウェアのバージョンを示す。例えば、ProductVersion321の値が「3.0.0」であれば、バージョン3.0.0のアプリケーションソフトウェアがインストールされていることになる。
ここで、サービスパックがインストールされている場合は、リビジョンの値が「1」以上となる。したがって、図3(c)で示す例では、リビジョンの値が「0」であるため、サービスパックはインストールされていないと判断できる。
ProductCode322は、アプリケーションソフトウェアの識別などに用いられる固有の番号や文字列である。レジストリ情報320にアプリケーションソフトウェアのProductCode302が存在すれば、アプリケーションソフトウェアがインストールされているということになる。
なお、インストーラ情報、および、レジストリ情報が保持する情報は、本実施例に限ったものとしない。
[実施例1における各インストーラの処理]
実施例1では、第一のインストーラ200と第二のインストーラ210が連続実行される場合における課題の解決手法を説明する。なお、実施例1では第一のインストーラ200をベースのインストーラ、第二のインストーラ210をサービスパックのインストーラとして扱う。
まず、実施例1における課題を説明する。ベース用とサービスパック用の2つのインストーラが連続で実行される場合にサービスパックのインストール処理が失敗するケースがある。具体的には、2つのインストーラを連続実行する場合、まず初めにベースのインストーラによって、OSのデスクトップ画面上にショートカットが作成される。その後サービスパックのインストーラが実行されることとなるが、ベースのインストーラ実行が完了した時点でユーザはOSのデスクトップ画面上に作成されたショートカットからアプリケーションソフトウェアを起動するための指示をすることができる。ここで、サービスパックのインストーラ実行中にアプリケーションソフトウェアが起動された場合、サービスパックのインストーラはアプリケーションソフトウェアのモジュールを更新できずにインストール処理が失敗することがある。
ここでは前述の課題を解決するためのインストーラ構成に応じたショートカット作成のタイミングの動的な変更手法について説明する。
[実施例1における各インストーラの処理]
図4は、ベースのインストーラ200およびサービスパックのインストーラ210の処理のフローチャートである。図1の情報処理装置100上で動作するインストーラ200・210を例に処理の流れを説明する。図4に示すフローチャートでは、インストーラにおける動的なショートカット作成処理を実施する手法を示す。また、S1001~S1010の各ステップはインストーラ200による処理であり、S1101~S1103の各ステップはインストーラ210による処理である。
図4(a)は、ベースのインストーラであるインストーラ200による処理の流れを示すフローチャートである。
インストーラ200が起動されると、S1001にて、制御部202はインストーラ200でインストール可能なアプリケーションソフトウェアが未インストールかを判定する。はい(未インストールである)の場合、S1002へ進み、いいえ(未インストールでない)の場合、S1003へ進む。
S1001における判定のロジックについて具体的に説明する。制御部202は、レジストリ情報320を取得する。そして制御部202は、レジストリ情報320とインストーラ情報300を基に、インストーラ情報300が保持するProductCode302がレジストリ情報320に存在するかを解析する。レジストリ情報320のProductCode322にProductCode302が存在する場合、ベースのアプリケーションソフトウェアは未インストールでないと判定し、S1003へ進む。一方、レジストリ情報320のProductCode322にProductCode302が存在しない場合、または、レジストリ情報320が存在しない場合、ベースのアプリケーションソフトウェアは未インストールであると判定し、S1002へ進む。
次に、S1002にて、制御部202はベースのアプリケーションソフトウェアのインストール実行フラグをONにする。
次に、S1003にて、複数インストーラ形式のインストーラセットに未インストールのサービスパックが存在するかを判定する。はい(存在する)の場合、S1004へ進み、いいえ(存在しない)の場合、S1005へ進む。
S1003における判定のロジックについて具体的に説明する。初めに制御部202は、サービスパックのインストーラ情報310を取得する。ここでインストーラ情報310が取得できない場合、サービスパックのインストーラ210は存在しないと判定し、S1005へ進む。次に制御部202は、レジストリ情報320を取得する。そして制御部202は、サービスパックのインストーラ情報310とレジストリ情報320とを基に、インストーラ情報310が保持するProductCode312がレジストリ情報320に存在するかを解析する。レジストリ情報320のProductCode322にProductCode302が存在しない場合、または、レジストリ情報320が存在しない場合、未インストールのサービスパックが存在すると判定し、S1004へ進む。一方、レジストリ情報320のProductCode322にProductCode302が存在する場合、さらにInstallerVersion311とProductVersion321とを比較する。ここでは、例えば、それぞれのリビジョンの値を比較することとなる。比較した結果、InstallerVersion311の方が大きい場合、未インストールのサービスパックが存在すると判定し、S1004へ進む。一方、InstallerVersion311の方が小さい或いは同じ場合、未インストールのサービスパックが存在しないと判定し、S1005へ進む。
次に、S1004にて、制御部202はサービスパックのアプリケーションソフトウェアのインストール実行フラグをONにする。
次に、S1005にて、制御部202はインストールするアプリケーションソフトウェアが1つ以上存在するかを判定する。ここで、S1005における判定のロジックには「ベースのアプリケーションソフトウェアのインストール実行フラグ」と「サービスパックのアプリケーションソフトウェアのインストール実行フラグ」とを用いる。少なくともいずれかのフラグがONであれば、何らかのアプリケーションソフトウェアをインストールすると判定する。はい(存在する)の場合、S1006へ進み、いいえ(存在しない)の場合、本フローチャートの処理を終了する。
次に、S1006にて、制御部202はベースのアプリケーションソフトウェアのインストール実行フラグがONかを判定する。はい(インストール実行フラグがON)の場合、S1007へ進み、いいえ(インストール実行フラグがOFF)の場合、S1008へ進む。
次に、S1007にて、制御部202はアプリケーションソフトウェアの基本機能をインストールする。S1007で実行されるインストール処理は、アプリケーションソフトウェアのファイルコピーやレジストリ登録である。なお、S1007で実行されるインストールの完了後には、制御部202はショートカットを作成しないものとする。後述するサービスパックのインストーラによる追加機能のインストールの完了後に、ショートカットが作成されることとなる。
次に、S1008にて、制御部202はサービスパックのアプリケーションソフトウェアのインストール実行フラグがONかを判定する。はい(インストール実行フラグがON)の場合、S1009へ進み、いいえ(インストール実行フラグがOFF)の場合、S1010へ進む。
次に、S1009にて、制御部202はサービスパックをインストールするためのインストーラ210を起動させ、インストーラ210による処理(図4(b))を実行する。つまりS1009では、前記アプリケーションソフトウェアのインストールに際して、該インストールされたアプリケーションソフトウェアの起動のためのユーザ入力を受け付け可能にする処理を実行することなく、制御部202はインストーラ210を起動する。
次に、S1010にて、制御部202はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットを作成し、インストーラ200の処理を終了する。
図4(b)は、サービスパックのインストーラであるインストーラ210による処理の流れを示すフローチャートである。
S1009でインストーラ210がインストーラ200によって起動されると、S1101にて、制御部212はアプリケーションソフトウェアの追加機能をインストールする。S1101で実行されるインストール処理は、アプリケーションソフトウェアのファイルコピーやレジストリ登録の処理であって、ショートカット作成の処理を含まないものとする。
次に、S1102にて、制御部212はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットが存在するかを判定する。はい(存在する)の場合、インストーラ210の処理を終了する。いいえ(存在しない)の場合、S1103へ進む。
次に、S1103にて、制御部212はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットを作成し、インストーラ210の処理を終了する。
なお、S1101でのサービスパックのインストール処理が完了した後、サービスパックのインストーラではなくベースのインストーラがショートカットを作成しても良い。
また、事前にベースのアプリケーションソフトウェアのみをインストール済みの場合、すでにOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットが作成されている。しかしながら、ユーザがOSのデスクトップ画面上からショートカットを削除していることがある。そのため、サービスパックのインストーラが実行するS1102、S1103の処理で、ベースのインストーラが作成していたショートカットを修復する必要があるかを判定し、必要があれば修復するようにしてもよい。
以上、インストーラ構成に応じたショートカット作成タイミングの動的な変更手法について説明した。これにより、ベース用とサービスパック用の2つのインストーラが連続で実行される場合、ベースのインストーラでショートカットを作成せずに、サービスパックのインストーラでショートカットを作成できるようになる。従って、インストーラの構成に関わらず、ショートカット作成のタイミングが一律してインストール処理の最後に実施されるようになり、ユーザがインストール中にショートカットからアプリケーションソフトウェアを起動することがなくなる。その結果、インストール中におけるアプリケーションソフトウェアの起動操作を抑止することができるようになる。
[実施例2における各インストーラの処理]
実施例2では、第一のインストーラ200と第二のインストーラ210が連続実行される場合における課題の解決手法を説明する。なお、実施例2では第一のインストーラ200をベースのインストーラ、第二のインストーラ210をオプション機能のインストーラとして扱う。
実施例2における課題を説明する。オプション機能のインストーラとはベースのアプリケーションソフトウェアに対し、オプション機能をインストールできるインストーラである。一般的にオプション機能のインストーラは、ベースに対するオプション機能をインストールするだけであり、ベースのアプリケーションソフトウェアのショートカットを作成する処理は存在しない。そのため、実施例1の課題と同様に、ベース用とオプション機能用の2つのインストーラが連続で実行される場合、オプション機能が有効になる前にユーザがアプリケーションソフトウェアを起動してしまう可能性がある。
実施例2では前述の課題を解決するためのインストーラ構成に応じたショートカット作成タイミングの動的な変更手法について説明する。
[実施例2における各インストーラの処理]
図5は、ベースのインストーラ200およびオプション機能のインストーラ210の処理のフロー図である。図1の情報処理装置100上で動作するインストーラ200・210を例に処理の流れを説明する。本フローでは、インストーラにおける動的なショートカット作成処理を実施する手法を示す。また、S1001~S1010の各ステップはインストーラ200による処理であり、S1101~S1103の各ステップはインストーラ210による処理である。なお、図4に示したフローチャートのステップと重複する部分についての説明を省略する。
図5(a)は、ベースのインストーラであるインストーラ200による処理の流れを示すフローチャートである。
S2003にて、複数インストーラ形式のインストーラセットに未インストールのオプション機能が存在するかを判定する。はい(存在する)の場合、S2004へ進み、いいえ(存在しない)の場合、S2005へ進む。
S2003における判定のロジックについて具体的に説明する。初めに制御部202は、オプション機能のインストーラ情報310を取得する。ここでインストーラ情報310が取得できない場合、オプション機能のインストーラ210は存在しないと判定し、S2005へ進む。次に制御部202は、レジストリ情報320を取得する。そして制御部202は、オプション機能のインストーラ情報310とレジストリ情報320を基に、インストーラ情報310が保持するProductCode312がレジストリ情報320に存在するかを解析する。
レジストリ情報320のProductCode324にProductCode302が存在しない場合、または、レジストリ情報320が存在しない場合、未インストールのオプション機能が存在すると判定し、S2004へ進む。一方、レジストリ情報320のProductCode324にProductCode302が存在する場合、インストーラ情報310のInstallerVersion311とレジストリ情報320のProductVersion323とを比較する。ここでは、例えば、それぞれのリビジョンの値を比較することとなる。比較した結果、InstallerVersion311の方が大きい場合、未インストールのオプション機能が存在すると判定し、S2004へ進む。一方、InstallerVersion311の方が小さい或いは同じ場合、未インストールのオプション機能が存在しないと判定し、S2005へ進む。
次に、S2004にて、制御部202はオプション機能のアプリケーションソフトウェアのインストール実行フラグをONにする。
次に、S2005にて、制御部202はインストールするアプリケーションソフトウェアが1つ以上存在するかを判定する。ここで、S2005における判定には「ベースのアプリケーションソフトウェアのインストール実行フラグ」と「オプション機能のアプリケーションソフトウェアのインストール実行フラグ」を用いる。何れかのフラグがONであれば、何らかのアプリケーションソフトウェアをインストールすると判定される。はい(存在する)の場合、S1006へ進み、いいえ(存在しない)の場合、インストーラ200の処理を終了する。
次に、S2008にて、制御部202はオプション機能のアプリケーションソフトウェアのインストール実行フラグがONかを判定する。はい(インストール実行フラグがON)の場合、S2009へ進み、いいえ(インストール実行フラグがOFF)の場合、S2010へ進む。
次に、S2009にて、制御部202はオプション機能のアプリケーションソフトウェアをインストールするためのインストーラ210を起動させ、インストーラ210による処理(図5(b))を実行する。
次に、S2010にて、制御部202はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットを作成し、インストーラ200の処理を終了する。
図5(b)は、オプション機能のインストーラであるインストーラ210による処理の流れを示すフローチャートである。
S2009でインストーラ210がインストーラ200によって起動されると、S2101にて、制御部212はベースに対して適用可能なオプション機能をインストールし、インストーラ210の処理を終了する。S2101で実行されるインストール処理は、アプリケーションソフトウェアのファイルコピーやレジストリ登録の処理であって、ショートカット作成の処理を含まないものとする。S2101でのオプション機能のインストール処理が完了した後、S2010でインストーラ200によってショートカットが作成される。
以上、インストーラ構成に応じたショートカット作成タイミングの動的な変更手法について説明した。これにより、ベース用とオプション機能用の2つのインストーラが連続で実行される場合、オプション機能のインストーラが終了した後にベースのインストーラでショートカットを作成できるようになる。従って、インストーラの構成に関わらず、ショートカット作成のタイミングが一律してインストール処理の最後に実施されるようになり、ユーザがインストール中にショートカットからアプリケーションソフトウェアを起動することがなくなる。その結果、インストール中におけるアプリケーションソフトウェアの起動操作を抑止することができるようになる。
[実施例3におけるインストーラの処理]
実施例3では、第二のインストーラ210が単体実行される場合における課題の解決手法を説明する。なお、実施例3では第二のインストーラ210をサービスパックのインストーラとして扱う。
実施例3における課題を説明する。事前にベースのアプリケーションソフトウェアがインストールされている状態では、OSのデスクトップ画面上にショートカットが作成済みになっている。この状態でサービスパックのインストールのみを単体で実行した場合、ユーザはサービスパックのインストーラ実行中にOSのデスクトップ画面上に存在するショートカットから容易にアプリケーションソフトウェアが起動できる。そのため、実施例1や実施例2の課題と同様にサービスパックのインストーラを単体で実行する場合、サービスパックのインストールが完了する前にユーザがアプリケーションソフトウェアを起動してしまう可能性がある。
実施例3では、前述の課題を解決するためのショートカット存在の有無に応じたショートカット作成手法について説明する。
[実施例3における各インストーラの処理]
図6は、サービスパックのインストーラ210の処理の流れを示すフローチャートである。図1の情報処理装置100上で動作するインストーラ210を例に処理の流れを説明する。本フローでは、インストーラにおけるショートカット存在の有無に応じたショートカット作成処理を実施する手法を示す。
インストーラ210は起動処理が開始されると、S3001にて、制御部212はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットが存在するかを判定する。はい(存在する)の場合、S3002へ進み、いいえ(存在しない)の場合、S3003へ進む。
次に、S3002にて、制御部212はOSのデスクトップ画面上に存在するアプリケーションソフトウェアのショートカットを削除する。
次に、S3003にて、制御部212はベースに対して適用可能なサービスパックのアプリケーションソフトウェアをインストールする。S3003で実行されるインストール処理は、アプリケーションソフトウェアのファイルコピーやレジストリ登録の処理であり、ショートカット作成の処理を含まないものとする。
次に、S3004にて、制御部212はOSのデスクトップ画面上にアプリケーションソフトウェアのショートカットを作成し、インストーラ210の処理を終了する。
なお、S3002でショートカットを削除するのではなく、アプリケーションを起動できないことを示すようなショートカットの表示に一時的に変更しても良い。
また、実施例3におけるインストーラ210は、サービスパックのインストーラに限ったものとしない。また、実施例3におけるソフトウェア構成は、情報処理装置100には第一のインストーラ200を含まずに、第二のインストーラ210のみを含んでもよい(不図示)。
以上、ショートカット存在の有無に応じたショートカット作成手法について説明した。これにより、サービスパックのインストーラが単体で実行された場合、サービスパックのインストール中はショートカットが削除され、インストール処理の最後にショートカットが作成されるようになる。そのため、ユーザがサービスパックのインストール中にショートカットからアプリケーションソフトウェアを起動することがなくなる。その結果、インストール中におけるアプリケーションソフトウェアの起動操作を抑止することができるようになる。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1つ以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の1つである。また、そのプログラムは、ネットワークまたは各種記憶媒体を介してシステムあるいは装置に供給され、そのシステムあるいは装置の1つ以上のコンピューター(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の1つとして、さらにそのプログラム自体、あるいは当該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。

Claims (7)

  1. アプリケーションソフトウェアを情報処理装置にインストールするためのプログラムであって、
    前記アプリケーションのベース機能を前記情報処理装置にインストールする第1のインストール処理を実行する第1のインストール手段有し、
    前記第1のインストール手段は、
    前記第1のインストール手段によって前記情報処理装置にインストールされた前記アプリケーションをアップデートするための未実行の第2のインストール処理が存在する場合、前記第2のインストール処理を実行する第2のインストール手段に対して前記第2のインストール処理を実行するように指示し、第1のインストール処理が完了していたとしても前記第2のインストール処理が完了するまでは前記アプリケーションのショートカットを作成せず、
    未実行の第2のインストール処理が存在しない場合、前記第1のインストール処理が完了すると前記アプリケーションのショートカットを作成することを特徴とするプログラム。
  2. 前記プログラムは、
    未実行である前記第2のインストール処理が存在するかどうかを判定する第1の判定手段を更に有し、
    前記第1の判定手段は、
    前記情報処理装置のOSによって管理されたレジストリ情報に、前記第2のインストール手段を識別する識別情報が存在する場合に、未実行である前記第2のインストール処理が存在すると判定することを特徴とする請求項1に記載のプログラム。
  3. 前記プログラムは、
    前記第2のインストール手段によって前記アプリケーションがアップデートされた後、
    前記ショートカットが存在するかを判定する第2の判定手段を更に有し、
    前記第2の判定手段によって前記ショートカットが存在すると判定された場合は、
    前記ショートカットを作成することなく処理を終了することを特徴とする請求項1または2に記載のプログラム。
  4. アプリケーションソフトウェアをインストール可能な情報処理装置であって、
    前記アプリケーションのベース機能を前記情報処理装置にインストールする第1のインストール処理を実行する第1のインストール手段有し、
    前記第1のインストール手段は、
    前記第1のインストール手段によって前記情報処理装置にインストールされた前記アプリケーションをアップデートするための未実行の第2のインストール処理が存在する場合、前記第2のインストール処理を実行する第2のインストール手段に対して前記第2のインストール処理を実行するように指示し、第1のインストール処理が完了していたとしても前記第2のインストール処理が完了するまでは前記アプリケーションのショートカットを作成せず、
    未実行の第2のインストール処理が存在しない場合、前記第1のインストール処理が完了すると前記アプリケーションのショートカットを作成することを特徴とする情報処理装置。
  5. 前記情報処理装置は、
    未実行である前記第2のインストール処理が存在するかどうかを判定する第1の判定手段を更に有し、
    前記第1の判定手段は、
    前記情報処理装置のOSによって管理されたレジストリ情報に、前記第2のインストール手段を識別する識別情報が存在する場合に、未実行である前記第2のインストール処理が存在すると判定することを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置は、
    前記第2のインストール手段によって前記アプリケーションがアップデートされた後、
    前記ショートカットが存在するかを判定する第2の判定手段を更に有し、
    前記第2の判定手段によって前記ショートカットが存在すると判定された場合は、
    前記ショートカットを作成することなく処理を終了することを特徴とする請求項4または5に記載のプログラム。
  7. アプリケーションソフトウェアをインストール可能な情報処理装置の制御方法であって、
    前記アプリケーションのベース機能を前記情報処理装置にインストールする第1のインストール処理を実行する第1のインストールステップ有し、
    前記第1のインストールステップは、
    前記第1のインストールステップによって前記情報処理装置にインストールされた前記アプリケーションをアップデートするための未実行の第2のインストール処理が存在する場合、前記第2のインストール処理を実行する第2のインストールステップに対して前記第2のインストール処理を実行するように指示し、第1のインストール処理が完了していたとしても前記第2のインストール処理が完了するまでは前記アプリケーションのショートカットを作成せず、
    未実行の第2のインストール処理が存在しない場合、前記第1のインストール処理が完了すると前記アプリケーションのショートカットを作成することを特徴とする情報処理装置の制御方法。
JP2017171179A 2017-09-06 2017-09-06 プログラム、情報処理装置、及び制御方法 Active JP7013176B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017171179A JP7013176B2 (ja) 2017-09-06 2017-09-06 プログラム、情報処理装置、及び制御方法
US16/027,105 US11023216B2 (en) 2017-09-06 2018-07-03 Storage medium, information processing apparatus, and control method
JP2022002549A JP7289940B2 (ja) 2017-09-06 2022-01-11 プログラムのセット、記憶媒体、及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017171179A JP7013176B2 (ja) 2017-09-06 2017-09-06 プログラム、情報処理装置、及び制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022002549A Division JP7289940B2 (ja) 2017-09-06 2022-01-11 プログラムのセット、記憶媒体、及び情報処理方法

Publications (3)

Publication Number Publication Date
JP2019046360A JP2019046360A (ja) 2019-03-22
JP2019046360A5 JP2019046360A5 (ja) 2020-09-17
JP7013176B2 true JP7013176B2 (ja) 2022-01-31

Family

ID=65518756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017171179A Active JP7013176B2 (ja) 2017-09-06 2017-09-06 プログラム、情報処理装置、及び制御方法

Country Status (2)

Country Link
US (1) US11023216B2 (ja)
JP (1) JP7013176B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7395962B2 (ja) * 2019-10-31 2023-12-12 株式会社リコー 情報処理装置、更新制御方法、更新制御プログラム、及び情報処理システム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013214247A (ja) 2012-04-03 2013-10-17 Canon Inc 情報処理装置、制御方法、およびプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397381B1 (en) * 1998-09-21 2002-05-28 Microsoft Corporation System and method for repairing a damaged application program
US6735766B1 (en) * 1999-03-03 2004-05-11 Microsoft Corporation Method and computer-readable medium for installing an upgrade to an application program
JP2004227080A (ja) * 2003-01-20 2004-08-12 Nec Corp 情報処理システム、携帯端末、及び、情報処理サーバ
US7818734B2 (en) * 2005-01-21 2010-10-19 Callwave, Inc. Methods and systems for transferring data over a network
US8286159B2 (en) * 2005-12-22 2012-10-09 Alan Joshua Shapiro Method and apparatus for gryphing a data storage medium
US8261253B2 (en) * 2006-01-25 2012-09-04 The Boeing Company Method for restoring software applications on desktop computers
US8869142B2 (en) * 2006-01-27 2014-10-21 Microsoft Corporation Secure content publishing and distribution
US7861241B2 (en) * 2006-02-09 2010-12-28 Canon Kabushiki Kaisha Install apparatus, install method, program, and storage medium
US7890930B2 (en) * 2006-12-11 2011-02-15 International Business Machines Corporation Method and system for allowing an eclipse feature to create/remove/update program groups and shortcuts, via an eclipse install handler
JP2010182116A (ja) * 2009-02-05 2010-08-19 Ricoh Co Ltd サーバ装置及びドライバパッケージ生成プログラム
JP2011186969A (ja) * 2010-03-11 2011-09-22 Canon Inc 情報処理装置、情報処理装置の制御方法、インストール方法及びコンピュータプログラム
JP2012048410A (ja) 2010-08-25 2012-03-08 Nec Corp ソフトウェアインストールシステム、ソフトウェアインストール方法
US8918780B2 (en) * 2013-03-14 2014-12-23 International Business Machines Corporation Automatic quality assurance for software installers
CN104156236A (zh) * 2014-07-23 2014-11-19 小米科技有限责任公司 节省存储空间的方法和装置
US10277688B2 (en) * 2017-01-04 2019-04-30 Microsoft Technology Licensing, Llc Automatic installation activation selection for hosted services
WO2019032040A1 (en) * 2017-08-07 2019-02-14 Zmijewski Peter Marek SYSTEM AND METHOD FOR ACCESSING DIGITAL CONTENT ON A PERSONAL COMPUTER

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013214247A (ja) 2012-04-03 2013-10-17 Canon Inc 情報処理装置、制御方法、およびプログラム

Also Published As

Publication number Publication date
JP2019046360A (ja) 2019-03-22
US11023216B2 (en) 2021-06-01
US20190073204A1 (en) 2019-03-07

Similar Documents

Publication Publication Date Title
US5953532A (en) Installation and deinstallation of application programs
US7293170B2 (en) Changing the personality of a device by intercepting requests for personality information
CN102216905A (zh) 应用还原点
JP2001508575A (ja) ソフトウェア更新マネージャ
US10558405B2 (en) Information processing apparatus and driver customizing method
JP2008234673A (ja) モバイル・デバイスのアプリケーション・インストール管理システムおよび方法
US20060036569A1 (en) Method and apparatus for changing background screen in gui operating system
JP2007272763A (ja) モジュールインストール方法及び装置
EP3115917B1 (en) Information processing apparatus, method, and program
JP3715478B2 (ja) インストレーション回復システム用装置および方法
JP2018072948A (ja) 情報処理システム、更新方法、情報処理装置及びプログラム
US10514940B2 (en) Virtual application package reconstruction
JP7013176B2 (ja) プログラム、情報処理装置、及び制御方法
JP7289940B2 (ja) プログラムのセット、記憶媒体、及び情報処理方法
US20160313958A1 (en) Cross-platform command extensibility
JP2008077600A (ja) シンクライアント、シンクライアントシステム、及びプログラム
US20130111344A1 (en) Help creation support apparatus, help creation method, and storage medium storing help creation program
JP2013003730A (ja) 設定情報管理プログラム、設定情報管理方法及び情報処理装置
US20030028868A1 (en) Information processor, method for processing information and computer-readable recording medium recorded with program code for controlling a computer to process information
US7702890B2 (en) Information processing apparatus and program
Stein Unix survival guide
JP2003330719A (ja) アプリケーションのバージョン/リリースコントロール方法及びシステム、クライアントpcにインストールするアプリケーションのバージョン/リリースコントロールを行なうためのコンピュータソフトウエアプログラム
JP5443231B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5696474B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2001249801A (ja) ソフトウエアインストール装置、及び、記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220119