(57)【特許請求の範囲】
【請求項１】
ウインドウに関連付けられているウインドウ情報を、定期的にまたはウインドウ情報が変更されるたびに、取得するウインドウ情報取得手段と、
前記ウインドウ情報取得手段によってウインドウ情報が取得されると、当該ウインドウ情報に含まれるクラス名を抽出し、当該クラス名が予め登録されているクラス名であれば、メッセージ情報を取得するメッセージ情報取得手段と、
前記メッセージ情報取得手段にて取得されたメッセージを記録する履歴記録手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記ウインドウ情報取得手段は、メーラーが発行するウインドウメッセージからグローバルフックによって、前記ウインドウ情報を取得し、
前記メッセージ情報取得手段は、メッセージング機能から該メッセージ情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メッセージ情報は、メール情報であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
さらに、
前記情報処理装置を操作しているユーザの識別情報または当該情報処理装置の識別情報をオペレーティングシステムから取得する識別情報取得手段を備え、
前記履歴記録手段は、前記ウインドウ情報と、前記メッセージ情報と、前記識別情報取得手段により取得された識別情報とを関連付けて前記ユーザの操作履歴とすることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記履歴記録手段は、前記情報処理装置が備える記憶装置またはネットワーク上のサーバに前記操作履歴として記録する請求項４に記載の情報処理装置。
【請求項６】
ウインドウに関連付けられているウインドウ情報を、定期的にまたはウインドウ情報が変更されるたびに、取得するウインドウ情報取得工程と、
前記ウインドウ情報取得工程によってウインドウ情報が取得されると、当該ウインドウ情報に含まれるクラス名を抽出し、当該クラス名が予め登録されているクラス名であれば、メッセージ情報を取得するメッセージ情報取得工程と、
前記メッセージ情報取得工程にて取得されたメッセージを記録する履歴記録工程と
を備えたことを特徴とする情報処理方法。
【請求項７】
情報処理装置において実行されるコンピュータプログラムであって、
ウインドウに関連付けられているウインドウ情報を、定期的にまたはウインドウ情報が変更されるたびに、取得するウインドウ情報取得手段と、
前記ウインドウ情報取得手段によってウインドウ情報が取得されると、当該ウインドウ情報に含まれるクラス名を抽出し、当該クラス名が予め登録されているクラス名であれば、メッセージ情報を取得するメッセージ情報取得手段と、
前記メッセージ情報取得手段にて取得されたメッセージを記録する履歴記録手段と
を備えたことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびコンピュータプログラムに関する。
【背景技術】
【０００２】
企業、学校および行政機関においてコンピュータは広く普及し、そのコンピュータがインターネットに接続されていることも今や普通である。インターネットに接続されたコンピュータが普及したことで、会社員、教師、生徒および公務員などのユーザが、それぞれ独自にネットワークにアクセスしている。そこで、これらのユーザがネットワークを介してどのような情報をやりとりしているのかを把握するため、コンピュータ操作ログ(業務履歴)を収集するアプリケーションが提案されている。取得された業務履歴は、コンピュータを使用するユーザがどのような業務を行っているかを分析するために役立つ(業務分析)。また、コンピュータから情報が漏洩した場合などには、その漏洩経路を特定するために役立つ(経路特定)。
【０００３】
業務履歴を作成するために、ネットワークを通過するパケットをキャプチャして解析するネットワーク監視装置が提案されている（特許文献１）。しかしながら、ネットワークを通過するパケットをキャプチャニングして解析する方法では、アクセス時に発生したパケット情報がＳＳＬ等により暗号化されている場合（ＨＴＴＰＳやＳＭＴＰＳ等）、パケット情報から業務分析や経路特定を行うことができない。
【０００４】
そこで、ウインドウ画面に表示される暗号化されていない情報から、アクセス先（ＵＲＬ、メール送信先等）を取得する発明が提案されている（特許文献２）。通常、ウインドウ画面に表示されている情報を取得する場合、グローバルフックを用いてウインドウメッセージを監視し、ウインドウメッセージに含まれているテキスト情報を取得している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２１７８５１号公報
【特許文献２】特開２０１３−１６１２４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献２では、ウインドウ画面には表示されない情報について、業務分析や経路特定をすることができない。すなわち、特許文献２では、業務分析や経路特定を行うための操作履歴（業務履歴）を取得することができなかった。
【０００７】
そこで、本発明は、従来よりも正確に操作履歴を取得する事を目的とする。
【課題を解決するための手段】
【０００８】
本発明によれば、ウインドウに関連付けられているウインドウ情報を、定期的にまたはウインドウ情報が変更されるたびに、取得するウインドウ情報取得手段と、前記ウインドウ情報取得手段によってウインドウ情報が取得されると、当該ウインドウ情報に含まれるクラス名を抽出し、当該クラス名が予め登録されているクラス名であれば、メッセージ情報を取得するメッセージ情報取得手段と、前記メッセージ情報取得手段にて取得されたメッセージを記録する履歴記録手段とを備えたことを特徴とする情報処理装置が提供される。
【発明の効果】
【０００９】
本発明によれば、従来よりも正確に操作履歴を取得することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態における情報処理装置と履歴情報を収集するサーバ装置とを含むシステムのハードウェア構成を示す図である。
【図２】ＯＳとスレッド間のウインドウメッセージの流れを示す図である。
【図３】グローバルフックがウインドウメッセージをインターセプトしていることを示す図である。
【図４】メーラーのユーザインタフェースの一例を示す図である。
【図５】業務履歴データの取得方法を示すフローチャートである。
【図６】業務履歴データの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。ただし、この実
施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに
限定する趣旨のものではない。また、実施形態で説明されている特徴の組み合わせの全て
が発明の解決手段に必須のものとは限らない。なお、以下の説明では、メーラーの操作履歴を取得することについて説明するが、メーラーに限定されず、ウインドウを表示するものであれば、その他のアプリケーションでもよい。
【００１２】
図１は、情報処理装置と履歴情報を収集するサーバ装置とを含む業務履歴取得システムの一例を示す図である。情報処理装置１０は、たとえば、企業、学校、行政機関または家庭などに設置され、ユーザの業務履歴（操作履歴ないしは閲覧履歴）を取得するコンピュータの一例である。サーバ装置４０は、複数の情報処理装置１０から業務履歴データ１９を取得して、データベース化したり、業務分析したりするコンピュータである。なお、サーバ装置４０は、オプションであり、必ずしも必要ではない。情報処理装置１０は、インターネットやイントラネットなどのネットワーク１００を介してサーバ装置４０やＳＭＴＰサーバなどと接続されている。なお、情報処理装置１０とサーバ装置４０は簡潔化のために１台ずつ示されているが、実際には複数であってもよい。
【００１３】
なお、業務履歴取得システムは、シンクライアント（例えば、ターミナルサービスなど）を利用した構成でもよい。シンクライアントとは、情報処理装置がサーバ装置にリモート接続し、サーバ装置上に生成された仮想デスクトップ環境を利用してサーバ装置上でアプリケーションプログラムを実行できるようにするシステムである。
【００１４】
情報処理装置１０は、オフィス（企業、学校および行政機関）や家庭などに配置されるパーソナルコンピュータなどの情報処理装置である。情報処理装置１０では、記憶装置１５に記憶されているソフトウエアにしたがってＣＰＵ１１が各種手段として機能する。記憶装置１５は、ハードディスクドライブ（ＨＤＤ）やＳＳＤなどである。メモリ１３は、ＲＡＭやＲＯＭなどを含む。ＲＯＭには、ＢＩＯＳなどのブートプログラムが記憶されている。ブートプログラムにしたがって、オペレーティングシステム（ＯＳ）が起動され、さらにＯＳにしたがって、各種の常駐プログラム（履歴記録プログラム１８など）が起動される。ＲＡＭは、ワークエリアとして機能する。ネットワークインターフェース１４は、ネットワーク１００を通じて他のコンピュータと通信するための通信回路である。ＣＰＵ１１およびネットワークインターフェース１４は、情報をサーバ装置から受信する受信手段や情報をサーバ装置に送信する送信手段として機能する。記憶装置１５は、メーラー１７だけでなく、ＯＳ操作(業務履歴）を記録する履歴記録プログラム１８、業務履歴である業務履歴データ１９などを記憶する。
【００１５】
履歴記録プログラム１８は、たとえば、後述するように、グローバルフックを用いてウインドウメッセージを監視し、ウインドウメッセージに含まれているウインドウ情報と、メッセージング機能から取得されるメッセージ情報とを用いて、現在ユーザが閲覧しているメール情報を業務履歴データ１９として記憶装置１５に書き込むコンピュータプログラムである。なお、履歴記録プログラム１８は、業務履歴データ１９をサーバ装置４０に送信してもよい。
【００１６】
ＯＳとしては、一例として、Ｗｉｎｄｏｗｓ（登録商標）について説明するが、ＭａｃＯＳ（登録商標）、Ｌｉｎｕｘ（登録商標）、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）などであってもよい。これらのＯＳでも、システムフック、動的バインド、イベントのディスパッチなど、グローバルフックと呼べるような機能をサポートしているからである。また、メッセージング機能はＯＳに依存するものではない。メッセージング機能の一例としては、ＭＡＰＩ（Ｍｅｓｓａｇｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）などが挙げられる。
【００１７】
記憶装置１５には、プロセス名リスト、クラス名リストも記憶されている。プロセス名リストは、閲覧履歴（ログ）の取得対象となるプロセスの名称を掲載したリストである。このプロセスとしては、たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ（登録商標）、Ｏｕｔｌｏｏｋ  Ｅｘｐｒｅｓｓ、Ｍｉｃｒｏｓｏｆｔ  Ｅｎｔｏｕｒａｇｅ（登録商標）など、メーラーを示すプロセスの名称が登録されている。クラス名リストは、閲覧履歴（ログ）の取得対象となるクラスの名称を掲載したリストである。このクラスとしては、たとえば、ｒｃｔｒｌ_ｒｅｎｗｎｄ３２、ＲＩＣＨＥＤＩＴ２０ＷＰＴなど、メーラーのタイプを示すクラスの名称が登録されている。
【００１８】
ＣＰＵ１１は、プロセスの動作を監視する。入力部１６は、ポインティングデバイス（マウスやタッチパネル）やキーボードなどである。キーボードはソフトウエアキーボードであってもよい。また、入力部１６は、入力された操作者の音声を音声認識機能により認識してＣＰＵ１１へ指示を入力する音声認識入力部であってもよい。表示装置１２は、情報を表示するためのユーザインタフェースである。ＣＰＵ１１および表示装置１２は、受信手段により受信された情報を表示する表示手段として機能する。
【００１９】
サーバ装置４０の記憶装置４５は、ハードディスクドライブ（ＨＤＤ）やＳＳＤなどであり、サーバプログラム４７を記憶している。メモリ４３は、ＲＡＭやＲＯＭなどを含む。ＣＰＵ４１は、サーバプログラム４７をＲＡＭにロードし、複数の情報処理装置１０から業務履歴データ１９を取得して、データベース化したり、業務分析したりする。ＣＰＵ４１は、複数の情報処理装置１０から業務履歴データ１９を業務履歴データ４８として記憶装置４５に記憶する。ネットワークインターフェース４４は、ネットワーク１００を通じて他のコンピュータと通信するための通信回路である。
【００２０】
ＣＰＵ１１は、履歴記録プログラム１８にしたがって、ウインドウに関連付けられているウインドウ情報（たとえば、プロセス名、クラス名）が、定期的にまたはウインドウ情報が変更されるたびに取得し、取得したウインドウ情報に基づいてメッセージング機能を用いてメッセージ情報（たとえば、件名など）のメール情報を取得する。
なお、ウインドウに関連付けられている（ウインドウに表示されている）ウインドウ情報を取得する方法としては、たとえば、ウインドウ情報が変更されるたびに発行されるウインドウメッセージをグローバルフックによって取得し、ウインドウメッセージからウインドウ情報を抽出する方法や、定期的にクライアントのウインドウからウインドウ情報を取得する方法などがある。
以下では、ウインドウ情報を取得するタイミングはグローバルフックを用いて、メール情報（メッセージ情報）の取得はメッセージング機能を用いて説明する。
【００２１】
図２は、ＯＳとスレッド間におけるウインドウメッセージの一般的な流れを示す図である。オペレーティングシステム２１は、任意のプロセスのＷｉｎｄｏｗＰｒｏｃｅｄｕｒｅを持つ任意のスレッドに対して、ウインドウメッセージ２３を発行することができる。
【００２２】
図３は、グローバルフックが起動した場合のＯＳとスレッドとの関係を示している。ユーザからの入力が入力部１６にあると、オペレーティングシステム２１は、ウインドウメッセージ２３をスレッド２２へ発行する。グローバルフック２４は、オペレーティングシステム２１からスレッド２２へ発行されるウインドウメッセージ２３をインターセプトできる機能である。ここではＯＳからスレッド方向への命令をインターセプトしているが、スレッドからＯＳへの返答もインターセプト可能である。メーラー１７が備える複数のウインドウのうち、ユーザによって任意のウインドウがアクティブに切り替えられると、このウインドウを表示するためにウインドウメッセージ２３（ＷＭ＿ＡＣＴＩＶＡＴＥ、ＷＭ＿ＮＣＡＣＴＩＶＡＴＥ等）をメーラー１７がオペレーティングシステム２１に発行する。オペレーティングシステム２１は、ウインドウメッセージ２３に含まれるウインドウ情報をウインドウに設定し、アクティブなウインドウを切り替える。これにより、メーラー１７は、ウインドウ情報をウインドウに表示する。ウインドウメッセージ２３には、このウインドウ情報が含まれている。そこで、ＣＰＵ１１は、グローバルフック２４によって、ウインドウ情報を含んでいるウインドウメッセージ２３をインターセプトすることで、アクティブなウインドウに関連付けられているウインドウ情報を取得できる。
【００２３】
図４は、メーラーのユーザインタフェースの一例を示す図である。メーラーのユーザインタフェースには、複数のタイプ（図４（Ａ）〜（Ｃ））があり、詳しくは後述するが、タイプはウインドウ情報に含まれるクラス名から判断される。
【００２４】
メーラー１７のウインドウ３０には、メールフォルダを表示する表示領域３２、メール情報概略を表示する表示領域３３、メール詳細情報を表示する表示領域３４が設けられている。メール詳細情報３４は、メール情報概略３３から特定のメール情報を選択することで表示される。また、メール詳細情報３４は、ウインドウ３０とは異なる別のウインドウ３１でも表示可能である。  
【００２５】
図４（Ａ）は、ユーザが入力部１６のポインティングデバイス３５を操作して、メール情報概略３３を選択した時に、メール詳細情報３４が表示された時のメーラーのユーザインタフェースを示している。履歴記録プログラム１８は、このメール詳細情報３４の切り替えの際に発行されるウインドウメッセージ２３に基づいて、メッセージング機能を用いてメール情報を取得し、ユーザが閲覧した業務履歴として記録する。
【００２６】
図４（Ｂ）は、ユーザが入力部１６のポインティングデバイス３５を操作して、メール情報概略３３を選択した時の、メーラーのユーザインタフェースを示している。メールの詳細情報３４を閲覧したい場合は、メール情報概略３３を選択して、図４（Ｃ）のように別ウインドウ３１で表示させる。図４（Ｂ）は、メール詳細情報３４が表示されていない。つまり、ユーザが閲覧した業務履歴として記録する必要がないので、メール情報概略３３を選択した際に発行されるウインドウメッセージ２３に基づいて、メッセージング機能を用いてメール情報を取得する必要がない。
【００２７】
図４（Ｃ）は、図４（Ａ）ないし図４（Ｂ）で、ユーザが入力部１６のポインティングデバイス３５を操作してメールの詳細情報３４を別ウインドウ３１で表示した時のメーラーのユーザインタフェースを示している。履歴記録プログラム１８は、別ウインドウ３１がアクティブとなり、別ウインドウ３１に表示されているメール詳細情報３４に対して発行されるウインドウメッセージ２３に基づいて、メッセージング機能を用いてメール情報を取得し、ユーザが閲覧した業務履歴として記録する。
【００２８】
従って、メール詳細情報３４をユーザが閲覧している場合（図４（Ａ）、図４（Ｃ））にメール情報を取得することができるので、実際にユーザが閲覧したメールの業務履歴情報（操作履歴情報）を取得することができる。
【００２９】
図５は、本実施形態にかかる業務履歴情報を記録する方法を示すフローチャートである。ここでは、履歴記録プログラム１８にしたがって、ＣＰＵ１１が業務履歴記録方法を実行する。
【００３０】
Ｓ５０１で、ＣＰＵ１１は、グローバルフックにより、ウインドウメッセージをインターセプトする。メーラー１７は、たとえば、メール詳細情報３４を表示するために、ウインドウメッセージ２３（ＷＭ＿ＳＥＴＴＥＸＴ、ＷＭ＿ＡＣＴＩＶＡＴＥ、ＷＭ＿ＮＣＡＣＴＩＶＡＴＥ等）をメール詳細情報３４のウインドウに送信し、メール詳細情報３４に宛先をセットする。グローバルフック２４はいかなるウインドウメッセージ２３でもインターセプトできる。そこで、メーラー１７に対してグローバルフック２４を設定する。ＣＰＵ１１は、メーラー１７が備えるすべてのウインドウ３０に対するウインドウメッセージ２３（ＷＭ＿ＳＥＴＴＥＸＴ等）をインターセプトする。なお、ウインドウ情報の取得は、ウインドウメッセージをインターセプトすることに限定されず、ウインドウに対して分析プログラムが定期的に確認を行い、変化に気づく等の手段でもよい。また、これらはウインドウ３０全体でなく、ウインドウ３０内の一部に対して行ってもよい。
【００３１】
Ｓ５０２で、ＣＰＵ１１は、ウインドウメッセージ２３からウインドウに関連付けられているウインドウ情報を抽出する。ウインドウ情報には、ウインドウメッセージ２３を発行したプロセスの名称（プロセス名）、ウインドウ３０に表示されている文字列、各ウインドウを区別するためにプロセスが割り当てた識別情報（ＩＤ）、オブジェクトのクラス名（ｒｃｔｒｌ_ｒｅｎｗｎｄ３２、ＲＩＣＨＥＤＩＴ２０ＷＰＴ等）などが含まれている。
このように、ＣＰＵ１１は、ウインドウに関連付けられているウインドウ情報を取得するウインドウ情報取得手段として機能する。
【００３２】
Ｓ５０３で、ＣＰＵ１１は、ウインドウ情報からプロセス名を抽出する。なお、記憶装置１５には、あらかじめそれぞれ異なるメーラー１７のプロセス名が登録されたプロセス名リストを記憶している。メーラー１７のプロセス名としては、一般的に普及しているものを対象とすればよいが、管理者によって追加されてもよい。たとえば、グローバルフックでは分析に必要な情報（例えば、件名）が取得できないプロセス名を記憶させてもよい。
【００３３】
Ｓ５０４で、ＣＰＵ１１は、取得したプロセス名が、プロセス名リストに登録されているプロセス名と一致するかどうかを判定する。一致しなければ、インターセプトしたウインドウメッセージ２３（ＷＭ＿ＳＥＴＴＥＸＴ等）は、メーラー１７とは異なる他のプロセスが発行したウインドウメッセージ２３である。よって、業務履歴として記録せずに、本処理を終了する（履歴記録プログラム１８が実行されているかぎり、Ｓ５０１ないしＳ５０７は繰り返し実行される）。一方で、取得したプロセス名が、プロセス名リストに登録されているプロセス名と一致すれば、Ｓ５０５に進む。
【００３４】
なお、ウインドウメッセージ２３を識別する方法としては、たとえば、各プロセスによってウインドウごとに付与されているＩＤを用いて識別することも可能である。具体的には、ウインドウメッセージ２３を示すＩＤをプロセスごとに記憶装置１５に記憶しておき、取得したウインドウ情報に含まれているＩＤと、記憶装置１５に記憶されているＩＤが一致するか否かをＣＰＵ１１が判定することで、ウインドウメッセージ２３を識別してもよい。
【００３５】
また、ウインドウ３０内におけるメーラーの位置情報をあらかじめ記憶装置１５に記憶しておき、ウインドウメッセージ２３が発行されたウインドウの位置情報と、記憶装置１５に記憶されている位置情報とが一致するかどうかをＣＰＵ１１が判定することで、ウインドウメッセージを識別してもよい。
【００３６】
Ｓ５０５で、ＣＰＵ１１は、取得したウインドウ情報からクラス名を抽出し、クラス名リストに登録されているクラス名と一致するかどうかを判定する。一致しなければ、インターセプトしたウインドウメッセージ２３（ＷＭ＿ＳＥＴＴＥＸＴ等）は、メール詳細情報３４とは異なる情報（たとえば、メール情報概略３３）を閲覧したウインドウメッセージ２３である。よって、業務履歴として記録せずに、本処理を終了する（履歴記録プログラム１８が実行されているかぎり、Ｓ５０１ないしＳ５０７は繰り返し実行される）。一方で、取得したクラス名が、クラス名リストに登録されているクラス名と一致すれば、Ｓ５０６に進む。なお、記憶装置１５には、あらかじめそれぞれ異なるクラス名が登録されたクラス名リストを記憶している。クラス名としては、一般的に普及しているものを対象とすればよいが、管理者によって追加されてもよい。
【００３７】
Ｓ５０６で、ＣＰＵ１１は、メッセージング機能からメール情報（メッセージ情報）を取得する。
メッセージング機能を用いてメール情報を取得する方法としては、たとえば、ＭＡＰＩの場合、取得したウインドウ情報からアクティブになっている情報をＭＡＰＩにリクエストし、メール情報を取得する。メール情報には、日時、差出人、あて先、件名、メッセージＩＤ、添付ファイル名などが含まれている。このように、ＣＰＵ１１は、メッセージング機能からメッセージ情報を取得するメッセージ情報取得手段として機能する。
【００３８】
Ｓ５０７で、ＣＰＵ１１は、ユーザ名やＰＣ名をオペレーティングシステムから取得するとともに、現在日時を閲覧開始日時として取得し、取得したメール情報とともに業務履歴データ１９を作成し、記憶装置１５に記憶する。なお、業務履歴データ１９を作成する際に、取得したメール情報（たとえば、件名）があらかじめ登録されている情報（たとえば、件名がＮｕｌｌではない）と一致するかどうかを判定し、一致した場合のみ業務履歴データ１９を作成してもよい。具体的には、アプリケーションによっては、メール詳細情報の表示領域３４がメール詳細情報とは異なるスケジュール情報の場合がある。その際は、ユーザが閲覧した業務履歴として記録する必要がないので、たとえば、メール情報に件名があるかどうかを判定し、件名がある場合のみ業務履歴データ１９を作成する。
【００３９】
ユーザ名は、たとえば、オペレーティングシステムに対するユーザＩＤなどである。ＰＣ名は、たとえば、各情報処理装置に付与されているコンピュータ名である。このように、ＣＰＵ１１は、情報処理装置を操作しているユーザの識別情報または当該情報処理装置の識別情報をオペレーティングシステムから取得する識別情報取得手段として機能する。
また、ＣＰＵ１１は、ウインドウ情報取得手段により取得されたウインドウ情報と、メッセージ情報取得手段により取得されたメッセージ情報と、識別情報取得手段により取得された識別情報とを関連付けてユーザの業務履歴として記録する履歴記録手段として機能する。
【００４０】
図６は、業務履歴データ１９の一例を示している。ユーザ名は、情報処理装置を操作しているユーザの識別情報である。情報処理装置の識別情報であるＰＣ名が業務履歴データ１９に記録されてもよい。メール閲覧開始日時は、ウインドウ情報または、メッセージング機能を用いてメール詳細情報３４から取得されたメール情報に対応したメールを閲覧した日時のデータである。差出人、宛先、件名、メール送信日時、メッセージＩＤ、添付ファイル名は、メッセージング機能を用いて取得されたメール情報である。なお、ウインドウ情報から同様の情報が取得できるのであれば、メッセージング機能を用いて取得されたメール情報に限定されず、取得されたウインドウ情報から業務履歴データ１９に記録されてもよい。
【００４１】
なお、ＣＰＵ１１は、業務履歴データ１９をサーバ装置４０に送信してもよい。また、ＣＰＵ１１は、ネットワーク上のサーバ装置４０に業務履歴データを送信して記録してもよい。
【００４２】
本実施形態によれば、ＣＰＵ１１は、履歴記録プログラム１８を実行することで、メーラー１７のウインドウに関連付けられるウインドウ情報が取得されると、ウインドウ情報に基づいてメッセージング機能からメール情報を取得し、ユーザの業務履歴として記録する。メール情報は暗号化されていない文字列であり、かつ、パケットキャプチャを使用しなくてもＣＰＵ１１が取得できる。つまり、ＳＭＴＰＳ等のプロトコルを介して受信したメールであっても、本実施形態であれば、メール情報を取得することができる。
【００４３】
また、本実施形態によれば、グローバルフックでは取得できないウインドウ画面に表示されているメール情報を、メッセージング機能を用いて取得することができる。また、ウインドウ画面には表示されないメール情報についても、メッセージング機能を用いて取得することができる。そのため、本実施形態では、従来よりも正確に業務履歴を取得することが可能となる。また、正確な業務履歴を取得することで、従来よりも詳細な業務分析や経路特定を行うことが可能となる。
【００４４】
なお、ＣＰＵ１１は、グローバルフックを使用せずに、ウインドウ情報を取得してもよい。たとえば、ＣＰＵ１１は、メーラー１７のウインドウ３０に含まれるウインドウに表示されているウインドウ情報を定期的に監視することで、ウインドウ情報を取得してもよい。メール詳細情報３４には、アクティブなウインドウに表示されているウインドウ情報が表示されるからである。なお、ウインドウ情報を取得する方法としては、たとえば、ＣＰＵ１１が、ＦｉｎｄＷｉｎｄｏｗでＨＷＮＤを取得し、取得したＨＷＮＤからＧｅｔＷｉｎｄｏｗＴｅｘｔを用いる方法が考えられる。また、ＣＰＵ１１は、メール詳細情報３４の表示位置情報を予めメモリに記憶させておき、表示位置情報をメモリから読み出すことで、メール詳細情報３４を特定し、メール詳細情報３４に表示されているウインドウ情報を取得してもよい。
【００４５】
また、情報を取得する機能は、メーラーに対してのみ実装するものでなく、ウインドウ情報とメッセージング機能からメッセージ情報を取得可能なアプリケーションに対して、同様に実装してもよい。
【００４６】
＜その他＞
業務履歴は、グローバルフックやメッセージング機能から直接的に記憶装置１５に書き出さなくてもよい。たとえば、別のスレッドや別のプロセス等にウインドウ情報やメール情報を転送し、そこから記憶装置１５に書き込んでもよい。
【００４７】
履歴プログラム１８やサーバプログラム４７は、業務履歴データ１９、４８を分析してもよい。たとえば、ＣＰＵ１１やＣＰＵ４１は、メールごとの閲覧時間の合計を算出することで、ユーザにとって閲覧されやすいメールや、閲覧されにくい不要なメールを特定できる。また、コンピュータから情報が漏洩した場合などに、その漏洩経路を特定することができる。また、ウイルスに感染した場合などに、このメールを閲覧した際に感染したなど感染経路を特定することができる。
【００４８】
また、グローバルフックでメール情報が取得できないメーラーに対してＭＡＰＩのようなメッセージング機能を用いてメール情報を取得してもよいし、グローバルフックでメール情報が取得できるメーラーに対してもＭＡＰＩのようなメッセージング機能を用いてメール情報を取得してもよい。
【図１】
0006577775.tif 000002
【図２】
0006577775.tif 000003
【図３】
0006577775.tif 000004
【図４】
0006577775.tif 000005
【図５】
0006577775.tif 000006
【図６】
0006577775.tif 000007