JPH1125095A - 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法 - Google Patents

文字列抽出システム、プログラム記憶媒体及び文字列抽出方法

Info

Publication number
JPH1125095A
JPH1125095A JP9182147A JP18214797A JPH1125095A JP H1125095 A JPH1125095 A JP H1125095A JP 9182147 A JP9182147 A JP 9182147A JP 18214797 A JP18214797 A JP 18214797A JP H1125095 A JPH1125095 A JP H1125095A
Authority
JP
Japan
Prior art keywords
character string
application
subsystem
input
image
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.)
Pending
Application number
JP9182147A
Other languages
English (en)
Inventor
Takaharu Saito
孝春 齋藤
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.)
Techno Craft Co Ltd
Original Assignee
Techno Craft Co Ltd
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 Techno Craft Co Ltd filed Critical Techno Craft Co Ltd
Priority to JP9182147A priority Critical patent/JPH1125095A/ja
Publication of JPH1125095A publication Critical patent/JPH1125095A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複数のサブシステムを備えるオペレーション
システム上で動作し、簡便に任意の文字列を指示でき、
また該文字列を用いて辞書を検索できる文字列抽出シス
テム等を提供することである。 【解決手段】 WWWブラウザ2が表示する文字をマウ
スカーソルで一定時間以上指示すると、リモートスレッ
ド3aがマウスカーソルの位置にドットを描画する。ウ
インドウシステム1はこれを検出し、サブシステム11
aを介し、WWWブラウザ2に当該文字周辺の再表示を
指示する。WWWブラウザ2が出力した文字列情報は、
リモートスレッド3a、メモリ領域121を経て、文字
列抽出DLL3bに供給される。文字列抽出DLL3b
は、サブシステム11bに当該文字列を再度描画させ、
また文字列情報等を辞書検索アプリケーション4に供給
する。これにより、当該文字列より検索対象文字列が抽
出され、その訳語が索出され、サブシステム11bによ
り表示される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、表示画面上に表
示された文字列の中から、指示された単語を抽出して他
のアプリケーションに与えるための文字列抽出システ
ム、該システムを構成するためのプログラムを記憶した
媒体及び文字列抽出方法に関する。
【0002】
【従来の技術】ウィンドウズ95(Windows95〜マイ
クロソフト社商標)及びウィンドウズNT(WindowsNT
〜マイクロソフト社商標)等のウィンドウシステムは、
マルチタスクまたは疑似マルチタスクを実現するオペレ
ーティングシステム(OS)として広く普及しつつあ
る。
【0003】ウィンドウシステム上で動作するアプリケ
ーション(アプリケーションプログラム)は、一般に、
アプリケーションインタフェース(API:applicatio
n program interfece)を用いてウインドウシステムの
各種システム機能を利用する。
【0004】ウィンドウシステムでは、1つのアプリケ
ーションを実行中に他のアプリケーションを実行するこ
とができる。このような機能を有効に活用するアプリケ
ーションとして、例えば、辞書検索アプリケーションが
注目されている。辞書検索アプリケーションは、辞書を
検索することにより、用語の意味、類義語、反対語、日
本語の用字、英語のスペル等を検索し参照することがで
きる。辞書検索アプリケーションを、マルチタスク環境
で使用した場合、辞書検索機能が組み込まれていない他
のアプリケーションの実行中に、辞書検索の結果を参照
することができる。
【0005】
【発明が解決しようとする課題】しかし、従来の辞書検
索アプリケーションで辞書を検索するには、検索したい
用語をクリップボードを介して、他のアプリケーション
から辞書検索アプリケーションに転送したり、入力用の
ウィンドウ内で検索したい用語を入力する必要があっ
た。
【0006】また、辞書検索機能を備えるワードプロセ
ッサアプリケーションも存在する。この場合、辞書を検
索するためには、編集中の文書内の検索したい語句を範
囲指定してから辞書検索機能を起動するか、辞書検索機
能を起動してから検索すべき語句を入力する必要があっ
た。
【0007】このように、従来の辞書検索システムにお
いては、検索対象の文字列(単語)を指示する操作が煩
雑であった。
【0008】同様な問題は、文字列単位でテキストデー
タを処理する種々の場合に発生しており、より簡便に任
意の文字列(単語)を指示できるシステムが望まれてい
る。
【0009】この問題を解決する手法としては、例え
ば、アプリケーションのAPIをフックする手法、すな
わち、アプリケーションがAPIを介して呼び出す処理
の内容を変更することにより、アプリケーションが出力
する情報が、APIが本来呼び出すべき処理以外の処理
に引き渡されるようにする手法が考えられる。具体的に
は、アプリケーションのAPIが文字列出力部を備える
場合、文字列出力部が示すアドレスを書き換えるプログ
ラムを構成する手法が挙げられる。これにより、該プロ
グラムは、アプリケーションが出力する文字列情報を受
信し、受信した文字列情報をオペレーティングシステム
に供給すると共に、受信した文字列情報に含まれる文字
列を抽出する。
【0010】この手法は、OSが、例えばウィンドウズ
(Windows〜マイクロソフト社商標)3.1及びウィン
ドウズ95等、単一のプログラムによってシステム内に
存在する任意のAPIがフックされ得るウィンドウシス
テムである場合は有用である。
【0011】しかし、OSが、例えばウィンドウズNT
のように複数のサブシステムからなり、一つのサブシス
テム上で動作するプログラムによっては、他のサブシス
テム上に存在するAPIをフックすることが許されない
ものである場合は、この手法を用いることが困難であ
る。
【0012】この発明は上記事情に鑑みてなされたもの
で、複数のサブシステムを備えるオペレーションシステ
ム上で動作し、簡便に任意の文字列(単語等)を指示で
き、また該文字列を用いて辞書を検索できる文字列抽出
システム、該文字列抽出システムを構築するためのプロ
グラムを記憶した媒体及び文字列抽出方法を提供するこ
とを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、この発明の第1の観点にかかる文字列抽出システム
は、テキスト出力部を含むアプリケーションインタフェ
ースを備える複数のサブシステムを備えるオペレーティ
ングシステムを実行する手段と、前記サブシステム上で
動作し、前記テキスト出力部を介して前記サブシステム
に文字列を供給することにより該文字列を表示画面上に
表示するアプリケーションを実行する手段と、前記表示
画面上のカーソル位置の画像を無効化することにより、
前記アプリケーションに再表示用の文字列を出力させる
画像無効化手段と、前記アプリケーションが出力した前
記再表示用の文字列を入力すると共に、前記再表示用の
文字列を前記テキスト出力部を介して前記サブシステム
に供給することにより、前記再表示用の文字列を再表示
する入力手段と、前記入力手段が入力した前記再表示用
の文字列を記憶する記憶手段とを備える、ことを特徴と
する。
【0014】また、この発明の第2の観点にかかる文字
列抽出システムは、オペレーティングシステム実行手段
と、アプリケーション実行手段と、画像無効化手段と、
入力手段と、記憶手段とより構成され、前記オペレーテ
ィングシステム実行手段は、文字列を入力して所定の出
力先に出力するテキスト出力部を含むアプリケーション
インタフェースを備える複数のサブシステムを備えるオ
ペレーティングシステムを実行し、前記アプリケーショ
ン実行手段は、前記サブシステム上で動作し、前記テキ
スト出力部を介して前記サブシステムに文字列を供給す
ることにより該文字列を表示画面上に表示するアプリケ
ーションを実行し、前記画像無効化手段は、前記表示画
面上のカーソル位置の画像を無効化することにより、前
記アプリケーションに再表示用の前記文字列を出力させ
ると共に、前記テキスト出力部による前記文字列の前記
出力先を、所定のアドレスに対応付けられた前記入力手
段に設定し、前記入力手段は、前記所定のアドレスに対
応付けられ、前記画像無効化手段により前記文字列の前
記出力先を設定された前記テキスト出力部より再表示用
の前記文字列を入力し、前記記憶手段は、前記入力手段
が入力した再表示用の前記文字列を記憶する、ことを特
徴とする。
【0015】第1及び第2の観点にかかる発明によれ
ば、アプリケーションが文字列を表示している際に、カ
ーソルを操作して文字列の適当な位置を指示すると、画
像無効化手段がこのカーソル位置の画像を無効(再表示
が必要な状態)にする。この無効化に応答して、アプリ
ケーションは前記再表示(再描画)用の文字列の情報を
出力する。通常ならば、この表示データは、オペレーテ
ィングシステムのアプリケーションプログラムインタフ
ェースの文字出力部に供給され、オペレーティングシス
テムにより、再表示されるが、この発明では、前記再表
示用の文字列は入力手段に与えられる。そして、入力手
段に与えられた前記再表示用の文字列は、前記記憶手段
に記憶される。従って、前記記憶手段から前記再表示用
の文字列が読み出されれば、前記再表示用の文字列が、
前記アプリケーションが動作するのとは別の前記サブシ
ステム上で動作する前記アプリケーションが出力したも
のであっても、前記再表示用の文字列から前記カーソル
近傍の文字列を抽出する。更に、前記入力手段は、入力
した前記再表示用の文字列を前記テキスト出力部を介し
て前記サブシステムに供給するので、各前記サブシステ
ムはこの文字列を再表示する。
【0016】前記画像無効化手段は、前記表示画面上の
カーソル位置に画像を書き込むことにより、前記アプリ
ケーションに再表示用の文字列を出力させる描画手段を
備えるものとすれば、前記無効化は、前記カーソル位置
に画像を書き込むことにより行われる。
【0017】前記描画手段は、例えば、目視困難なドッ
ト列をカーソル位置に書き込む。この書き込みにより、
再描画が必要になり、アプリケーションは文字列を出力
する。
【0018】前記オペレーティングシステムは更に、一
つの前記サブシステム上で動作する前記アプリケーショ
ンが他の前記サブシステムの前記アプリケーションイン
タフェースを変更することを禁止する手段を備えるもの
であっても、前記記憶手段から前記再表示用の文字列が
読み出されれば、前記再表示用の文字列から前記カーソ
ル近傍の文字列を抽出することができる。
【0019】前記記憶手段が記憶した前記再表示用の文
字列を入力することにより、前記カーソル位置近傍の文
字列を抽出する文字列抽出手段を更に備えるものとすれ
ば、前記再表示用の文字列から前記カーソル近傍の文字
列が現に抽出される。
【0020】前記文字列抽出手段は、例えば、カーソル
の近傍で、スペース等の終端文字で挟まれる文字列を、
単語として抽出してもよい。前記文字列抽出手段は、例
えば、カーソルの位置を先頭とする所定数の文字列を抽
出してもよい。
【0021】前記文字列抽出手段が抽出した文字列を辞
書等を検索するための、検索語としてもよい。
【0022】また、この発明の第3の観点にかかる文字
列抽出システムは、表示画面上への文字列表示を行う文
字列出力部を含むアプリケーションインタフェースを有
する複数のサブシステムと、一つの前記サブシステム上
で動作するアプリケーションが他の前記サブシステムの
前記アプリケーションインタフェースを変更することを
禁止する手段とからなるオペレーティングシステムを実
行するオペレーティングシステム実行手段と、前記文字
列出力部に表示対象文字列を供給することにより、前記
表示画面上へ文字列を表示するアプリケーションと、前
記サブシステムの前記文字列出力部と置換して使用さ
れ、前記アプリケーションからの表示データを受信し、
受信した表示データを前記サブシステムに供給する入力
部と、前記入力部が抽出した前記表示データを記憶する
記憶部と、前記記憶部が記憶した前記表示データを入力
すると共に入力した前記表示データに含まれる文字列を
抽出する文字列抽出部と、を具備することを特徴とす
る。
【0023】第3の観点にかかる構成によれば、前記ア
プリケーションプログラムインタフェースの前記文字列
出力部が前記入力部に置換される。このため、前記アプ
リケーションが前記表示データを出力すると、前記表示
データが入力部に供給される。そして、入力部に供給さ
れた前記表示データは、いったん前記記憶部に記憶され
た後、前記文字列抽出部に入力される。このため、前記
文字列抽出部が前記アプリケーションが動作しているの
とは別の前記サブシステム上で動作するものであって
も、前記表示データから任意の文字列が抽出される。
【0024】また、この発明の第4の観点にかかるプロ
グラム記憶媒体は、テキスト出力部を含むアプリケーシ
ョンインタフェースを備える複数のサブシステムを備え
るオペレーティングシステム上で動作し、アプリケーシ
ョンが表示画面上のカーソル位置に表示する文字列の画
像を無効化することにより、前記アプリケーションに再
表示用の文字列を出力させる画像無効化用プログラム
と、前記オペレーティングシステム上で動作し、前記ア
プリケーションが出力した前記再表示用の文字列を入力
すると共に、前記再表示用の文字列を前記テキスト出力
部を介して前記サブシステムに供給することにより、前
記再表示用の文字列を再表示する入力用プログラムと、
前記オペレーティングシステム上で動作し、前記入力用
プログラムにより入力された前記再表示用の文字列を記
憶する記憶用プログラムと、を記憶することを特徴とす
るプログラム記憶媒体であって、前記アプリケーション
は、前記サブシステム上で動作し、前記テキスト出力部
を介して前記サブシステムに文字列を供給することによ
り該文字列を表示画面上に表示する、ことを特徴とす
る。
【0025】また、この発明の第5の観点にかかるプロ
グラム記憶媒体は、文字列を入力して所定の出力先に出
力するテキスト出力部を含むアプリケーションインタフ
ェースを備える複数のサブシステムを備えるオペレーテ
ィングシステム上で動作し、アプリケーションが表示画
面上のカーソル位置に表示する文字列の画像を無効化す
ることにより、前記アプリケーションに再表示用の前記
文字列を出力させると共に、前記テキスト出力部による
前記文字列の前記出力先を所定のアドレスに対応付けら
れたプログラムに設定する画像無効化用プログラムと、
前記オペレーティングシステム上で動作し、前記所定の
アドレスに対応付けられ、前記画像無効化用プログラム
により前記文字列の前記出力先を設定された前記テキス
ト出力部より再表示用の前記文字列を入力する入力用プ
ログラムと、前記オペレーティングシステム上で動作
し、前記入力用プログラムにより入力された再表示用の
前記文字列を記憶する記憶用プログラムと、を記憶する
ことを特徴とするプログラム記憶媒体であって、前記ア
プリケーションは、前記サブシステム上で動作し、前記
テキスト出力部を介して前記サブシステムに文字列を供
給することにより該文字列を表示画面上に表示する、こ
とを特徴とする。
【0026】第4及び第5の観点にかかるプログラム記
憶媒体が記憶するプログラムを実行した場合、アプリケ
ーションが文字列を表示している際に、カーソルを操作
して文字列の適当な位置を指示すると、前記画像無効化
プログラムが、このカーソル位置に表示されている画像
を無効にする。この無効化に応答して、アプリケーショ
ンは前記再表示(再描画)用の文字列の情報を出力す
る。そして、前記入力プログラムにより取得された前記
再表示用の文字列は、前記記憶プログラムによっていっ
たん記憶され、その後前記文字列抽出プログラムに入力
される。そして、前記文字列抽出プログラムは、前記再
表示用の文字列が、前記アプリケーションが動作するの
とは別の前記サブシステム上で動作する前記アプリケー
ションが出力したものであっても、前記再表示用の文字
列から前記カーソル近傍の文字列を抽出する。更に、前
記入力プログラムは、入力した前記再表示用の文字列を
前記文字列出力部を介して前記サブシステムに供給する
ので、各前記サブシステムはこの文字列を再表示する。
【0027】前記画像無効化用プログラムは、前記表示
画面上のカーソル位置に画像を書き込むことにより、前
記アプリケーションに再表示用の文字列を出力させる描
画用プログラムを備えるものとすれば、前記無効化は、
前記カーソル位置に画像を書き込むことにより行われ
る。
【0028】前記オペレーティングシステムは更に、一
つの前記サブシステム上で動作する前記アプリケーショ
ンが他の前記サブシステムの前記アプリケーションイン
タフェースを変更することを禁止する手段を備えるもの
であっても、前記再表示用の文字列から前記カーソル近
傍の文字列を抽出する。
【0029】また、この発明の第6の観点にかかる文字
列抽出方法は、複数のサブシステムを備え、各前記サブ
システムは、各前記サブシステム上で動作するアプリケ
ーションから情報を入力し、前記情報が表す画像を表示
画面上に表示する手段を備える、ことを特徴とするオペ
レーティングシステムを実行するステップと、前記サブ
システムに文字列を供給することにより、前記文字列を
前記表示画面上に表示させる前記アプリケーションを前
記サブシステム上で実行するステップと、前記サブシス
テムが前記表示画面上のカーソル位置に表示する画像を
無効化することにより、再表示のための前記文字列を前
記アプリケーションに出力させる画像無効化ステップ
と、前記アプリケーションから再表示のための前記文字
列を取得すると共に、再表示のための前記文字列を前記
サブシステムに供給することにより、前記サブシステム
に前記文字列を再表示させる入力ステップと、前記入力
ステップが取得した再表示のための前記文字列を記憶す
る記憶ステップと、前記記憶ステップにおいて記憶され
た再表示のための前記文字列を入力することにより、前
記カーソル位置近傍の文字列を抽出する文字列抽出ステ
ップとを含む、ことを特徴とする。
【0030】このような文字列抽出方法によれば、アプ
リケーションが前記サブシステムに文字列を表示させて
いる際に、カーソルを操作して文字列の適当な位置を指
示すると、前記サブシステムがこのカーソル位置に表示
した画像が無効化される。この無効化に応答して、アプ
リケーションは前記再表示のための前記文字列を出力す
る。出力された前記再表示用の文字列は、前記サブシス
テムに供給されると共にいったん記憶され、次いで、記
憶された前記文字列から、前記カーソル近傍の文字列が
抽出される。この場合、前記再表示用の文字列は、前記
アプリケーションが動作するのとは別の前記サブシステ
ム上で動作する前記アプリケーションが出力したもので
あってもよい。
【0031】
【発明の実施の形態】以下、この発明の実施の形態に係
る文字列抽出システムを説明する。 (第1の実施の形態)図1は、この発明に係る文字列抽
出システムを組み込んだWWW(World WideWeb)アク
セスシステムの実施の形態の構成を模式的に示してい
る。
【0032】このWWWアクセスシステムは、ウィンド
ウシステム1を具備している。ウィンドウシステム1
は、マルチウィンドウ及びマルチタスクによるアプリケ
ーションの実行をサポートしたオペレーティングシステ
ム(OS)、例えば、マイクロソフト社のウィンドウズ
NT(商標)である。ウィンドウシステム1は、カーネ
ル10と、複数のサブシステム(プロセス)11a〜1
1dと、共用メモリ12とを備える。
【0033】カーネル10は、ウィンドウシステム1の
全体に影響するシステム機能を、各機能を表すシステム
関数の呼び出しを承けて実行する。システム機能には、
表示画面のウィンドウにテキスト文字列を表示させる機
能が含まれる。
【0034】各サブシステム11a〜11dは、各々が
独立したウィンドウシステムを構成するものであり、各
サブシステムは、複数のスレッド110と、API(ア
プリケーションインタフェース)111a〜111dと
を備える。
【0035】スレッド110は、所定の機能を実行する
プログラム、例えば、WWWブラウザ2と、文字列抽出
DLL(Dynamic Link Library)3a〜3dと、辞書検
索アプリケーション4とを含む。
【0036】WWWブラウザ2は、サブシステム11a
上のスレッドであり、インターネット上のWWWホーム
ページ等のアクセス及び表示に用いられる。WWWブラ
ウザ2は、後述するAPI111a〜111dのテキス
ト出力部112a〜112dを介して、表示画面上への
文字表示を行う。
【0037】文字列抽出DLL3a〜3dは、サブシス
テム11a〜11d上のスレッドである。各文字列抽出
DLLのうち、文字列抽出DLL3a、3c〜3dは、
文字列抽出DLL3bが、後述する処理によりサブシス
テム11a、11c〜11d上に複製したものであり、
これらは、「リモートスレッド」とも呼ばれる。文字列
抽出DLL3a〜3dは、テキスト入力部31a〜31
dと、描画部32a〜32dとを備える。
【0038】テキスト入力部31a〜31dは、スレッ
ド110がテキスト出力部112a〜112dに向けて
出力した文字列情報を、テキスト出力部112a〜11
2dに与えず、自己に入力する。テキスト入力部31a
〜31dは、入力した文字列情報を、テキスト出力部1
12a〜112d及び辞書検索アプリケーション4に与
える。即ち、スレッド110が表示のために出力した文
字列は、通常と異なり、直接ではなく、文字列抽出DL
L3a〜3dを介してテキスト出力部112a〜112
dに供給され、さらに、辞書検索アプリケーション4に
供給される。このような処理を可能とするため、文字列
抽出DLL3a〜3dは、後述する処理に従い、API
111a、111c〜111dの所定の部分のアドレス
を書き換える。
【0039】描画部32a〜32dは、マウスカーソル
位置近傍の文字列を抽出するため、マウスカーソルが所
定時間以上停止する毎に、マウスカーソル近傍に事実上
視認することが困難な矩形を描画する。これにより、ス
レッド110に、少なくともマウスカーソル近傍の文字
列情報を再表示のために出力させる。描画する矩形は、
背景色とほぼ同色で、ほぼ文字高さで幅が狭いドット
列、例えば灰色の1×8ドットのドット列である。
【0040】辞書検索アプリケーション4は、サブシス
テム11b上で実行されるスレッドである。辞書検索ア
プリケーション4は、文字列抽出DLL3a〜3dから
供給された文字列の中から、辞書の検索語を抽出し、抽
出した検索語で辞書を検索し、検索結果をテキスト出力
部112a〜112dに供給して表示させる。
【0041】API111a〜111dは、スレッド1
10の機能又はカーネルが実行するシステム機能を呼び
出すためのシステム関数群からなる。このシステム関数
群には、例えば、表示画面のウィンドウにテキスト文字
列を表示させるためのシステム機能を表す関数からなる
テキスト出力部112a〜112dが含まれる。テキス
ト文字列を表示させる関数としてテキスト出力部112
a〜112dに含まれるものとしては、例えば、ウィン
ドウシステム1がウィンドウズNTである場合、ExtTex
tOutW、TextOutW、ExtTextOutA及びTextOutAがある。
【0042】ウィンドウシステム1が、例えばウィンド
ウズNTである場合、各サブシステム11a〜11d及
び各サブシステム11a〜11d上のスレッドは、互い
に他のサブシステムのAPI111a〜111dを書き
換えることを予めウィンドウシステム1により禁止され
ている。このため、各サブシステム11a〜11d及び
各サブシステム11a〜11d上のスレッドは、互いに
他のサブシステム上のスレッドが出力するテキスト文字
列の情報を直接該スレッドから入力することはできな
い。
【0043】共用メモリ12は、ウィンドウシステム1
内のすべてのサブシステムから参照することが出来るメ
モリ空間である。共用メモリ12上には、文字列抽出D
LL3bがリモートスレッド3a、3c〜3dより情報
を入力するための一時記憶領域として用いるメモリ領域
121が、文字列抽出DLL3bにより確保される。
【0044】上述した図1のWWWアクセスシステム
は、通常の場合、主としてソフトウェアで実現され、例
えば、図2に示すような構成のコンピュータシステム上
で実現される。図2に示すコンピュータシステムは、C
PU(中央処理装置)51、ディスプレイ52、メモリ
53、ハードディスク54、キーボード55、マウス5
6及びインタフェース(I/F)57、58、59を有
している。
【0045】CPU51及びメモリ53は、システムバ
スBに結合される。ディスプレイ52はインタフェース
57を介してシステムバスBに結合される。ハードディ
スク54はインタフェース58を介してシステムバスB
に結合される。キーボード55及びマウス56はインタ
フェース59を介してシステムバスBに結合されてい
る。
【0046】ハードディスク54には、上述したオペレ
ーティングシステムとしてのウィンドウシステム1、な
らびにWWWブラウザ2、文字列抽出DLL3b及び辞
書検索アプリケーション4を含む各種アプリケーション
を構築するプログラムが格納されている。
【0047】図2のコンピュータシステムが起動される
と、CPU51は、インタフェース59を介してキーボ
ード55及びマウス56の操作入力に応答し、ウィンド
ウシステム1のプログラムを、インタフェース58を介
してハードディスク54から読み込んで起動する。そし
て、CPU51は、インタフェース57を介してディス
プレイ52に表示を行うとともに、メモリ53の設定を
行う。
【0048】次に、CPU51は、各サブシステム11
a〜11dのプログラムをハードディスク54から読み
込んで起動し、各サブシステム11a〜11dの制御の
下に、インタフェース57を介してディスプレイ52に
表示を行うとともに、メモリ53の設定を行う。
【0049】次に、CPU51は、インタフェース59
を介してキーボード55及びマウス56の操作入力に応
答し、ハードディスク54からWWWブラウザ2、文字
列抽出DLL3b、及び辞書検索アプリケーション4を
含む各種アプリケーションのプログラムを読み込み、こ
れらを起動する。
【0050】このようにして、ウィンドウシステム1
は、CPU51、ディスプレイ52、メモリ53、ハー
ドディスク54、キーボード55、マウス56及びイン
タフェース(I/F)57、58、59等のハードウェ
アを制御する。WWWブラウザ2、文字列抽出DLL3
a〜3d、及び辞書検索アプリケーション4等のアプリ
ケーションは、API111a〜111dを経由してサ
ブシステム11a又は11b上で動作する。
【0051】次に、図1の構成を有するWWWアクセス
システムの動作を図3〜図11に示す図を参照して説明
する。なお、以下の説明において、ウィンドウシステム
1、サブシステム11a〜11b及びサブシステム11
aのスレッドであるWWWブラウザシステム2は、既に
起動しているものとする。
【0052】文字列抽出DLL3bは、起動されると、
まず、図3に示す処理を開始する。すなわち、先ず、他
のスレッドから各サブシステムのテキスト出力部112
a〜112dヘの文字列情報が入力されたとき、その文
字列情報が文字列抽出DLL3bに取り込まれるように
設定するため、図4に示すフック設定処理を開始する
(ステップS11)。
【0053】図4のフック設定処理が開始されると、文
字列取得DLL3bは、共用メモリ12上に、メモリ領
域121を確保する(ステップS101)。そして、サ
ブシステム11bのAPI111bにアクセスし、他の
各サブシステム11a、11c〜11dが起動されてい
るか否かを示す情報を返す関数を呼び出す(ステップS
102)。次に、その関数の戻り値より、未だステップ
S104の処理による判別を受けていないサブシステム
(プロセス)が存在するか否かを判別する(ステップS
103)。
【0054】ステップS103において、該当するサブ
システムが存在すると判別されると、文字列取得DLL
3bは処理をステップS104へ移す。該当するサブシ
ステムが存在しないと判別されたときは、ウィンドウシ
ステム1上で起動されているすべてのサブシステムが既
に特定されたときであり、このとき、文字列取得DLL
3bは、処理をステップS109に移す。
【0055】ステップS104において、文字列取得D
LL3bは、ステップS102で情報を取得されたサブ
システムが、ウィンドウシステム1よりAPI111
a、111c〜111dの書き換えを許されているもの
であるか否かを判別する。ステップS104において、
書き換えが許されていないと判別されたとき、文字列取
得DLL3bは、処理をステップS102に戻す。
【0056】書き換えが許されているときは、そのサブ
システム内に、リモートスレッド(文字列取得DLL)
3a、3c又は3dを作成する(ステップS105。以
下、ステップS105の処理を、リモートスレッドの
「インジェクト」と呼ぶ。)これにより、各リモートス
レッドと同一のサブシステム内にあるスレッドが文字列
の表示を行うとき、当該サブシステムは、当該サブシス
テム上のリモートスレッドを呼び出す。そして、リモー
トスレッドの制御の下にあるCPU51は文字列取得D
LL3bの処理を行い、処理が終了すると、各リモート
スレッドを呼び出したスレッド等の処理に戻る。
【0057】各リモートスレッドをインジェクトされた
サブシステムは、インジェクトされたリモートスレッド
が備える機能をAPI111a、111c〜111dに
新たに登録するため、リモートスレッドが備える初期化
関数を呼び出して、API111a、111c〜111
dの書き換えの処理を実行する(S106)。
【0058】具体的には、初期化関数はまず、自らが属
するサブシステムのAPI111a、111c〜111
dのうち、画像表示のシステム機能を呼び出す部分を含
む領域のデータを、リモートスレッドが自らの使用領域
として確保しているメモリ領域に退避(セーブ)する。
この領域の大きさは、文字列取得DLL3a、3c〜3
dを呼び出す後述の命令の命令コードの大きさより大き
いものとする。
【0059】次に、初期化関数は、API111a、1
11c〜111dのうち、データがセーブされた上述の
領域に、リモートスレッド3a、3c〜3dを呼び出す
命令の命令コードを上書きする。WindowsNTのWin32サブ
システムにおいては、この処理により書き換えられるA
PIは、具体的には、例えばウィンドウシステム1がウ
ィンドウズNTである場合、ExtTextOutW、TextOutW、E
xtTextOutA及びTextOutAである。またこの処理により書
き込まれる命令は、例えば、ジャンプ(Jump)命令、呼び
出し(Call)命令や、ブレークポイント割り込み命令等で
ある。
【0060】API111a、111c〜111dの書
き換えが完了すると、サブシステム11bの文字列取得
DLL3bは、インジェクトが成功したか否かを判別す
る(ステップS107)。この判別は、例えば、API
111a、111c〜111dの書き換えによるリモー
トスレッド3a、3c〜3dの登録が完了した旨の通知
が各サブシステムからカーネルに送られたとき、文字列
取得DLL3bが、カーネル及びサブシステム11bを
介して該通知を検知することにより行われる。
【0061】ステップS107において、インジェクト
が成功していないと判別されたとき、文字列取得DLL
3bは、既にインジェクトが完了したすべてのサブシス
テムにあるリモートスレッドを削除して(ステップS1
08)、フック設定の処理を終了する。インジェクトが
成功したと判別されたときは、処理をステップS102
に戻す。
【0062】インジェクトが許されているすべてのサブ
システムにインジェクトがなされると、各リモートスレ
ッド3a、3c〜3dは、API111a、111c〜
111dのうち、マウスによる入力のシステム機能を呼
び出す関数のアドレスを、リモートスレッドのアドレス
に書き換える(ステップS109)。
【0063】なお、以下では、API111a、111
c〜111dの関数のアドレスをリモートスレッド3
a、3c〜3dのアドレスに書き換える処理を、「マウ
スのフックの設定」と呼ぶ。マウスのフックは、マウス
が移動した際に文字列取得DLL3bがマウスの座標を
取得するために行うものである。
【0064】ステップS109の処理を行うと、リモー
トスレッド3a、3c〜3dは、マウスのフックの設定
が成功したか否かを判別し(ステップS110)、成功
しなかった場合は、処理の異常を検知して処理を終了す
る。成功した場合、サブシステム11bの文字列取得D
LL3bは、CBT(Computer-Based-Training)のフ
ックの設定を行う(ステップS111)。CBTのフッ
クは、ウィンドウシステム1内でサブシステムが起動又
は終了したことを、ウィンドウシステム1から文字列取
得DLL3bに通知させるようにするため行うものであ
る。
【0065】そして、文字列取得DLL3bは、CBT
のフックの設定が成功したか否かを判別し(ステップS
112)、成功しなかった場合は、処理の異常を検知し
て処理を終了する。成功した場合は、処理を正常終了
し、処理をステップS12へ移す。
【0066】なお、文字列取得DLL3bは、CBTよ
り新たなサブシステムが起動された旨の通知を受け取っ
たときは、上述のステップS102〜S107の処理を
順次行ってリモートスレッドのインジェクトを新たに行
う。そして、ステップS107において、インジェクト
が成功したと判別されたときは処理をS12に移し、成
功しなかった場合は、処理の異常を検知して処理を終了
する。
【0067】一方で、文字列抽出DLL3bは、自らの
処理を終了するときは、各リモートスレッド3a、3c
〜3dを各サブシステムから除去してから処理を終了す
る。各リモートスレッド3a、3c〜3dは、除去され
る際、API111a、111c〜111dのうち、ス
テップS106の処理でセーブしたデータを、該データ
が本来格納されていた領域に上書きして、API111
a、111c〜111dを復元する。
【0068】次に、各リモートスレッド3a、3c〜3
dは、文字列抽出のために、描画部32をタイマ登録す
る(図3、ステップS12)。このタイマ登録により、
100ms毎に発生するタイマイベントにより、図5に
示す描画処理(矩形を書き込む処理)が実行される。
【0069】描画部32は、API111a、111c
〜111dを介してウィンドウシステム1からマウスカ
ーソルの例えば絶対座標による位置情報を取り込む(ス
テップS21)。取り込んだマウスカーソルの位置座標
が、自らの属するサブシステムが表示しているウインド
ウ内であるか否かを判別する(ステップS22)。自ら
の属するサブシステムが表示しているウインドウの外で
ある場合、処理を終了し、メインルーチンにリターンす
る。
【0070】自らの属するサブシステムが表示している
ウインドウ内にマウスカーソルが位置している場合、そ
の位置が前回のタイマイベント発生時の位置から変化し
ているか否かを判定し(ステップS23)、位置が変化
していないときはタイマ変数tをインクリメントする
(ステップS24)。
【0071】次に、インクリメントした後のタイマ変数
tを、マウス56の静止を判別するために予め設定した
設定値Tと比較する(ステップS25)。変数tが設定
値Tを越えているときは、画面上のマウスカーソルの近
傍に矩形を書き込む(ステップS26)。また、タイマ
変数tを初期化する。さらに、矩形を書き込んで文字列
を再描画させることを示すキャプチャーフラグ(Captur
e Flag)CFをオンする(ステップS26)。続いて、
処理を終了してリターンし、以後も100ms毎のタイマ
イベントにより、描画処理が起動される。
【0072】矩形は、視認できない画像が望ましい。そ
こで、この実施の形態では、図11(B)に示すよう
に、灰色または背景色の1×8ドットを書き込む。抽出
しようとする文字列の条件及び表示されているテキスト
の種類等によっては、マウスカーソルが指示する行のみ
でなく前後の行を含む3行程度を再出力させて、抽出対
象とすることが望ましいこともある。そのような場合に
は、複数行にまたがるドット列を書き込む。また、スレ
ッド110が、文字単位で描画データを出力するタイプ
の場合には、例えば、400×8ドットの矩形を書き込
むことにより、ほぼ1行分の文字列を出力させることが
できる。
【0073】ステップS23において、マウスカーソル
の位置の変化が検出されると、マウスカーソルは移動中
であると推定されるので、t=0とし(ステップS2
7)、今回の描画処理を終了する。ステップS25にお
いて、変数tが設定値Tを超えていないと判断されたと
きは、マウスカーソルは短時間静止しているだけであ
り、再度移動する可能性がある。従って、今回の描画処
理を終了する。
【0074】一方、ウィンドウシステム1は、図6に示
すような、描画検出を常時行っている。すなわち、ウイ
ンドウシステム1は、表示画面に対する矩形画像の描画
を検出すると、その絶対座標を検出し(ステップS30
1)、その絶対座標に基づいて、矩形が書き込まれたウ
ィンドウを形成するサブシステムを判別する(ステップ
S302)。そして、ウィンドウシステム1は、判別さ
れたサブシステムに対し、少なくとも当該絶対座標を含
んだ所定領域を再度表示することを指示する再表示命令
を送る(ステップS303)。
【0075】ステップS301〜S303の処理によっ
て、例えば、WWWブラウザ2が形成しているウィンド
ウ上に矩形が書き込まれた場合は、ウィンドウシステム
1からサブシステム11bに再表示命令が送られる。
【0076】サブシステム11bは、ウィンドウシステ
ム1から再表示命令を受けると、図7に示すように、再
表示命令の対象である領域の位置から、矩形書き込み位
置を含むウィンドウを形成しているスレッドを特定する
(ステップS311)。そして、特定されたスレッド
(この場合WWWブラウザ2)に対し、ウィンドウシス
テム1により指定された所定領域の再表示を命令する
(ステップS312)。
【0077】WWWブラウザ2は、サブシステム11b
から再表示命令を受けると、図8に示すように、該当部
分の文字列情報を再出力する(ステップS321)。ス
テップS11の処理により、API111aのExtTextO
utW、TextOutW、ExtTextOutA及びTextOutAはリモートス
レッド3aを呼び出すよう設定されている。このため、
WWWブラウザ2はリモートスレッド3aに再表示用の
文字列情報を出力する。
【0078】図3のフローチャートに戻り、リモートス
レッド3aは、ステップS12でタイマ登録を行った
後、WWWブラウザ2が表示用の文字列情報を出力する
のを待つ(ステップS13)。リモートスレッド3a
は、WWWブラウザ2からの文字列情報を受け取ると、
CFフラグがオンで、且つ、供給された文字列情報がマ
ウスカーソルの位置の文字列であるか否かを、その文字
列情報とマウスカーソルの絶対座標とより判別する(ス
テップS13)。
【0079】NO、即ち、CFフラグがオフ、及び/又
は、供給された文字列情報がマウスカーソルとは異なる
位置の文字列の場合、次の文字列情報の供給を待つ。一
方、YES、即ち、キャプチャフラグCFがオンで、且
つ、供給された文字列情報がマウスカーソルの位置の文
字列の場合、リモートスレッド3aは、図9に示す処理
により、文字列情報及びマウスカーソルの座標の情報を
文字列取得DLL3bへ転送する。そして、API11
1aのうちステップS106で書き換えられた部分が本
来呼び出すべき機能を、サブシステム11aに実行させ
る(ステップS14)。
【0080】すなわち、リモートスレッド3aは、図9
の処理を開始すると、共用メモリ12にアクセスして、
メモリ領域121のアドレスを取得し、メモリ領域12
1がサブシステム11aのメモリ空間を構成するように
する(ステップS401。なお、以下では、ステップS
401の処理を、メモリの「ロック」と呼ぶ)。メモリ
がロックされると、リモートスレッド3aは、ステップ
S401でロックされたメモリ領域121に、マウスカ
ーソルの座標と、ステップS13で受け取った文字列情
報とを格納する(ステップS402)。マウスカーソル
の座標及び文字列情報がメモリ領域121に格納される
ことにより、マウスカーソルの座標及び文字列情報は、
他のサブシステム、例えばサブシステム11bに属する
スレッドからも参照できるようになる。
【0081】次いで、リモートスレッド3aは、メモリ
領域121をサブシステム11aのメモリ空間から切り
離す。(ステップS403。なお、以下では、ステップ
S403の処理を、メモリの「アンロック」と呼ぶ。)
【0082】メモリ領域121をアンロックしたリモー
トスレッド3aは、次に、テキスト出力部112aのう
ち、ステップS106でセーブされた部分を読み込み、
当該部分が示しているシステム機能を呼び出す。これに
より、リモートスレッド3aは文字列情報をサブシステ
ム11aに供給する(ステップS404)。そして、リ
モートスレッド3aはCFフラグをオフする(ステップ
S404)。これにより、サブシステム11aは、供給
された文字列情報を表示画面の該当個所に表示する(ス
テップS404)。
【0083】そして、リモートスレッド3aは、サブシ
ステム11bの文字列取得DLL3bに文字列を取得し
たことを通知する(ステップS405)。通知を受けた
文字列取得DLL3bは、ステップS403でアンロッ
クされたメモリ領域から文字列情報及びマウスカーソル
の座標の情報を読み取って、これらの情報を取得する。
【0084】再び図3に戻り、文字列取得DLL3b
は、WWWブラウザ2から、リモートスレッド3a、メ
モリ領域121を経て供給された文字列情報とマウスカ
ーソルの座標の情報とを、辞書検索アプリケーション4
に供給する(ステップS15)。
【0085】ステップS15の終了後、この文字列抽出
DLL3bが起動されている限りステップS13〜S1
5の処理が繰り返される。
【0086】次に、辞書検索アプリケーション4の動作
を図10のフローチャートを参照して説明する。辞書検
索アプリケーション4は、文字列抽出DLL3bから文
字列情報とマウスカーソルの座標が供給されると、それ
らの情報から、検索対象文字列を抽出する(ステップS
51)。例えば、供給された文字列が英語、ドイツ語等
の場合、マウスカーソルの前後の終端文字(スペース、
タブ、ピリオド、クエスチョンマーク等)で挟まれた文
字列(単語)を検索対象文字列とする。また、供給され
た文字列が日本語、中国語等の場合、マウスカーソルの
位置の文字を先頭にして所定数の文字を検索対象文字列
とする。適切な検索対象語を抽出できない場合には、文
字数を順次1つずつ減らして、検索対象文字列とする。
【0087】続いて、抽出された検索対象文字列で辞書
を検索する(ステップS52)。辞書検索アプリケーシ
ョン4は、検索結果をテキスト出力部112bに供給
し、サブシステム11bは、供給された検索結果を、画
面上の適当なウインドウ内に表示する(ステップS5
3)。
【0088】上述の動作を、図11の具体例を参照して
説明する。画面に、図11(A)に示すように、WWW
ブラウザ2により「This is a pen.」と
表示されているとする。ここで、マウスカーソルが「T
his」を指示している。この指示が一定時間以上、例
えば、400ms以上継続すると、ステップS25で、
t>Tと判別される。このため、ステップS26で、図
11(B)に示すように、1×8のドットを書き込む
(描画する)。この描画はウインドウシステム1により
検出され、ウインドウシステム1は、WWWブラウザ2
が属するサブシステム11aに「This is a
pen.」を含む領域の再表示を指示する(ステップS
303)。
【0089】この指示に応答したサブシステム11a
は、WWWブラウザ2に「Thisis a pe
n.」を含む領域の再表示を指示し、WWWブラウザ2
は、その領域の文字列情報(表示データ)を出力する
(ステップS321)。この文字列情報はテキスト出力
部112aではなく、リモートスレッド3aに供給され
る。リモートスレッド3aは、供給された文字列情報を
API111aに供給する(ステップS15)。サブシ
ステム11aは、表示データを再度描画して表示する。
このため、表示は図11(A)の元の状態に戻る。
【0090】続いて、リモートスレッド3aは、供給さ
れた文字列情報(テキスト、位置情報等)とカーソルの
位置情報を、メモリ領域121、文字列取得DLL3b
を介して、辞書検索アプリケーション4に供給する。辞
書検索アプリケーション4は、供給された文字列情報と
その位置情報、及びカーソルの位置情報から、カーソル
が「This」の「h」を指示していることを判別す
る。
【0091】辞書検索アプリケーション4は、カーソル
が指示する「h」から順次前方と後方に文字をチェック
し、「T」の前と「s」の後ろに終端文字が存在するこ
とを判別し、終端文字間の文字列「This」を検索対
象文字列として抽出する(ステップS51)。続いて、
抽出した「This」で辞書、例えば、英和辞書を検索
し、対応する訳語「これ」を索出する(ステップS5
2)。次に、辞書検索アプリケーション4は、検索語
「This」と訳語「これ」の対「This:これ」を
テキスト出力部112bに出力する(ステップS5
3)。サブシステム11bは、辞書検索アプリケーショ
ン4から供給された「This:これ」をカーソルの右
下に図11(C)に示すように表示する。
【0092】このようにして、この実施の形態によれ
ば、例えば、マウスカーソルで画面上の任意の文字列を
指示するだけで、その文字列を抽出することができる。
さらに、この抽出した文字列から、例えば、検索文字列
を抽出し、辞書などを検索し、検索結果を画面に表示す
ることができる。
【0093】(第2の実施の形態)次に、この発明の第
2の実施の形態を説明する。この実施の形態にかかる文
字列抽出システムの基本的な構成は、第1の実施の形態
のシステムと基本的に同一である。ただし、マウスカー
ソルが一定時間以上停止したことを検出して、矩形を描
画し、文字列を抽出する工程が以下に説明するように、
第1の実施の形態とは異なる。
【0094】まず、ウインドウシステム1は、図12に
示すように、マウスが移動したことを判別すると、タイ
マがセットされているか否かを判別し(ステップS6
1)、セットされていれば、タイマを解除(リセット)
する(ステップS62)。タイマがセットされていない
場合、又はタイマを解除した後、タイマを起動する(ス
テップS63)。このような処理を行うことにより、例
えば、マウスが一定期間(例えば、300ミリ秒以上)
停止した場合のみ、タイマがカウントを完了し、タイマ
イベントが発生する。
【0095】タイマイベントが発生すると、図13に示
すように、各リモートスレッド3a、3c〜3dの描画
部32はタイマを解除し(ステップS71)、API1
11a、111c〜111dを介してウィンドウシステ
ム1からマウスカーソルの位置座標を読み込む(ステッ
プS72)。そして、自らの属するサブシステムが表示
しているウインドウ内にマウスカーソルがあるか否かを
判別する(ステップS73)。
【0096】自らが属するサブシステムが表示している
ウインドウの外であると判別された場合、タイマを起動
し(ステップS74)、処理を終了して、マウスの移動
を判別する処理に戻る。自らの属するサブシステムが表
示しているウインドウ内である場合、そのように判別し
たリモートスレッド3a、3c又は3dは、ステップS
106と同一の処理を行って、各リモートスレッド3
a、3c又は3dのテキスト入力部31の関数(テキス
ト関数)をフックする(ステップS75)。そして、C
Fフラグをオンして(ステップS76)、図形をカーソ
ル位置に書き込み(ステップS77)、描画処理を終了
する。
【0097】この描画処理により、スレッド110は再
表示のために、文字列情報を出力する。ステップS75
でテキスト関数がフックされているので、スレッド11
0が出力する文字列情報はリモートスレッド3a、3c
又は3dのテキスト入力部31に供給される。
【0098】テキスト入力部31は、図14に示すよう
に、文字列情報の供給を受けると、CFフラグがオフで
あるか否かを判別する(ステップS81)。CFフラグ
がオフの場合、ステップS85に進み、フックしたテキ
スト関数を元に戻し、処理を終了する。
【0099】ステップS81で、CFフラグがオンであ
ると判別された場合、リモートスレッド3a、3c又は
3dは、供給された文字列情報を、ステップS401〜
S405と同一の処理により文字列取得DLL3bに転
送する(ステップS82)。文字列取得DLL3bは、
リモートスレッド3a、3c又は3dから取得した文字
列を、辞書検索アプリケーション4に抽出した文字列を
供給する(ステップS83)。その後、リモートスレッ
ド3a、3c又は3dはCFフラグをオフして(ステッ
プS84)、フックしたテキスト関数を元に戻し(ステ
ップS85)、文字列抽出処理を終了する。
【0100】辞書検索アプリケーション4は、ステップ
S83で供給された文字列から検索文字列を抽出し、辞
書を検索し、検索結果を得る。ステップS85で、フッ
クしていたテキスト関数を元に戻しているので、検索結
果はテキスト出力部112bに供給され、表示される。
【0101】第1の実施の形態では、タイマイベントが
所定周期で必ず発生し、描画が行われたが、この実施の
形態では、マウスが一定期間以上停止した場合のみ、タ
イマイベントが発生し、描画が行われる。従って、シス
テムの負担が小さい。
【0102】(第3の実施の形態)次に、この発明の第
3の実施の形態を説明する。この実施の形態にかかる文
字列抽出システムの基本的な構成は、第1及び第2の実
施の形態のシステムと基本的に同一である。ただし、マ
ウスカーソルの位置を検出して、矩形を描画させる工程
が、以下に説明するように、第1及び第2の実施の形態
とは異なる。
【0103】この実施の形態において、リモートスレッ
ド3a、3c〜3dは、動作を開始すると、図15に示
すように、まず、外部より動作終了の指示(例えば、文
字列抽出DLL3bの処理終了に伴うリモートスレッド
の除去の指示など)があったか否かを判別する(ステッ
プS91)。指示があったと判別されたとき、リモート
スレッドは処理を終了し、指示がなかったときは、AP
I111a、111c〜111dを介してウィンドウシ
ステム1から直ちにマウスカーソルの位置座標を読み込
む(ステップS92)。そして、自らの属するサブシス
テムが表示しているウインドウ内にマウスカーソルがあ
るか否かを判別する(ステップS93)。
【0104】自らの属するサブシステムが表示している
ウインドウの外であると判別された場合は、ステップS
91に処理を戻す。自らの属するサブシステムが表示し
ているウインドウ内である場合、そのように判別したリ
モートスレッド3a、3c又は3dは、ステップS10
6と同一の処理を行って、各リモートスレッド3a、3
c又は3dのテキスト入力部31の関数(テキスト関
数)をフックする(ステップS94)。そして、CFフ
ラグをオンして(ステップS95)、図形をカーソル位
置に書き込み(ステップS96)、処理をステップS9
1に戻す。
【0105】この描画処理によっても、スレッド110
は、再表示のための文字列情報を出力する。ステップS
75でテキスト関数がフックされているので、スレッド
110が出力する文字列情報はリモートスレッド3a、
3c又は3dのテキスト入力部31に供給される。
【0106】この実施の形態においては、ステップS9
1〜S96の処理が、リモートスレッド3a、3c〜3
dの動作開始直後から継続的に行われる。しかし、CP
U51の処理能力が十分高い場合は、この処理によって
も、システムへの負担は実質的に無視し得る量に止ま
る。また、第1及び第2の実施の形態において行われて
いるタイマ処理が省略されることにより、かえってシス
テムへの負担が減少する場合も考えられる。
【0107】なお、この発明は、上記実施の形態に限定
されず、種々の変形及び応用が可能である。例えば、サ
ブシステムの数は4個に限らず、任意である。また、W
WWブラウザ2、文字列抽出DLL3b及び辞書検索ア
プリケーション4は、上述したサブシステムに限らず任
意のサブシステムに含まれていてよい。例えば、WWW
ブラウザ2と文字列抽出DLL3bとは同一のサブシス
テム上で動作してもよく、この場合、文字列抽出DLL
3bは、API111bのテキスト出力部112bを単
にフックして、APIに出力された文字列が文字列抽出
DLL3bに入力されるようにすればよい。
【0108】また、以上の説明では、文字列を抽出する
対象としてWWWブラウザ2を挙げて説明したが、文字
列を抽出する対象はワードプロセッサ、スプレッドシー
ト、またはデータベース等のどのようなアプリケーショ
ンでもよい。また、抽出された文字列を用いるアプリケ
ーションも辞書検索アプリケーションに限らず、データ
ベース検索アプリケーション、データ入力アプリケーシ
ョン等の種々のアプリケーションを利用することができ
る。
【0109】また、上記説明においては、アプリケーシ
ョンプログラムに文字列(表示情報)を再出力させるた
めに、ドット列データをカーソル位置に書き込んだが、
アプリケーションプログラムに文字列(表示情報)を再
出力させることができるならば、他の手法を採用しても
よい。
【0110】例えば、カーソル位置に画像を書き込む代
わりに、カーソル位置の画像を無効化する(すなわち、
カーソル位置の画像の再表示が必要であるとウィンドウ
システム1が認識した状態にする)ことにより、アプリ
ケーションプログラムに文字列を再出力させてもよい。
【0111】更に、例えば、スレッド110が表示した
文字列をすべて共用メモリ12の記憶領域中にデータベ
ース化し、マウスの座標にあたる文字列を推定して該デ
ータベースから取り出す手法によってもよい。
【0112】また、この発明は、抽出した文字列(単
語)で辞書を検索する場合に限定されず、カーソルが指
示する単語等の文字列をコピー、削除、置換する場合の
ように、単語を処理する任意の場合に適用可能である。
また、カーソルの指示する位置の前後のピリオド、クエ
スチョンマーク等との間の文字列を切り出すことによ
り、文を抽出してもよい。
【0113】この発明においては、ハードディスク等の
記憶媒体に記録されたプログラムを読み出すことによ
り、コンピュータシステム上に上述した文字列抽出シス
テムを構築するが、ハードディスクに限らず、任意の媒
体にプログラムを格納し、これをコンピュータにインス
トールすることにより、文字列抽出システムを構築して
もよい。また、媒体として通信媒体を使用し、ネットワ
ークを介してプログラムを頒布し、ダウンロードしたプ
ログラムをインストールして使用するようにしてもよ
い。
【0114】
【発明の効果】以上説明したように、この発明によれ
ば、複数のサブシステムを備えるオペレーションシステ
ム上で動作し、簡便に任意の文字列(単語等)を指示で
き、また該文字列を用いて辞書を検索できる文字列抽出
システム、該文字列抽出システムを構築するためのプロ
グラムを記憶した媒体及び文字列抽出方法が実現され
る。
【図面の簡単な説明】
【図1】この発明の実施の形態に係る文字列抽出システ
ムを組み込んだWWWアクセスシステムの模式的構成を
示すブロック図である。
【図2】図1のシステムを構成するコンピュータシステ
ムの構成を模式的に示すブロック図である。
【図3】図1の文字列抽出システムの動作を説明するた
めのフローチャートである。
【図4】図1の文字列抽出システムの動作を説明するた
めフック設定処理のフローチャートである。
【図5】図1の文字列抽出システムの動作を説明するた
めの描画処理のフローチャートである。
【図6】図1の文字列抽出システムの動作を説明するた
めの描画検出処理のフローチャートである。
【図7】図1の文字列抽出システムの動作を説明するた
めの、サブシステムの再表示処理のフローチャートであ
る。
【図8】図1の文字列抽出システムの動作を説明するた
めの、WWWブラウザの再表示処理のフローチャートで
ある。
【図9】図1の文字列抽出システムの動作を説明するた
めの、文字列情報及びマウスカーソルの座標情報の転送
処理のフローチャートである。
【図10】図1の文字列抽出システムの動作を説明する
ための辞書検索処理のフローチャートである。
【図11】図1の文字列抽出システムの動作を説明する
ための表示例を示す図である。
【図12】第2の実施の形態にかかる文字列抽出システ
ムの描画動作を説明するためのタイマ設定及び解除の処
理のフローチャートである。
【図13】第2の実施の形態にかかる文字列抽出システ
ムの描画動作を説明するための描画処理のフローチャー
トである。
【図14】第2の実施の形態にかかる文字列抽出システ
ムの動作を説明するための文字列抽出処理のフローチャ
ートである。
【図15】第3の実施の形態にかかる文字列抽出システ
ムの描画動作を説明するための描画処理のフローチャー
トである。
【符号の説明】
1 ウィンドウシステム 10 カーネル 11a〜11d サブシステム 110 スレッド 111a〜111d API 112a〜112d テキスト出力部 12 共用メモリ 121 メモリ領域 2 WWWブラウザ 3b 文字列抽出DLL 3a、3c〜3d リモートスレッド(文字列抽
出DLL) 31 テキスト入力部 32 描画部 4 辞書検索アプリケーション

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】テキスト出力部を含むアプリケーションイ
    ンタフェースを備える複数のサブシステムを備えるオペ
    レーティングシステムを実行する手段と、 前記サブシステム上で動作し、前記テキスト出力部を介
    して前記サブシステムに文字列を供給することにより該
    文字列を表示画面上に表示するアプリケーションを実行
    する手段と、 前記表示画面上のカーソル位置の画像を無効化すること
    により、前記アプリケーションに再表示用の文字列を出
    力させる画像無効化手段と、 前記アプリケーションが出力した前記再表示用の文字列
    を入力すると共に、前記再表示用の文字列を前記テキス
    ト出力部を介して前記サブシステムに供給することによ
    り、前記再表示用の文字列を再表示する入力手段と、 前記入力手段が入力した前記再表示用の文字列を記憶す
    る記憶手段とを備える、 ことを特徴とする文字列抽出システム。
  2. 【請求項2】オペレーティングシステム実行手段と、ア
    プリケーション実行手段と、画像無効化手段と、入力手
    段と、記憶手段とより構成され、 前記オペレーティングシステム実行手段は、文字列を入
    力して所定の出力先に出力するテキスト出力部を含むア
    プリケーションインタフェースを備える複数のサブシス
    テムを備えるオペレーティングシステムを実行し、 前記アプリケーション実行手段は、前記サブシステム上
    で動作し、前記テキスト出力部を介して前記サブシステ
    ムに文字列を供給することにより該文字列を表示画面上
    に表示するアプリケーションを実行し、 前記画像無効化手段は、前記表示画面上のカーソル位置
    の画像を無効化することにより、前記アプリケーション
    に再表示用の前記文字列を出力させると共に、前記テキ
    スト出力部による前記文字列の前記出力先を、所定のア
    ドレスに対応付けられた前記入力手段に設定し、 前記入力手段は、前記所定のアドレスに対応付けられ、
    前記画像無効化手段により前記文字列の前記出力先を設
    定された前記テキスト出力部より再表示用の前記文字列
    を入力し、 前記記憶手段は、前記入力手段が入力した再表示用の前
    記文字列を記憶する、 ことを特徴とする文字列抽出システム。
  3. 【請求項3】前記画像無効化手段は、前記表示画面上の
    カーソル位置に画像を書き込むことにより、前記アプリ
    ケーションに再表示用の文字列を出力させる描画手段を
    備える、 ことを特徴とする請求項1又は2に記載の文字列抽出シ
    ステム。
  4. 【請求項4】前記描画手段は、目視困難なドット列をカ
    ーソル位置に書き込む手段を含む、 ことを特徴とする請求項3に記載の文字列抽出システ
    ム。
  5. 【請求項5】前記オペレーティングシステムは更に、一
    つの前記サブシステム上で動作する前記アプリケーショ
    ンが他の前記サブシステムの前記アプリケーションイン
    タフェースを変更することを禁止する手段を備える、 ことを特徴とする請求項1乃至4のいずれか1項に記載
    の文字列抽出システム。
  6. 【請求項6】前記記憶手段が記憶した前記再表示用の文
    字列を入力することにより、前記カーソル位置近傍の文
    字列を抽出する文字列抽出手段を更に備える、 ことを特徴とする請求項1乃至5のいずれか1項に記載
    の文字列抽出システム。
  7. 【請求項7】前記文字列抽出手段は、前記記憶手段より
    取得した文字列から、カーソル位置近傍の終端文字で挟
    まれる文字列を、単語として抽出する単語抽出手段を含
    む、 ことを特徴とする請求項1乃至6のいずれか1項に記載
    の文字列抽出システム。
  8. 【請求項8】前記文字列抽出手段は、前記記憶手段より
    取得した文字列から、カーソル位置の文字を先頭とする
    文字列を、単語として抽出する単語抽出手段を含む、 ことを特徴とする請求項1乃至6のいずれか1項に記載
    の文字列抽出システム。
  9. 【請求項9】抽出した単語から辞書を検索し、前記入力
    手段を介さずに前記表示手段に検索結果を供給して表示
    させる辞書アプリケーションを更に備える、 ことを特徴とする請求項7又は8に記載の文字列抽出シ
    ステム。
  10. 【請求項10】表示画面上への文字列表示を行う文字列
    出力部を含むアプリケーションインタフェースを有する
    複数のサブシステムと、一つの前記サブシステム上で動
    作するアプリケーションが他の前記サブシステムの前記
    アプリケーションインタフェースを変更することを禁止
    する手段とからなるオペレーティングシステムを実行す
    るオペレーティングシステム実行手段と、 前記文字列出力部に表示対象文字列を供給することによ
    り、前記表示画面上へ文字列を表示するアプリケーショ
    ンと、 前記サブシステムの前記文字列出力部と置換して使用さ
    れ、前記アプリケーションからの表示データを受信し、
    受信した表示データを前記サブシステムに供給する入力
    部と、 前記入力部が抽出した前記表示データを記憶する記憶部
    と、 前記記憶部が記憶した前記表示データを入力すると共に
    入力した前記表示データに含まれる文字列を抽出する文
    字列抽出部と、 を具備することを特徴とする文字列抽出システム。
  11. 【請求項11】テキスト出力部を含むアプリケーション
    インタフェースを備える複数のサブシステムを備えるオ
    ペレーティングシステム上で動作し、アプリケーション
    が表示画面上のカーソル位置に表示する文字列の画像を
    無効化することにより、前記アプリケーションに再表示
    用の文字列を出力させる画像無効化用プログラムと、 前記オペレーティングシステム上で動作し、前記アプリ
    ケーションが出力した前記再表示用の文字列を入力する
    と共に、前記再表示用の文字列を前記テキスト出力部を
    介して前記サブシステムに供給することにより、前記再
    表示用の文字列を再表示する入力用プログラムと、 前記オペレーティングシステム上で動作し、前記入力用
    プログラムにより入力された前記再表示用の文字列を記
    憶する記憶用プログラムと、 を記憶することを特徴とするプログラム記憶媒体であっ
    て、 前記アプリケーションは、前記サブシステム上で動作
    し、前記テキスト出力部を介して前記サブシステムに文
    字列を供給することにより該文字列を表示画面上に表示
    する、 ことを特徴とするプログラム記憶媒体。
  12. 【請求項12】文字列を入力して所定の出力先に出力す
    るテキスト出力部を含むアプリケーションインタフェー
    スを備える複数のサブシステムを備えるオペレーティン
    グシステム上で動作し、アプリケーションが表示画面上
    のカーソル位置に表示する文字列の画像を無効化するこ
    とにより、前記アプリケーションに再表示用の前記文字
    列を出力させると共に、前記テキスト出力部による前記
    文字列の前記出力先を所定のアドレスに対応付けられた
    プログラムに設定する画像無効化用プログラムと、 前記オペレーティングシステム上で動作し、前記所定の
    アドレスに対応付けられ、前記画像無効化用プログラム
    により前記文字列の前記出力先を設定された前記テキス
    ト出力部より再表示用の前記文字列を入力する入力用プ
    ログラムと、 前記オペレーティングシステム上で動作し、前記入力用
    プログラムにより入力された再表示用の前記文字列を記
    憶する記憶用プログラムと、 を記憶することを特徴とするプログラム記憶媒体であっ
    て、 前記アプリケーションは、前記サブシステム上で動作
    し、前記テキスト出力部を介して前記サブシステムに文
    字列を供給することにより該文字列を表示画面上に表示
    する、 ことを特徴とするプログラム記憶媒体。
  13. 【請求項13】前記画像無効化用プログラムは、前記表
    示画面上のカーソル位置に画像を書き込むことにより、
    前記アプリケーションに再表示用の文字列を出力させる
    描画用プログラムを備える、 ことを特徴とする請求項11又は12に記載のプログラ
    ム記憶媒体。
  14. 【請求項14】前記オペレーティングシステムは更に、
    一つの前記サブシステム上で動作する前記アプリケーシ
    ョンが他の前記サブシステムの前記アプリケーションイ
    ンタフェースを変更することを禁止する手段を備える、 ことを特徴とする請求項11、12又は13に記載のプ
    ログラム記憶媒体。
  15. 【請求項15】複数のサブシステムを備え、各前記サブ
    システムは、各前記サブシステム上で動作するアプリケ
    ーションから情報を入力し、前記情報が表す画像を表示
    画面上に表示する手段を備える、ことを特徴とするオペ
    レーティングシステムを実行するステップと、 前記サブシステムに文字列を供給することにより、前記
    文字列を前記表示画面上に表示させる前記アプリケーシ
    ョンを前記サブシステム上で実行するステップと、 前記サブシステムが前記表示画面上のカーソル位置に表
    示する画像を無効化することにより、再表示のための前
    記文字列を前記アプリケーションに出力させる画像無効
    化ステップと、 前記アプリケーションから再表示のための前記文字列を
    取得すると共に、再表示のための前記文字列を前記サブ
    システムに供給することにより、前記サブシステムに前
    記文字列を再表示させる入力ステップと、 前記入力ステップが取得した再表示のための前記文字列
    を記憶する記憶ステップと、 前記記憶ステップにおいて記憶された再表示のための前
    記文字列を入力することにより、前記カーソル位置近傍
    の文字列を抽出する文字列抽出ステップとを含む、 ことを特徴とする文字列抽出方法。
