JP4497550B2 - レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法 - Google Patents

レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法 Download PDF

Info

Publication number
JP4497550B2
JP4497550B2 JP2006505916A JP2006505916A JP4497550B2 JP 4497550 B2 JP4497550 B2 JP 4497550B2 JP 2006505916 A JP2006505916 A JP 2006505916A JP 2006505916 A JP2006505916 A JP 2006505916A JP 4497550 B2 JP4497550 B2 JP 4497550B2
Authority
JP
Japan
Prior art keywords
unicode
application
currently active
keyboard input
keyboard
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.)
Expired - Fee Related
Application number
JP2006505916A
Other languages
English (en)
Other versions
JP2007538295A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007538295A publication Critical patent/JP2007538295A/ja
Application granted granted Critical
Publication of JP4497550B2 publication Critical patent/JP4497550B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/018Input/output arrangements for oriental characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、レガシ・オペレーティング・システムでユニコード入力を可能にする装置および方法を対象とする。具体的に言うと、本発明は、ユニコード・サポートまたは特定の選択された筆記文字に関するユニコード・サポートを有しないオペレーティング・システムでアプリケーションが実行されている場合であってもユニコードをサポートするアプリケーションと共に使用することができる、キーボード・ストロークをユニコード表現に変換する入力方式エディタ(input method editor)を介して変換されたキーストロークを受け取る機構を対象とする。
Microsoft Corporation社のWindows(R) 2000(商標)およびWindows(R) XP(商標)などの現代のオペレーティング・システムは、入力方式エディタ(IME)を介するユニコード入力を完全にサポートする。ユニコードは、1文字ごとに1バイトではなく2バイトを使用する、ASCII文字セットのスーパーセットである。その結果、ユニコード文字セットは、ASCIIの256文字ではなく、65536文字の組合せを扱うことができる。これによって、ASCII文字セットでは表現できない世界中の言語の多くを、ユニコードで表すことが可能になる。
入力方式エディタ(IME)は、コンピュータ・ユーザが、日本語文字などの複雑な文字および記号を標準キーボードを使用して入力できるようにするプログラムである。そのようなIMEの例に、IBM Indic IME、Microsoft Global IME 5.02、およびGlobal IME for Office XPが含まれる。IMEは、キーボード・イベントをとり、これを、オペレーティング・システムまたはオペレーティング・システム環境内で稼動するアプリケーションあるいはその両方と共に使用できるユニコード表現に変換する。
Microsoft Windows(R)95(商標)などのレガシ・オペレーティング・システムでは、そのようなIMEフレームワークが存在しないか、文字セットが非常に少数の特定の言語に制限されている。したがって、たいてい、レガシ・オペレーティング・システムは、ユニコード文字セットをサポートできないので、インド筆記文字(たとえば、デバナーガリ文字)、日本筆記文字、および類似物などの複雑な文字セットを利用することができない。
したがって、レガシ・オペレーティング・システムでユニコード・サポートを提供する装置および方法を有することが有益である。さらに、レガシ・オペレーティング・システムの変更を必要とせず、そのオペレーティング・システム環境で稼動するアプリケーションの変更を必要とせず、複雑なハードウェアを必要としない、ユニコード・サポートを提供する装置および方法を有することが有益である。
本発明は、第1の態様で、キーボード入力を受け取るステップと、そのキーボード入力を前記キーボード入力のユニコード表現に変換するステップと、そのキーボード入力のユニコード表現をクリップボード・メモリに保管するステップと、そのキーボード入力の前記ユニコード表現をそのクリップボード・メモリから現在アクティブなアプリケーションに貼り付けるようにその現在アクティブなアプリケーションに指示するステップとを含む、ユニコードをサポートしないオペレーティング・システム環境でその現在アクティブなアプリケーションにテキストを入力する方法を提供する。
この現在アクティブなアプリケーションは、そのアプリケーションがユーザによって選択された時に生成されたアプリケーション・アクティブ化イベントに基づいて識別されることが好ましい。
この方法は、その現在アクティブなプログラムがユニコード機能を有するかどうかを判定するステップをさらに含み、変換ステップ、保管ステップ、および指示ステップは、その現在アクティブなプログラムがユニコード機能を有する場合に限って実行されることが好ましい。
この方法は、さらに、テキストを入力するのに使用される文字セットを選択するグラフィカル・ユーザ・インターフェースを提供するステップと、これによって選択された文字セットを生成するために前記グラフィカル・ユーザ・インターフェースを介して文字セット選択を受け取るステップを含み、ユニコード表現へのキーボード入力の変換は、キーボード入力を選択された文字セットのユニコード表現に変換するステップとをさらに含むことが好ましい。
この現在アクティブなアプリケーションがユニコード機能を有するかどうかの判定は、その現在アクティブなアプリケーションの識別子をユニコード機能を有するアプリケーションの識別子のリストと比較するステップと、その現在アクティブなアプリケーションの識別子がその識別子の前記リストに存在する場合に、その現在アクティブなアプリケーションがユニコード機能を有すると判定するステップとを含むことが好ましい。
第2の態様で、本発明は、したがってデータ処理システムで実行された時に、上に記載の方法を実行するようにそのデータ処理システムに指示する、コンピュータ可読記憶媒体に保管されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムを提供する。
第3の態様で、本発明は、したがってキーボード入力を受け取る手段と、そのキーボード入力をそのキーボード入力のユニコード表現に変換する手段と、そのキーボード入力のユニコード表現をクリップボード・メモリに保管する手段と、そのキーボード入力のユニコード表現をそのクリップボード・メモリから現在アクティブなアプリケーションに貼り付けるようにその現在アクティブなアプリケーションに指示する手段とを含む、プログラムにテキストを入力する装置を提供する。
したがって、本発明の装置および方法を用いると、フォーカス・フック・モジュール、キーボード・フック・モジュール、およびキーストローク変換モジュールが、レガシ・オペレーティング・システムに登録される。フォーカス・フック・モジュールは、現在アクティブなアプリケーションと、現在アクティブなアプリケーションがユニコード対応であるかどうかとを判定する。キーボード・フック・モジュールは、入力インターフェースからキーボード・イベントを受け取り、これらのキーボード・イベントをキーストローク変換モジュールに送る。キーストローク変換モジュールは、キーボード・イベントをユニコード文字に変換し、このユニコード文字が、キーボード・フック・モジュールに送り返される。
キーボード・フック・モジュールは、次に、ユニコード文字を一時ストレージ・メモリ、たとえばクリップボードに保管する。キーボード・フック・モジュールは、次に、コマンドを一時ストレージ・メモリに送って、一時ストレージ・メモリの内容を現在アクティブなアプリケーションに貼り付ける。この形で、オペレーティング・システムがバイパスされ、その結果、オペレーティング・システムが、ユニコード対応アプリケーションと共にユニコードを使用するために入力方式エディタを備える必要がなくなる。
本発明の好ましい実施形態を、添付図面を参照して、例としてのみこれから説明する。
上で述べたように、本発明は、レガシ・オペレーティング・システムでユニコード・サポートを提供する装置および方法を提供する。本発明は、オペレーティング・システムが存在するすべてのコンピューティング・デバイスで実施することができる。そのようなコンピューティング・デバイスに、独立型のパーソナル・コンピュータ、携帯情報端末(PDA)、サーバ・コンピューティング・デバイス、コンピュータ化された携帯電話機、ラップトップ・コンピュータ、パームトップ・コンピュータ、および類似物が含まれるが、これらに制限はされない。図1および2は、本発明を実施できる通常のコンピューティング・デバイスの背景の図を提供することを意図されたものであって、本発明の装置および方法を実施できる装置のタイプに関する制限を暗示することを意図されたものではない。
ここで図面、具体的には図1を参照すると、本発明の好ましい実施形態に従って本発明を実施できるデータ処理システムの絵図が示されている。コンピュータ100が示されており、これには、システム・ユニット102、ビデオ・ディスプレイ端末104、キーボード106、フロップ・ドライブおよび他のタイプの永久記憶媒体およびリムーバブル記憶媒体を含むストレージ・デバイス108、およびマウス110が含まれる。たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホン、および類似物などの追加の入力デバイスを、パーソナル・コンピュータ100に含めることができる。コンピュータ100は、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社の製品であるIBM eServerコンピュータまたはIntelliStationコンピュータなどの適当なコンピュータを使用して実施することができる。
図示の表現に、コンピュータが示されているが、本発明の他の実施形態を、ネットワーク・コンピュータなど、他のタイプのデータ処理システムで実施することができる。コンピュータ100に、コンピュータ100内で動作するコンピュータ可読媒体に存在するシステム・ソフトウェアによって実施できるグラフィカル・ユーザ・インターフェース(GUI)が含まれることも好ましい。
図2を参照すると、本発明を実施できるデータ処理システムのブロック図が示されている。データ処理システム200は、図1のコンピュータ100など、本発明の処理を実施するコードまたは命令を配置できるコンピュータの例である。データ処理システム200は、PCI(peripheral component interconnect)ローカル・バス・アーキテクチャを使用している。図示の例ではPCIバスが使用されているが、AGP(Accelerated Graphics Port)およびISA(Industry Standard Architecture)などの他のバス・アーキテクチャを使用することができる。
プロセッサ202およびメイン・メモリ204が、PCIブリッジ208を介してPCIローカル・バス206に接続されている。PCIブリッジ208には、プロセッサ202用の統合メモリ・コントローラおよびキャッシュ・メモリも含めることができる。PCIローカル・バス206への追加接続は、直接構成要素相互接続を介してまたはアドイン・ボードを介して行うことができる。図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ210、SCSI(small computer system interface)ホスト・バス・アダプタ212、および拡張バス・インターフェース214が、直接構成要素接続によってPCIローカル・バス206に接続されている。対照的に、オーディオ・アダプタ216、グラフィックス・アダプタ218、およびオーディオ/ビデオ・アダプタ219は、拡張スロットに挿入されたアドイン・ボードによってPCIローカル・バス206に接続されている。拡張バス・インターフェース214は、キーボードおよびマウス・アダプタ220、モデム222、および追加メモリ224に接続を提供する。SCSIホスト・バス・アダプタ212は、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230に接続を提供する。通常のPCIローカル・バス実施形態は、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタをサポートする。
オペレーティング・システムが、プロセッサ202で稼動し、図2のデータ処理システム200内のさまざまな構成要素の調整およびその制御の提供に使用される。オペレーティング・システムは、Microsoft Corporation社から入手できるWindows(R)XPなどの市販オペレーティング・システムとすることができる。Java(R)などのオブジェクト指向プログラミング・システムが、オペレーティング・システムとあいまって稼動し、データ処理システム200で実行されるJava(R)プログラムまたはJava(R)アプリケーションからオペレーティング・システムへの呼出を提供することができる。「Java(R)」は、Sun Microsystems,Inc社の商標である。オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムの命令は、ハード・ディスク・ドライブ226などのストレージ・デバイスに置かれ、プロセッサ202による実行のためにメイン・メモリ204にロードすることができる。
当業者は、図2のハードウェアを、実施形態に応じて変更できることを諒解するであろう。フラッシュ読取専用メモリ(ROM)、同等の不揮発性メモリ、または光学ディスク・ドライブおよび類似物などの他の内部ハードウェアまたは周辺デバイスを、図2に示されたハードウェアに加えてまたはその代わりに使用することができる。また、本発明の処理を、マルチプロセッサ・データ処理システムに適用することができる。
たとえば、任意選択としてネットワーク・コンピュータとして構成される場合に、データ処理システム200に、SCSIホスト・バス・アダプタ212、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230を含めないことができる。その場合に、正しくはクライアント・コンピュータと呼ばれるコンピュータに、LANアダプタ210、モデム222、または類似物など、あるタイプのネットワーク通信インターフェースが含まれる。もう1つの例として、データ処理システム200は、データ処理システム200にあるタイプのネットワーク通信インターフェースが含まれるか否かにかかわりなく、あるタイプのネットワーク通信インターフェースに頼らずにブート可能になるように構成された独立型システムとすることができる。もう1つの例として、データ処理システム200を、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方の保管のための不揮発性メモリを提供するためにROMまたはフラッシュROMあるいはその両方を用いて構成された携帯情報端末(PDA)とすることができる。
図2に示された例および上で説明した例は、アーキテクチャ的制限を暗示することを意図されたものではない。たとえば、データ処理システム200は、PDAの形をとることの他に、ノートブック・コンピュータまたはハンド・ヘルド・コンピュータとすることもできる。データ処理システム200を、キオスクまたはウェブ・アプライアンスとすることもできる。
本発明の処理は、コンピュータ実施された命令を使用してプロセッサ202によって実行され、このコンピュータ実施された命令は、たとえばメイン・メモリ204、メモリ224、または1つもしくは複数の周辺デバイス226〜230などのメモリに置くことができる。
図1および図2に示されたコンピューティング・デバイスのオペレーティング・システムは、本発明の好ましい実施形態では、ユニコード機能が存在しないレガシ・オペレーティング・システムである。そのようなレガシ・オペレーティング・システムの例に、たとえば、Microsoft Windows(R) 95(商標)およびWindows(R) 98(商標)が含まれる。他の実施形態で、コンピューティング・デバイスのオペレーティング・システムは、選択された言語文字セットだけがオペレーティング・システムによってサポートされるという点で制限されたユニコード機能を有するオペレーティング・システムであり、本発明を使用して、そのオペレーティング・システムによって特にサポートされていない他の言語文字セットに関する追加ユニコード・サポートを提供することができる。制限されたユニコード・サポートが提供されるそのようなオペレーティング・システムの例に、Microsoft Windows(R)2000(商標)およびWindows(R)XP(商標)が含まれる。
本発明を用いると、レガシ・オペレーティング・システムが存在するか制限されたユニコード・サポートを有するオペレーティング・システムが存在するコンピューティング・デバイスのユーザが、オペレーティング・システムの制限にもかかわらずユニコード対応アプリケーションを用いてユニコードを利用することができる。すなわち、本発明は、レガシ・オペレーティング・システムおよび制限付きサポート・オペレーティング・システムに入力方法エディタを提供し、ユーザが、オペレーティング・システムがその文字セットをサポートするか否かに関わりなく、複数のユニコード・ベースの文字セットから、使用される言語文字セットのタイプを選択できるようになる。
本発明の装置および方法を用いると、ユーザは、図3に示されたものなどの構成インターフェースを呼び出して、オペレーティング・システム環境内でアプリケーションと共に使用する文字セットを選択することができる。本発明は、オペレーティング・システムの制限にもかかわらずユニコード対応アプリケーションにキーストロークのユニコード表現を貼り付けるように一緒に動作するキーボード・フック・モジュール、フォーカス・フック・モジュール、キーストローク変換モジュール、および一時ストレージ・メモリ(たとえば、クリップボード)を使用することによって、オペレーティング・システムの「バイパス」を提供する。
図4を参照すると、図からわかるように、入力方式エディタ400が、オペレーティング・システム430など、制限されたユニコード・サポートのレガシ・オペレーティング・システムのために設けられている。入力方式エディタ400に、フォーカス・フック・モジュール420、キーボード・フック・モジュール440、キーストローク変換モジュール460、および入力インターフェース450が含まれる。
本発明では、キーボード・フック・モジュール440およびフォーカス・フック・モジュール420が、コンピューティング・デバイスのオペレーティング・システム430に登録される。フォーカス・フック・モジュール420は、アプリケーション・アクティブ化イベントについて継続的に監視する。ユーザによるアプリケーションの選択、たとえば、アプリケーションの最初の稼動、オペレーティング・システム環境内でアプリケーション・ウィンドウをアクティブにするための切替、または類似物のいずれかによるアプリケーションのアクティブ化がある時に、フォーカス・フック・モジュール420が、アプリケーション・アクティブ化イベントを受け取る。図4には、アプリケーション410がオペレーティング・システム環境の「フォーカス」であることを示すために、アプリケーション・アクティブ化イベントがアプリケーション410から受け取られることが示されているが、実際には、フォーカス・フック・モジュール420が、オペレーティング・システム430からアプリケーション・アクティブ化イベントを受け取る。
アプリケーション・アクティブ化イベントに応答して、フォーカス・フック・モジュール420が、現在アクティブなアプリケーションと、そのアプリケーションがユニコード文字セットを使用できるかどうかを判定する。現在アクティブなアプリケーションの判定は、アプリケーション・アクティブ化イベントに含まれる情報に基づいて行うことができる。たとえば、アプリケーション・アクティブ化イベントのソースであるアプリケーションの名前、アプリケーション・クラス、他のタイプのアプリケーション識別子、または類似物が、アプリケーション・アクティブ化イベントに含まれる場合があり、これを使用して、現在アクティブなアプリケーションを識別することができる。
フォーカス・フック・モジュール420は、アプリケーションの名前、クラス名、または他のタイプのアプリケーション識別子を、フォーカス・フック・モジュール420によって維持されるかフォーカス・フック・モジュール420によってアクセス可能なユニコード対応アプリケーション識別子のリストと比較することによって、アプリケーションがユニコード機能を有するかどうかを判定することができる。たとえば、ユニコード対応アプリケーション識別子のリストは、コンピューティング・システム内で保管されるファイルで維持することができ、そのファイルに、フォーカス・フック・モジュール420によってアクセスして、現在アクティブなアプリケーションがユニコード対応であるかどうかを判定することができる。代替案では、ユニコード対応アプリケーション識別子のリストを、フォーカス・フック・モジュール420にハードコードすることができる。
これらの判定に基づいて、フォーカス・フック・モジュール420は、アプリケーションが現在アクティブであることと、アプリケーションがユニコード対応であることを示すフラグを、オペレーティング・システム430のアプリケーション・コンテキスト内でセットする。これらのフラグは、その後、キーボード・フック・モジュール440によって、キーボード・イベントをキーストローク変換モジュール460に送るかどうかと、ユニコード表現を貼り付けるためにどのアプリケーションに送るかを判定するのに使用される。
キーボード・フック・モジュール440は、コンピューティング・デバイスに取り付けられたキーボードを介するなど、ユーザがキーストロークを入力することに応答して、IME 400の入力インターフェース450からキーボード・イベントを受け取る。キーボード・フック・モジュール440は、現在アクティブ・アプリケーション・フラグおよび現在アクティブなアプリケーションのユニコード機能フラグを読み取って、アプリケーション410がユニコード入力を受け取ることができるかどうかを判定する。できない場合には、動作が終了し、キーボード・イベントは、IME 400が存在しないかのように普通の形で処理される。アプリケーション410がユニコード入力を受け取ることができる場合には、キーボード・フック・モジュール440は、キーボード・イベントをキーストローク変換モジュール460に転送する。
さらに、入力インターフェース450は、図3に示されたものなどの構成グラフィカル・ユーザ・インターフェースを提供して、ユーザがアプリケーションと共に利用することを望む文字セットをユーザが選択できるようにすることができる。提供される文字セットに、アプリケーション入力フィールドでこれらの文字セットを提示するのにユニコードの使用を必要とする文字セット、たとえば、中国文字セット、日本文字セット、インド文字セット、および類似物を含めることができる。
キーストローク変換モジュール460は、受け取ったキーボード・イベントをとり、これらのイベントに関連するキーストロークを、そのキーストロークのユニコード表現に変換する。この変換は、入力インターフェース450を介してユーザによって選択された特定の文字セットに基づいて実行することができる。したがって、キーストローク変換モジュール460は、ユニコード表現で識別される複雑な文字へのキーストロークの変換に関して、既存の入力方式エディタで既知の動作に類似する動作を実行する。この形で、ユーザによって行われたキーストロークを、アジア文字セット、インド文字セット、または他の複雑な文字セットに変換することができる。本明細書で使用される用語、アジア文字セットは、日本、中国、ベトナム、ラオス、および類似物を含むアジア諸国で使用される言語および筆記文字を指す。本明細書で使用される用語、インド文字セットは、インド亜大陸で使用される言語および筆記文字を指す。
ユーザによって入力されたキーストロークのユニコード表現が、次に、キーボード・フック・モジュール440に返される。キーボード・フック・モジュール440は、そのユニコード表現を一時ストレージ・メモリ470に保管する。この一時ストレージ・メモリ470は、好ましい実施形態ではクリップボードである。
クリップボードは、「コピーおよび貼付け」動作と「切取りおよび貼付け」動作を使用することによってあるアプリケーションから別のアプリケーションにコピーまたは移動されるデータの一時保持区域として使用される、メモリの予約済みセクションである。何かがクリップボードに転送されるたびに、クリップボードの以前の内容が削除される。クリップボードは、舞台裏の機能として働き、別のアプリケーションへの貼付けのためにその内容を保持する。
ユニコード表現を一時ストレージ・メモリ470に保管した後に、キーボード・フック・モジュール440は、フォーカスがあるアプリケーションにコマンドを送って、現在アクティブ・アプリケーション・フラグによって識別される現在アクティブなアプリケーション410に一時ストレージ・メモリ470の内容を貼り付ける。次に、一時ストレージ・メモリ470の内容が、アプリケーション410内で、アプリケーション410の入力フィールドのカーソルの位置に貼り付けられる。この形で、オペレーティング・システム430がユニコードをサポートしないか、ユニコードの制限されたサポートを有するのいずれかであり、ユーザによって選択された特定の文字セットがオペレーティング・システム430によって特にサポートされない場合であっても、キーボード・フック・モジュール440によって受け取られたキーボード・イベントに応答してキーストローク変換モジュール460によって生成された一時ストレージ・メモリ470に保管されたユニコード表現が、アプリケーション410に入力される。図5は、電子メール・アプリケーションに適用された時の本発明の主要な構成要素の相互作用を示すメッセージ・フロー図である。本発明は、ユーザからのテキスト入力がアプリケーションの1つまたは複数の入力フィールドで受け取られるすべてのアプリケーションと共に使用することができる。例として、図5で、International Business Machines,Inc.社のLotus Notes(商標)またはMicrosoft Outlook(商標)などの電子メール・アプリケーションを参照し、クリップボードを使用して、電子メール・アプリケーションに貼り付けられるテキスト入力のユニコード表現を一時的に保管する。
図5からわかるように、オペレーティング・システム510は、現在アクティブなアプリケーションとしてのアプリケーションのユーザ選択を受け取る。この選択は、たとえば、デスクトップでアプリケーションを表すアイコンの「ダブル・クリック」に応答するものなどのアプリケーションのロードおよび稼動、ツール・バーまたはデスクトップ内で開かれたウィンドウからの既にロードされ稼動しているアプリケーションの選択、または類似物とすることができる。図示の例では、選択されたアプリケーションが、ユーザの選択に応答してアクティブ化される電子メール・アプリケーション530である。
アプリケーションのアクティブ化に応答して、フォーカス・フック・モジュール540が、アクティブ化され、フォーカス・フック・モジュール540が、現在アクティブなアプリケーションとして電子メール・アプリケーション530を識別し、電子メール・アプリケーション530がユニコードを使用できるかどうかを判定する。電子メール・アプリケーション530がユニコードを使用できるとフォーカス・フック・モジュール540が判定した場合に、フォーカス・フック・モジュール540は、キーボード・フック・モジュール550にメッセージを送り、これによって、キーボード・イベントをリスンするためにキーボード・フック・モジュール550をアクティブ化する。フォーカス・フック・モジュール540は、次に、オペレーティング・システム510のアプリケーション・コンテキスト内でアクティブ・アプリケーション・フラグおよびユニコード機能フラグをセットする。
少し後に、または上の処理の前に、ユーザが、電子メール・アプリケーション530と共に使用される文字セットを選択することができる。この文字セットは、たとえば本発明のIMEを介してユニコードを使用することによってのみ入手可能な複雑な文字セットとすることができる。IMEインターフェース520が、アクティブ化され、コンピューティング・デバイスに関連するキーボードからユーザ・キーストロークを受け取る。
受け取られたキーストロークは、キーボード・イベントの生成に使用され、このキーボード・イベントが、キーボード・フック・モジュール550に転送される。電子メール・アプリケーション530は、ユニコードをサポートすると判定されている(たとえば、フォーカス・フック・モジュール540によってセットされたフラグに基づいて)ので、キーボード・フック・モジュール550は、このキーボード・イベントをIMEエンジン560に送る。IMEエンジン560は、キーボード・イベントをユニコード表現に変換し、このユニコード表現をキーボード・フック・モジュール550に送り返す。
キーボード・フック・モジュール550は、ユニコードを電子メール・アプリケーション530の入力フィールドに貼り付けられるようにするために、このユニコード表現を一時的にクリップボード570に保管する。その後、キーボード・フック550は、電子メール・アプリケーション530に貼付けコマンドを送る。クリップボード570は、クリップボード570に保管されたユニコード表現を、電子メール・アプリケーション530のアプリケーション・インターフェースすなわち、カーソルが現在ある入力フィールドに貼り付ける。この形で、アプリケーションは、オペレーティング・システムがユニコードをサポートしない場合であってもユニコード入力を受け取り、そのユニコードをディスプレイ・スクリーン上のアプリケーション・ウィンドウ内の適当な文字表現に変換することができる。したがって、ユーザは、ユニコードをサポートしないレガシ・オペレーティング・システムを有するコンピューティング・デバイスに結合された標準キーボードで電子メール・メッセージを入力でき、ユーザによって選択された複雑な文字セットでディスプレイ・スクリーン上で表された電子メール・メッセージを見ることができる。
図6は、本発明の例示的動作の概要を示す流れ図である。図6からわかるように、この動作は、フォーカス選択を受け取ること(ステップ610)によって開始される。用語「フォーカス」は、ユーザが現在インターフェースしているアプリケーションとしての現在アクティブなアプリケーションの選択を示すことを意味する。
次に、フォーカス・フック・モジュールをアクティブ化し(ステップ620)、アプリケーションがユニコードをサポートするかどうかに関する判定を行う(ステップ630)。そうでない場合には、この動作は終了する。そうである場合には、キーボード・フック・モジュールをアクティブ化し(ステップ640)、このキーボード・フック・モジュールが、キーストローク入力を受け取り、ユニコード表現への変換のためにキーボード・イベントを生成する。
受け取られたキーストロークに応答してキーボード・フック・モジュールによって生成されたキーボード・イベントを、IMEエンジンに送る(ステップ650)。IMEエンジンは、これらのキーボード・イベントをユニコード文字すなわちキーボード・イベントのユニコード表現に変換する(ステップ660)。ユニコード文字をキーボード・フック・モジュールに送り返し(ステップ670)、キーボード・フック・モジュールは、これをクリップボードなどの一時ストレージ・メモリに保管する(ステップ680)。次に、キーボード・フック・モジュールは、アプリケーションに貼付けコマンドを送り、そこに保管されたユニコード文字を、アプリケーションの入力フィールドのカーソル位置に貼り付けさせ(ステップ690)、この動作が終了する。
したがって、本発明を用いると、そのオペレーティング・システムがユニコードをサポートしないコンピューティング・デバイスでユニコード入力を受け取ることができる。この形で、ユニコード対応アプリケーションを、レガシ・オペレーティング・システムと共に、完全なユニコード機能と共に使用することができる。本発明を用いると、オペレーティング・システムがユニコードをサポートしないか、ユーザの特定の言語の複雑な文字セットをサポートできない場合であっても、ユーザが、自分自身の言語の複雑な文字セットでユニコード対応アプリケーションとインターフェースすることができる。
本発明を、完全に機能するデータ処理システムに関して説明したが、本発明の処理を、命令のコンピュータ可読媒体の形およびさまざまな形で配布することができることと、本発明が、配布の実行に実際に使用される信号担持媒体の特定のタイプに関わりなく同等に適用されることを当業者が諒解するであろうことに留意することが重要である。コンピュータ可読媒体の例に、フロッピ・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体と、ディジタル通信リンク、アナログ通信リンク、たとえばラジオ周波数伝送および光波伝送などの伝送形式を使用する有線通信リンクまたは無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムでの実際の使用のために復号されるコード化されたフォーマットの形をとることができる。
本発明を実施できるコンピューティング・デバイスを示す例示的な図である。 本発明を実施できるコンピューティング・デバイスの主な動作構成要素を示す例示的なブロック図である。 本発明の例示的実施形態による、入力方式エディタの構成グラフィカル・ユーザ・インターフェースを示す例示的な図である。 本発明による、レガシ・オペレーティング・システムの入力方式エディタを示す例示的なブロック図である。 電子メール・アプリケーションに適用された時の本発明の主要な構成要素の相互作用を示すメッセージ・フロー図である。 本発明の例示的動作の概要を示す流れ図である。
符号の説明
100 コンピュータ
102 システム・ユニット
104 ビデオ・ディスプレイ端末
106 キーボード
108 ストレージ・デバイス
110 マウス
200 データ処理システム
202 プロセッサ
204 メイン・メモリ
206 PCIローカル・バス
208 PCIブリッジ
210 LANアダプタ
212 SCSIホスト・バス・アダプタ
214 拡張バス・インターフェース
216 オーディオ・アダプタ
218 グラフィックス・アダプタ
219 オーディオ/ビデオ・アダプタ
220 キーボードおよびマウス・アダプタ
222 モデム
224 追加メモリ
226 ハード・ディスク・ドライブ
228 テープ・ドライブ
230 CD−ROMドライブ
400 入力方式エディタ
410 アプリケーション
420 フォーカス・フック・モジュール
430 オペレーティング・システム
440 キーボード・フック・モジュール
450 入力インターフェース
460 キーストローク変換モジュール
470 一時ストレージ・メモリ
510 オペレーティング・システム
520 IMEインターフェース
530 電子メール・アプリケーション
540 フォーカス・フック・モジュール
550 キーボード・フック・モジュール
560 IMEエンジン
570 クリップボード

