(57)【要約】【課題】従来の出力先プログラムと文字列入力プログラムでは、出力先プログラムにより文字列の編集機能や操作方法が異なったため、使用者が出力先プログラムの編集機能や操作方法に合わせて文字列の編集を行わなくてはならず、手間がかかっていた。【解決手段】文字列入力プログラムを用いて、出力先プログラムの入力済み情報を他の出力先プログラムに移すことができるようにすることで、編集機能の豊富な出力先プログラムで文字列の入力・編集を行えるようにし、効率的に文字列の入力・編集をできるようにした。【選択図】図１
2020009079.tif 000002
【特許請求の範囲】
【請求項１】
文字列入力プログラムにおいて、コンピュータに下記機能を実現させるためのプログラム。
入力装置から出力先プログラム切替の入力を受け取ると、
移動前の編集領域に記録された移動前の入力済み文字列を確保し、
編集用プログラムを起動して編集領域に入力フォーカスを設定し、
入力フォーカスを設定した編集領域に確保した入力済み文字列を記録する。
【請求項２】
請求項１記載のプログラムにおいて、
移動前のプログラムが編集用プログラムの場合、
「編集用プログラムを起動して編集領域に入力フォーカスを設定し、入力フォーカスを設定した編集領域に確保した入力済み文字列を記録する」の代わりに、
「編集用プログラムを終了し、次に入力フォーカスを受け取った編集領域に、確保した入力済み文字列を記録する」とする機能を実現させるためのプログラム。
【請求項３】
請求項１または２記載のプログラムにおいて、入力済み文字列が、入力済み文字列とカーソル位置を特定する情報からなる入力済み情報であるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力装置からの入力を文字列に変換し、出力先プログラムに文字列を出力する文字列入力プログラムに関する。
【背景技術】
【０００２】
スマートフォンやパソコン、ゲーム機などのコンピューターにおいて、文字や文章などの文字列をプログラムやソフトウェア（以下、出力先プログラムと呼ぶ）に入力するときに使用する技術として、ソフトウェアキーボードやＦＥＰ、ＩＭ、ＩＭＥ、音声入力、手書き入力、文字認識プログラム（ＯＣＲ）など、コンピューターへの入力を文字列に変換するプログラムやソフトウェア（以下、文字列入力プログラムと呼ぶ）がよく知られている。文字列入力プログラムは、キーボードやボタン、スイッチ、タッチパッド、タッチパネル、ペン、マウス、ポインティングデバイス、マイク、カメラ、スキャナー、ハードディスク、記憶装置など、使用者がコンピューターに入力するときに使用する装置（以下、入力装置と呼ぶ）からの入力を文字列に変換し、出力先プログラムに出力する。
【０００３】
文字列入力プログラムは、指定の出力先プログラムに対して文字列の入力を行う。使用者は、出力先プログラムのテキストエディット領域や文字入力フィールド、テキストボックスなどの文字列を入力する部分（以下、編集領域と呼ぶ）を入力装置で選択することにより、文字列入力プログラムが編集領域に文字列を入力できる状態にする（以下、この状態を入力フォーカスと呼ぶ）。編集領域は、既に入力済みの文字列（以下、入力済み文字列と呼ぶ）と、入力済み文字列のどこに文字列を入力するのかの位置（以下、この位置をカーソル位置と呼ぶ）を記憶している（以下、入力済み文字列とカーソル位置を特定する情報を合わせた情報を入力済み情報と呼ぶ）。文字列入力プログラムは、入力フォーカスのある出力先プログラムに文字列を出力する。入力フォーカスのある出力先プログラムは文字列を受け取ると、文字列をカーソル位置に挿入（または上書き）して記録し、ディスプレイなどの出力装置に表示する。
【０００４】
出力先プログラムは様々なプログラムやソフトウェアが存在する。文字列を編集することのできるプログラムやソフトウェアは出力先プログラムとなる。例えば、テキストエディタ、メールクライアントソフト、ブラウザ、ＳＮＳアプリ、ショートメッセージサービスアプリなどがある。
【０００５】
出力先プログラムの編集領域が入力済み情報を記録する方法はいくつか存在する。例えば、入力済み文字列とカーソル位置までの文字数（カーソルが幅を持つ場合はその範囲の文字数も）をそれぞれ記録することがある。また、カーソル位置より前の入力済み文字列とカーソル位置より後の入力済み文字列（カーソルが幅を持つ場合はその範囲の文字列も）を分割して記録することにより、カーソル位置を特定できるようにすることもある。あるいは、入力済み文字列とカーソル位置のメモリアドレスを記録することがある。
【０００６】
文字列入力プログラムと出力先プログラムは、通常のプログラム同士では実行できない特別な連携機能を持ち、文字列の入力効率や利便性を高めている。特に、文字列入力プログラムは出力先プログラムの編集領域の入力済み情報を参照することができ、文脈に依存した文字列の入力の精度向上などに活用されている。
【０００７】
また、出力先プログラムは、入力済み文字列を編集することができる。例えば文字列のコピー、切り取り、貼り付け、置換などの文字列を書き換える操作や、単語検索など文字列を調べる操作、特定の単語の色や文字の種類を変更して強調表示する操作、文字列の編集履歴を記録する操作、編集の対象となる部分文字列を選択する操作、操作を取り消して前の状態に戻す操作、などがある。
【０００８】
なお、出力先プログラムには、使用者が文字列を入力する前に既に文字列が入力されていることがある。例えば、テキストエディタで編集するテキストファイルの元データ、返信メールやＳＮＳの引用メッセージ、などである。使用者はこの元からある文字列を編集しながら文字列を追加して入力する。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】ウィキペディア「日本語入力システム」ｈｔｔｐｓ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／％Ｅ６％９７％Ａ５％Ｅ６％９Ｃ％ＡＣ％Ｅ８％ＡＡ％９Ｅ％Ｅ５％８５％Ａ５％Ｅ５％８Ａ％９Ｂ％Ｅ３％８２％Ｂ７％Ｅ３％８２％Ｂ９％Ｅ３％８３％８６％Ｅ３％８３％Ａ０
【００１０】
【非特許文献１】ウィキペディア「テキストボックス」ｈｔｔｐｓ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／％Ｅ３％８３％８６％Ｅ３％８２％ＡＤ％Ｅ３％８２％Ｂ９％Ｅ３％８３％８８％Ｅ３％８３％９Ｃ％Ｅ３％８３％８３％Ｅ３％８２％ＡＦ％Ｅ３％８２％Ｂ９
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかし、従来の出力先プログラムと文字列入力プログラムでは、編集機能の貧弱な出力先プログラムに文字列入力プログラムを使って文字列を入力する場合、効率の良い文字列の編集を行うことができないため、文字列を入力・編集するのに手間がかかっていた。また、出力先プログラムによって文字列を編集する操作方法が異なる場合があり、同じ編集を行う場合でも使用者は出力先プログラムごとに操作方法を切り替える、あるいは出力先プログラムの編集操作を設定し直す、などの手間がかかっていた。
【００１２】
音声入力プログラムなど一部の文字列入力プログラムには、入力する文字列を編集してから出力先プログラムに出力する機能を持つものが存在した。そのため、そのような音声入力プログラムを使用する使用者は、出力先プログラムの編集機能を使わないで、文字列入力プログラムの編集機能を使用して入力する文字列を編集することができる。
【００１３】
しかし、このような入力文字列の編集機能を持つ文字列入力プログラムでも、入力済み文字列を編集することはできなかったため、入力済み文字列を編集する場合は出力先プログラムの編集機能を使わなくてはならず、文字列を入力・編集するのに手間がかかっていた。
【００１４】
また一部の使用者は、そのような機能の貧弱な出力先プログラムに文字列を入力しなくてはならない場合、機能の豊富な別の出力先プログラムを使用して入力する文字列を作成し、その文字列を機能の貧弱な出力先プログラムにコピーして貼り付けることで、機能の貧弱な出力先プログラム上で文字列を編集することを回避している。
【００１５】
しかし、コピー・貼り付け操作では、現在編集しているカーソル位置をコピー・貼付けすることはできないため、ユーザーは貼り付け後にカーソル位置を操作して移動させる必要があり、手間がかかっていた。特に入力済み文字列の文字数が多い場合、コピーする前のカーソル位置を入力済み文字列から探すのが困難になるため、編集を開始するまでの手間が余計にかかっていた。
【００１６】
また、機能の豊富な別の出力先プログラムを使用する場合、機能の豊富な出力先プログラムを立ち上げや文字列のコピー・貼り付けなどの一連の操作を行う必要があり、作業効率が悪くなっていた。
【００１７】
また、このコピーと貼り付け操作では、コピー・貼り付けを行う文字列を保存するクリップボードに文字列を上書きする。そのため、クリップボードに保存されている文字列を使いたい場合は別の出力先プログラムに一時的に文字列を貼り付けて保存しておく必要があり、コピー・貼り付けの使い勝手が悪くなっていた。
【００１８】
本発明は、出力先プログラムに文字列を入力する時に、あらかじめ定められた出力先プログラムを使用して文字列の入力・編集ができるようにすることで、編集機能の貧弱な出力先プログラムでも効率よく文字列を入力・編集できるようにすることを目的とする。
【課題を解決するための手段】
【００１９】
本発明では、上記目的を達成するために、文字列入力プログラムを、コンピュータに下記機能を実現させるためのプログラムとした。
入力装置から出力先プログラム切替の入力を受け取ると、
入力フォーカスのある編集領域に記録された入力済み文字列を確保し（以下、この編集領域を移動前の編集領域、移動前の編集領域を含む出力先プログラムを移動前のプログラム、移動前の編集領域に記録された入力済み文字列を移動前の入力済み文字列と呼ぶ）、
編集用としてあらかじめ設定された出力先プログラム（以下、この出力先プログラムを編集用プログラムと呼ぶ）を起動して編集領域に入力フォーカスを設定し、
入力フォーカスを設定した編集領域に確保した入力済み文字列を記録する（以下、この編集領域を移動後の編集領域、移動後の編集領域を含む出力先プログラムを移動後のプログラム、移動後の編集領域に記録された入力済み文字列を移動後の入力済み文字列と呼ぶ）。
【００２０】
なお入力済み文字列の確保は、通常の文字列入力プログラムで用いられる方法を用いるものとする。例えば、文字列入力プログラムの持つ記憶領域に文字列をコピーして確保する、あるいは（文字列をガーベジコレクションが管理しているプログラムの場合）文字列入力プログラムが文字列の所有権を獲得して確保する、などの方法がある。ただし、これらはあくまで例であり、これらに限るものではない。
【００２１】
本発明における入力装置は、従来から文字列入力プログラムで使用されている装置を使用することができる。例えば、入力装置としてキーボード、ジョイスティック、ボタン、タッチパネル、タッチパッド、マウス、ペン、ポインティングデバイス、音声入力、あるいはそれらの組み合わせなどを使用することができる。ただし、これらはあくまで例であり、これらに限るものではない。
【００２２】
また本発明における文字列入力プログラムは、従来から文字列入力プログラムとして使用されているプログラムを含むことがある。例えば、ソフトウェアキーボードやＦＥＰ、ＩＭ、ＩＭＥ、音声入力、手書き入力、文字認識プログラム（ＯＣＲ）、仮名漢字変換ソフト、ローマ字入力ソフト、などを含み、連携して機能を実現する。ただし、これらはあくまで例であり、これらに限るものではない。
【００２３】
また本発明における出力先プログラム切替の入力は、入力装置の入力のいずれかにすることができる。例えば、特定のキーやボタンの押し下げ、タッチパネルの特定領域でのタッチや長押しやフリック、音声入力の特定のキーワードの音声などを使用することができる。また、ある特定の出力先プログラムが入力フォーカスを受け取る動作や、ある特定の出力先プログラムが入力フォーカスを失う動作など、文字列入力プログラムが検知することのできる動作や状態が入力となることがある。ただし、これらはあくまで例であり、これらに限るものではない。
【００２４】
この結果、使用者は従来の出力先プログラムで文字列を入力・編集することに加えて、移動前の出力先プログラムで入力・編集している入力済み文字列を、手間なく移動後の出力先プログラムに移して入力・編集することができるようになる。
【００２５】
また上記プログラムにおいて、移動前のプログラムが編集用プログラムの場合、
「編集用プログラムを起動して編集領域に入力フォーカスを設定し、入力フォーカスを設定した編集領域に確保した入力済み文字列を記録する」の代わりに、
「編集用プログラムを終了し、次に入力フォーカスを受け取った編集領域に、確保した入力済み文字列を記録する」ことがある。
【００２６】
なお上記プログラムにおいて、編集用プログラムは、本プログラムにより起動された出力先プログラムとすることもできる。この場合、他のプログラムや使用者により起動された（本プログラムにより起動されていない）実行プロセスは編集用プログラムの対象とならない。
【００２７】
この結果、使用者は、本プログラムを使用して編集用プログラムで文字列の入力・編集を行った後に、本プログラムを再度実行することで、次に入力フォーカスを受け取った出力先プログラムに編集後の文字列を移すことができる。
【００２８】
また上記のいずれかのプログラムにおいて、入力済み文字列が、入力済み文字列とカーソル位置を特定する情報からなる入力済み情報とすることがある。
【００２９】
なお上記の入力済み情報は、文字列入力プログラムで用いられる、入力済み文字列とカーソル位置を特定可能な情報を記録したものを使用することができる。例えば、入力済み文字列とカーソル位置までの文字数を記録したものや、あるいはカーソル位置より前の入力済み文字列とカーソル位置より後の入力済み文字列（カーソルが幅を持つ場合はその範囲の文字列も）を分割して記録したもの、などがある。ただし、これらはあくまで例であり、これらに限るものではない。
【００３０】
上記プログラムにおいて、編集領域の入力済み情報に記録するカーソル位置が、確保した入力済み情報のカーソル位置から移動した位置となることがある。例えば、入力済み情報のカーソル位置にある行の先頭／末尾、カーソル位置にある単語の先頭／末尾、あらかじめ定めた文字数前／文字数後、など。ただし、これらはあくまで例であり、これらに限るものではない。
【００３１】
この結果、本プログラムを実行した直後の移動後編集領域のカーソル位置が、本プログラムを実行する前の移動前編集領域のカーソル位置と同じか、あるいはその付近になる。そのため、本プログラムの使用者は、本機能の実行後にカーソル位置を変更する操作無しでシームレスに入力・編集を再開することができる。
【発明の効果】
【００３２】
本発明では、従来の文字列入力プログラムに加えて、移動前プログラムの入力済み情報を効率よく編集用プログラムに移して入力・編集することができるようになる。その結果、編集機能の貧弱な出力先プログラムに文字列を入力する時でも、編集用プログラムで文字列の入力・編集を行い、その後に目的の出力先プログラムに文字列を移すことにより、従来の文字列入力プログラムよりも効率的に文字列を入力・編集することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態を示すプログラムの構成図
【発明を実施するための形態】
【００３４】
以下、本発明を具体化した実施形態を説明する。
【００３５】
図１は、本実施形態にかかる文字列入力プログラムを示す図である。
【００３６】
本実施形態は、入力装置１０１、文字列処理部１１１、移動前のプログラム１２１、移動後のプログラム１３１から構成される。文字列処理部１１１は、編集用プログラム特定部１１２と移動中の入力済み情報記録部１１３を含む。移動前のプログラム１２１は、移動前の編集領域１２２を含み、移動前の編集領域１２２は移動前の入力済み情報記録部１２３を含む。移動後のプログラム１３１は、移動後の編集領域１３２を含み、移動後の編集領域１３２は移動後の入力済み情報記録部１３３を含む。
【００３７】
本実施形態では、入力装置１０１はキーボードとマウス（ソフトウェアキーボードとタッチパネルも含む）であり、文字列処理部１１１はＩＭＥ（文字列入力プログラム）を含むものとする。
入力装置１０１や文字列処理部１１１は従来の文字列入力プログラムで使われている入力装置やプログラムを流用しており、本実施形態はそれらと連携して機能を実現する。移動前のプログラム１２１や移動後のプログラム１３１も同様に、従来の出力先プログラムで使われるプログラムを流用している。
【００３８】
また、移動中の入力済み情報記録部１１３、移動前の入力済み情報記録部１２３、移動後の入力済み情報記録部１３３は、入力済み文字列とカーソル位置を特定する入力済み情報をそれぞれ記録する。入力済み情報は、従来の文字列入力プログラムで入力済み文字列とカーソル位置の特定に使用される情報とする。本実施例では、カーソル位置より前の文字列とカーソル位置より後の文字列（カーソルが幅を持つ場合はカーソル位置の文字列も）をそれぞれ分割した文字列の組とする。なお、他の実施形態では、文字列操作の効率化のために、文字列をカーソル位置の前後で分割せずに、文字列を記録するメモリにおけるカーソル位置のアドレスを記録することがある。
【００３９】
なお、移動前のプログラム１２１は、移動前の入力済み情報記録部１２３に含まれる入力済み文字列とカーソル位置を、出力装置に出力して表示する。移動後のプログラム１３１も同様とする。
【００４０】
編集用プログラム特定部１１２には、編集用プログラムを特定する情報が記録されている。本実施例では、編集用プログラムを特定する情報として、それぞれのプログラムごとに固有のアプリケーションＩＤが記録されている。なお別の実施例では、編集用プログラムを特定する情報として実行ファイルのパス名など、プログラムの実行環境においてプログラムを特定するために使用される情報が記録されていることがある。
【００４１】
入力装置１０１は、出力先プログラム切替入力１０２を文字列処理部１１１に送信する。本実施形態では、入力装置１０１は特定のボタンの押し下げ（ソフトウェアキーボードやタッチパネルのボタンのタッチを含む）を、出力先プログラム切替入力１０２として文字列処理部１１１に送信する。また使用者は、設定により別の入力装置の入力を出力先プログラム切替入力１０２として追加することができる。
【００４２】
入力処理部１１１は、入力装置１０１から出力先プログラム切替入力１０２を受け取ると、その時点で入力フォーカスを持つ編集領域を移動前の編集領域１２２とし、移動前の編集領域１２２を含む出力先プログラムを移動前のプログラム１２１とする。そして移動前の編集領域１２２に含まれる移動前の入力済み情報記録部１２３に記録されている入力済み情報を確保する。入力済み情報を確保する方法は、文字列入力プログラムにおいてデータの確保に用いられる方法が用いられる。本実施形態では、入力済み情報を入力処理部１１１の移動中の入力済み情報記録部１１３に記録する。
【００４３】
次に入力処理部１１１は、編集用プログラム特定部１１２を使用して、移動前のプログラム１２１が編集用プログラムかどうかを判定する。本実施例では、編集用プログラム特定部１１２に記録された情報（本実施例ではアプリケーションＩＤ）と移動前のプログラム１２１の情報が同じかどうかにより判定する。
【００４４】
もしも移動前のプログラム１２１が編集用プログラムと異なる場合、入力処理部１１１は、編集用プログラム特定部１１２で特定される編集用プログラムを起動して移動後のプログラム１３１とし、移動後の編集領域１３２に入力フォーカスを設定し、入力処理部１１１の移動中の入力済み情報記録部１１３に記録した入力済み情報を移動後の入力済み情報記録部１３３に記録する。
【００４５】
もしも移動前のプログラム１２１が編集用プログラムと同じ場合、入力処理部１１１は、移動前のプログラム１２１を終了し、次に入力フォーカスを受け取った編集領域を移動後の編集領域１３２とし、入力処理部１１１の移動中の入力済み情報記録部１１３に記録した入力済み情報を移動後の入力済み情報記録部１３３に記録する。
【００４６】
以上のように、本実施形態によれば、従来の文字列入力プログラムに加えて、出力先プログラムに入力する文字列を効率よく他の出力先プログラムに移して入力・編集することができる。また、他の出力先に文字列を移すときも、そのカーソル位置が元の位置（か、その付近）にあるため、使用者は素早く文字列の入力・編集を再開することができる。また、本実施形態の機能により文字列を移した後に再度本実施形態の機能を使用することにより、次に入力フォーカスを受け取った出力先プログラムに編集した文字列を素早く移すことができる。
【００４７】
その結果、編集機能の貧弱な出力先プログラムに文字列を入力する時でも、素早く編集機能の豊富な出力先プログラムに入力済み文字列を移して入力・編集した後に目的の出力先プログラムに文字列を戻すことにより、従来の文字列入力プログラムよりも効率的に文字列を入力・編集することができる。
【符号の説明】
【００４８】
１０１  入力装置
１０２  出力先プログラム切替の入力
１１１  文字列処理部
１１２  編集用プログラム特定部
１１３  移動中の入力済み情報記録部
１２１  移動前のプログラム
１２２  移動前の編集領域
１２３  移動前の入力済み情報記録部
１３１  移動後のプログラム
１３２  移動後の編集領域
１３３  移動後の入力済み情報記録部
【図１】
2020009079.tif 000003