JP9182147A 1997-07-08 1997-07-08 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法 Pending JPH1125095A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9182147A JPH1125095A (ja) 1997-07-08 1997-07-08 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9182147A JPH1125095A (ja) 1997-07-08 1997-07-08 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法

Publications (1)

Publication Number Publication Date
JPH1125095A true JPH1125095A (ja) 1999-01-29

Family

ID=16113190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9182147A Pending JPH1125095A (ja) 1997-07-08 1997-07-08 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法

Country Status (1)

Country Link
JP (1) JPH1125095A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001095151A1 (fr) * 2000-06-08 2001-12-13 Toshihiko Okabe Dispositif de transfert de donnees
JP2007249764A (ja) * 2006-03-17 2007-09-27 Nec Corp 自動ハンドオーバーシステムおよび方法
JP2010009399A (ja) * 2008-06-27 2010-01-14 Yahoo Japan Corp 辞書情報表示装置、辞書情報表示システム、検索装置、辞書情報表示方法、および、そのプログラム
JP2010033139A (ja) * 2008-07-25 2010-02-12 Nec Corp 情報処理装置、電子辞書提供方法及びプログラム
JP2011018357A (ja) * 1998-10-19 2011-01-27 Toshihiko Okabe 情報検索装置、方法、記録媒体及び情報検索システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011018357A (ja) * 1998-10-19 2011-01-27 Toshihiko Okabe 情報検索装置、方法、記録媒体及び情報検索システム
WO2001095151A1 (fr) * 2000-06-08 2001-12-13 Toshihiko Okabe Dispositif de transfert de donnees
JP2007249764A (ja) * 2006-03-17 2007-09-27 Nec Corp 自動ハンドオーバーシステムおよび方法
JP2010009399A (ja) * 2008-06-27 2010-01-14 Yahoo Japan Corp 辞書情報表示装置、辞書情報表示システム、検索装置、辞書情報表示方法、および、そのプログラム
JP2010033139A (ja) * 2008-07-25 2010-02-12 Nec Corp 情報処理装置、電子辞書提供方法及びプログラム