Claims (7)

  1. ユニコードをサポートしないオペレーティング・システム環境において現在アクティブなアプリケーションにテキストを入力する方法であって、
    キーボード入力を受け取るステップと、
    前記キーボード入力を前記キーボード入力のユニコード表現に変換するステップと、
    前記キーボード入力の前記ユニコード表現をクリップボード・メモリに保管するステップであって、前記クリップボードはデータをコピー又は移動するためのデータの一時保持区域である、前記保管するステップと、
    前記キーボード入力の前記ユニコード表現を前記クリップボード・メモリから現在アクティブなアプリケーションの入力フィールドのカーソル位置に貼り付けるように該現在アクティブなアプリケーションに指示するステップと
    を含む、前記方法。
  2. 前記現在アクティブなアプリケーションは、前記アプリケーションがユーザによって選択されたときに生成されたアプリケーション・アクティブ化イベントに基づいて識別される、請求項1に記載の方法。
  3. 前記現在アクティブなアプリケーションがユニコード機能を有するかどうかを判定するステップをさらに含み、前記変換するステップ、前記保管するステップ、および前記指示するステップは、前記現在アクティブなアプリケーションがユニコード機能を有する場合に限って実行される、請求項1に記載の方法。
  4. テキストを入力するのに使用される文字セットを選択するグラフィカル・ユーザ・インターフェースを提供するステップと、
    これによって選択された文字セットを生成するために前記グラフィカル・ユーザ・インターフェースを介して文字セット選択を受け取るステップであって、前記キーボード入力の前記ユニコード表現への変換は、前記選択された文字セットのユニコード表現への前記キーボード入力の変換を含む、前記受け取るステップと
    をさらに含む、請求項1に記載の方法。
  5. 前記現在アクティブなアプリケーションがユニコード機能を有するかどうかの判定は、
    前記現在アクティブなアプリケーションの識別子をユニコード機能を有するアプリケーションの識別子のリストと比較するステップと、
    前記現在アクティブなアプリケーションの前記識別子が識別子の前記リストに存在する場合に、前記現在アクティブなアプリケーションがユニコード機能を有すると判定するステップと
    を含む、請求項3に記載の方法。
  6. データ処理システムに、請求項1〜5のいずれか1項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
  7. ユニコードをサポートしないオペレーティング・システム環境において現在アクティブなアプリケーションにテキストを入力する装置であって、
    キーボード入力を受け取る手段と、
    前記キーボード入力を前記キーボード入力のユニコード表現に変換する手段と、
    前記キーボード入力の前記ユニコード表現をクリップボード・メモリに保管する手段であって、前記クリップボードはあるデータをコピー又は移動するためのデータの一時保持区域である、前記保管する手段と、
    前記キーボード入力の前記ユニコード表現を前記クリップボード・メモリから現在アクティブなアプリケーションの入力フィールドのカーソル位置に貼り付けるように前記現在アクティブなアプリケーションに指示する手段と
    を含む、前記装置。
JP2006505916A 2003-03-13 2004-03-04 レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法 Expired - Fee Related JP4497550B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/388,096 US8181109B2 (en) 2003-03-13 2003-03-13 Enabling unicode input in legacy operating systems
PCT/GB2004/000920 WO2004081781A1 (en) 2003-03-13 2004-03-04 Apparatus and method for enabling unicode input in legacy operating systems

Publications (2)

Publication Number Publication Date
JP2007538295A JP2007538295A (ja) 2007-12-27
JP4497550B2 true JP4497550B2 (ja) 2010-07-07

Family

ID=32962055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505916A Expired - Fee Related JP4497550B2 (ja) 2003-03-13 2004-03-04 レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法

Country Status (7)

Country Link
US (1) US8181109B2 (ja)
JP (1) JP4497550B2 (ja)
KR (1) KR100834603B1 (ja)
CN (1) CN1739082A (ja)
CA (1) CA2515466A1 (ja)
TW (1) TWI284825B (ja)
WO (1) WO2004081781A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607086B2 (en) * 2003-11-18 2009-10-20 Microsoft Corporation System and method for pre-processing input events
US7711549B2 (en) * 2004-02-17 2010-05-04 Microsoft Corporation Multi-language jump bar system and methods
CN100415023C (zh) * 2004-11-23 2008-08-27 华为技术有限公司 一种在移动台中记忆输入法的方法
US8077974B2 (en) 2006-07-28 2011-12-13 Hewlett-Packard Development Company, L.P. Compact stylus-based input technique for indic scripts
US8448138B2 (en) * 2008-01-15 2013-05-21 Microsoft Corporation Recording user-driven events within a computing system
US7890548B2 (en) * 2008-01-22 2011-02-15 International Business Machines Corporation Automation process system and method to upgrade from non-unicode transformation support to unicode data transformation support
US9098560B2 (en) * 2009-12-22 2015-08-04 International Business Machines Corporation Client message distribution in a distributed directory based on language and character sets
CN102096662A (zh) * 2010-12-06 2011-06-15 无敌科技(西安)有限公司 编码转换方法
US9208041B2 (en) 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US20150363069A1 (en) * 2013-03-15 2015-12-17 Nec Corporation Display control
JP6397343B2 (ja) * 2015-01-28 2018-09-26 株式会社日立社会情報サービス 情報処理装置、および、情報処理方法
US9904783B2 (en) * 2015-02-09 2018-02-27 Lenovo (Beijing) Co., Ltd. Information processing method and electronic device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5523754A (en) * 1993-09-20 1996-06-04 International Business Machines Corporation Method and apparatus for automatic keyboard configuration by layout
US5793381A (en) * 1995-09-13 1998-08-11 Apple Computer, Inc. Unicode converter
US5964839A (en) * 1996-03-29 1999-10-12 At&T Corp System and method for monitoring information flow and performing data collection
US5946499A (en) * 1996-05-10 1999-08-31 Apple Computer, Inc. Method and apparatus for processing text inputs from multiple input devices in a plurality of applications
US6003050A (en) * 1997-04-02 1999-12-14 Microsoft Corporation Method for integrating a virtual machine with input method editors
WO1999031571A1 (en) 1997-12-16 1999-06-24 Microsoft Corporation Soft input panel system and method
CA2244431C (en) 1998-07-30 2002-02-19 Ibm Canada Limited-Ibm Canada Limitee Touchscreen keyboard support for multi-byte character languages
US6359572B1 (en) * 1998-09-03 2002-03-19 Microsoft Corporation Dynamic keyboard
US6204782B1 (en) * 1998-09-25 2001-03-20 Apple Computer, Inc. Unicode conversion into multiple encodings
US6356866B1 (en) * 1998-10-07 2002-03-12 Microsoft Corporation Method for converting a phonetic character string into the text of an Asian language
US6873986B2 (en) 2000-10-30 2005-03-29 Microsoft Corporation Method and system for mapping strings for comparison
US20020146181A1 (en) * 2001-02-06 2002-10-10 Azam Syed Aamer System, method and computer program product for a multi-lingual text engine
US7389474B2 (en) * 2003-02-28 2008-06-17 Microsoft Corporation Language or script-based character set conversions per-application program