Similar Documents

Publication Publication Date Title
JP3422897B2 (ja) 文字列抽出システム及び文字列抽出方法
US7100123B1 (en) Electronic content search and delivery based on cursor location
EP0368779B1 (en) Method for concurrent data entry and manipulation in multiple applications
US5479599A (en) Computer console with group ICON control
EP0717342B1 (en) Drag and drop operation in a graphical user interface
US4755808A (en) Automatic capture of pointing device actions in a keystroke program
JPH0844527A (ja) ユーザ・インタフェース・オブジェクトを自動的に編成するための方法および装置
JP3284448B2 (ja) カーソル形状設定方法
US5432935A (en) Emulation for executing a second language application program on a computer having a first language operating system
US5973665A (en) Temporally invasive display guide
US6266056B1 (en) Display widget interaction in embedded systems using child graphics contexts
JPH10232768A (ja) グラフィカル ユーザー インタフェース システム及び方法
JPH1125095A (ja) 文字列抽出システム、プログラム記憶媒体及び文字列抽出方法
JP2596690B2 (ja) カーソル位置と表示形像との相関付け方法及び相関付け手段を備えたコンピュータ・システム
JP2776907B2 (ja) ヘルプ情報制御方法および装置
JPH11306170A (ja) ドキュメント作成装置
JPH0346081A (ja) オンライン手書文字入力方法
JPH1165800A (ja) グラフィカルユーザインターフェース制御装置およびその記憶媒体
JP2000187672A (ja) 文字列変換システム及び記録媒体
JP5776459B2 (ja) コンテンツ表示システム、コンテンツ表示方法、コンテンツ表示端末及びプログラム
JP2002312215A (ja) データ連携装置およびデータ連携プログラム
JP2560757B2 (ja) 表示データ処理装置
JP2544452B2 (ja) マルチタスク処理装置
KR100271147B1 (ko) 아이콘 표시장치 및 방법
JP3753780B2 (ja) 情報処理装置におけるコマンド処理方式