Also Published As

Publication number Publication date
US8181109B2 (en) 2012-05-15
TWI284825B (en) 2007-08-01
KR100834603B1 (ko) 2008-06-02
CA2515466A1 (en) 2004-09-23
TW200506696A (en) 2005-02-16
JP2007538295A (ja) 2007-12-27
KR20060013637A (ko) 2006-02-13
CN1739082A (zh) 2006-02-22
US20040181776A1 (en) 2004-09-16
WO2004081781A1 (en) 2004-09-23

Similar Documents

Publication Publication Date Title
JP4497550B2 (ja) レガシ・オペレーティグ・システムでユニコード入力を可能にする装置および方法
US7509251B2 (en) Mock translating software applications at runtime
US7496230B2 (en) System and method for automatic natural language translation of embedded text regions in images during information transfer
CN100485616C (zh) 用于生成对象设置脚本的图形辅助的方法和系统
US8122424B2 (en) Automatic natural language translation during information transfer
JP5021211B2 (ja) デジタル装置メニューエディタのための方法およびシステム
US8122353B2 (en) Composing a message in an online textbox using a non-latin script
KR101541147B1 (ko) 동적 가상 입력 디바이스 구성
JP4965090B2 (ja) 数式の構築を自動化するためのシステムおよび方法
US6976059B1 (en) System and method to provide applets using a server based virtual machine
US20040250215A1 (en) System and method for content and information transfer between program entities
KR20060046189A (ko) 키보드를 사용한 아시아 언어 입력
US8302070B2 (en) Output styling in an IDE console
JP2003015873A (ja) ソフトウェア・プログラムの言語表示方法,ソフトウェア・プログラムの言語表示システム,情報処理プログラムが記録された記録媒体
US20080082961A1 (en) Extensibility mechanisms for visual programming
JP2007538314A (ja) 汎用ユーザインターフェースコマンドアーキテクチャ
KR20050084862A (ko) 데스크탑 구성 방법 및 장치와, 컴퓨터 프로그램
JPH10105149A (ja) フォント表示をコンピュータで実施する方法及びそのプログラムを記録した記録媒体
JP2021140645A (ja) 単語登録装置、単語登録方法、および単語登録プログラム
US20120137218A1 (en) Method to Automatically Display Filenames Encoded in Multiple Code Sets
US7844965B2 (en) Providing user applications for accessing data on multiple platforms from a removable storage medium
US20040100499A1 (en) Apparatus, system and method of configuring desktops based on text label directional properties
Yip et al. A framework for the support of multilingual computing environments
KR20010058740A (ko) 엑스윈도우시스템의 한글입력장치 및 그 방법
CA2561518A1 (en) Extensibility mechanisms for visual programming

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081107

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081107

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20081107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20081110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090401

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090401

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090511

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: 20100407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100407

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100407

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100412

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees