(57)【特許請求の範囲】
【請求項１】
第一のアプリケーションプログラムから第二のアプリケーションプログラムへデータを転送するデータ転送方法であって、
前記第一のアプリケーションプログラムへ焦点を導き、
前記第一のアプリケーションプログラムに焦点がある間に、データを選択し、格納動作を選択し、複数のバッファメモリから格納先のバッファメモリを選択し、
前記選択された格納先のバッファメモリへ前記選択されたデータを格納し、
前記第二のアプリケーションプログラムへ焦点を導き、
前記第二のアプリケーションプログラムに焦点がある間に、リコール動作を選択し、前記複数のバッファメモリから明示的に一つのバッファメモリが選択指示された場合は、当該バッファメモリをリコール元のバッファメモリとして選択し、明示的に一つのバッファメモリが選択指示されなかった場合は、データが最後に格納されたバッファメモリをリコール元のバッファメモリとして選択し、
前記リコール元のバッファメモリから前記第二のアプリケーションへデータをリコールすることを特徴とするデータ転送方法。
【請求項２】
前記格納動作を選択するステップおよび前記格納先のバッファメモリを選択するステップは同時に実行されることを特徴とする請求項1に記載されたデータ転送方法。
【請求項３】
マウスのレフトクリックに応じて、前記格納動作および前記格納先のバッファメモリとして第一のバッファメモリを選択し、前記マウスのライトクリックに応じて、前記格納動作および前記格納先のバッファメモリとして第二のバッファメモリを選択することを特徴とする請求項2に記載されたデータ転送方法。
【請求項４】
キーストロークの組み合わせにより前記格納動作および前記格納先のバッファメモリを選択することを特徴とする請求項2に記載されたデータ転送方法。
【請求項５】
前記キーストロークの組み合わせはユーザによりカスタマイズされることを特徴とする請求項4に記載されたデータ転送方法。
【請求項６】
前記格納先のバッファメモリを選択するステップでは、前記複数のバッファメモリの一つが明示的に選択指示されることがなかった場合、次の空きバッファメモリを選択することを特徴とする請求項1に記載されたデータ転送方法。
【請求項７】
前記格納先またはリコール元のバッファメモリを選択するステップはメニューを用いて実行されることを特徴とする請求項1に記載されたデータ転送方法。
【請求項８】
前記メニューは、前記複数のバッファメモリのそれぞれに格納されたデータの種類を示すインジケータを含むことを特徴とする請求項7に記載されたデータ転送方法。
【請求項９】
前記複数のバッファメモリはシステム全体で利用可能なシステムワイドバッファメモリであることを特徴とする請求項1に記載されたデータ転送方法。
【請求項１０】
第一のアプリケーションプログラムから第二のアプリケーションプログラムへデータを転送するデータ転送システムであって、
前記第一のアプリケーションプログラムへ焦点を導く第一の操作手段と、
前記第一のアプリケーションプログラムに焦点がある間に、データを選択し、格納動作を選択し、複数のバッファメモリから格納先のバッファメモリを選択する第一の選択手段と、
前記選択された格納先のバッファメモリへ前記選択されたデータを格納する格納手段と、
前記第二のアプリケーションプログラムへ焦点を導く第二の操作手段と、
前記第二のアプリケーションプログラムに焦点がある間に、リコール動作を選択し、前記複数のバッファメモリから明示的に一つのバッファメモリが選択指示された場合は、当該バッファメモリをリコール元のバッファメモリとして選択し、明示的に一つのバッファメモリが選択指示されなかった場合は、データが最後に格納されたバッファメモリをリコール元のバッファメモリとして選択する第二の選択手段と、
前記リコール元のバッファメモリから前記第二のアプリケーションへデータをリコールするリコール手段とを有することを特徴とするデータ転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ転送システムおよびその方法に関し、例えば、ウィンドウズ環境において、アプリケーションプログラム内または異なるアプリケーションプログラム間におけるデータ転送を許すように、複数のバッファメモリを管理する、コンピュータを補助するデータ転送に関する。とくに、本発明においては、あるアプリケーションプログラムの手続(instance)から焦点を去らせることなく、選択された複数のデータをそれぞれ、複数のバッファメモリの一つひとつに格納する機能をユーザに与える。
【０００２】
【従来の技術】
ウィンドウズ環境の一つの利点は、あるアプリケーションプログラムから他のアプリケーションプログラムへ容易にデータ転送する能力があることである。ユーザは両アプリケーションを起動し（マルチタスキングはウィンドウズ環境のもう一つの利点である）、一つ目のアプリケーションに焦点を当てるとともに、そのアプリケーションのデータを選択し、選択したデータをバッファメモリに格納し、二つ目のアプリケーションに焦点を切替え、バッファメモリからデータを呼び戻し二つ目のアプリケーションへ送ることができる。
【０００３】
【発明が解決しようとする課題】
しかし、上述した技術においては、次のような問題点がある。
【０００４】
Microsoft(R) Windows バージョン3.1（以下「Windows」と呼ぶ）によって提供されるような一般的なウィンドウズ環境は、アプリケーションプログラム内または異なるアプリケーションプログラム間においてデータを転送するためにバッファメモリを一つだけ備えている。このバッファは、Windowsにおいては「クリップボード」と呼ばれる。それは一つのバッファメモリだけがあるからで、バッファにデータが転送されるときはいつでも、格納されている古いデータが失われる。この取り決めによれば、データの損失を避けるために、選択されたデータの転送動作は、次のデータが選択される前に完了されなくてはならないから、ユーザが多数の選択データを転送することを難しくいている。
【０００５】
例えば、一つ目のアプリケーションプログラムから二つ目のアプリケーションプログラムへ二つの選択データを転送するためには、次のステップが必要である。つまり、(1)一つ目のアプリケーションプログラムに焦点が当てられ、(2)一つ目のアプリケーションプログラムから一つ目のデータが選択され、(3)選択されたデータがクリップボードへ格納され、(4)二つ目のアプリケーションプログラムに焦点が当てられ、(5)データが転送されるべき場所が選択され、(6)クリップボードからデータが呼び戻され、二つ目のアプリケーションプログラム内の選択された場所へ送られ、(7)一つ目のアプリケーションプログラムに焦点が戻され、(8)一つ目のアプリケーションプログラムから二つ目のデータが選択され、(9)二つ目の選択データがクリップボードへ格納され、(10)二つ目のアプリケーションプログラムに焦点が戻され、(11)二つ目の選択データが転送されるべき場所が選択され、そして(12)クリップボードから二つ目の選択データが呼び戻され、二つ目のアプリケーションプログラム内の選択された場所へ送られる。
【０００６】
ステップ数分、および、ユーザが様々なウィンドウの間をシャッフルしなければならない回数分、この煩わしい処理はユーザの時間と努力を不必要に浪費させる。加えて、ユーザは、一回あたり、単一の選択データを取り扱うことができるだけである。ユーザは多数の選択データを同時に取り扱うことができないから、既に進行されている現在のデータ転送がどこまで行ったかを忘れることはもちろん、ユーザは現在試みている多数のデータ転送の一つを容易に忘れてしまう。
【０００７】
「クリップブック」または「スクラップブック」で多数の選択データのコピーを試みると、困難な問題に遭遇することが知られている。クリップブックまたはスクラップブックは、マルチページを含むアプリケーションプログラムであり、それぞれ、前の選択データを失うことなく多数の選択データが得られるように、一つの選択データを格納することができる。しかしながら、それぞれのデータを選択した後、データが格納されるマルチページの一つの指示を許可するために、データがコピーされるアプリケーションから焦点を遠くへ移す必要がある。これを、図14Aから図14Rを参照して、以下の例で説明する。これらの図に関して、および、この明細書の残りのすべてにおいて、用語の「コピーアンドペースト」、同様に「カットアンドペースト」は、例えばF. Davisの「The Windows 3.1 Bible」(Peachpit Press, 1993)に定義されているように、一般的にある意図を与える。
【０００８】
図14Aは、二つのアプリケーションプログラムAPP-1 210およびAPP-2 220、並びに、クリップブック250およびカーソル200が表示された画面22をもつコンピュータディスプレイ23を示している。図14Bにおいて、APP-1 210に焦点が当てられ、その周囲が細線の境界で描写されているAPP-1 210の先頭の五行のテキストデータ212が選択される。図14Cにおいて、選択テキストデータ212は、編集プルダウンメニュー213を用いて、クリップボード（図示しない）へコピーされる。図14Dにおいて、クリップブック250に焦点が当てられる。図14Eにおいて、選択テキストデータ212は、編集プルダウンメニュー253を用いて、クリップブック250の二頁目へペーストされる。
【０００９】
図14Fにおいて、APP-2 220に焦点が当てられ、グラフィックデータ222が選択される。図14Gにおいて、選択グラフィックデータ222は、編集プルダウンメニュー223を用いてカットされ、クリップボードへ入る。（データがカットされるというよりもクリップボードへコピーされ、選択グラフィックデータ222はAPP-2 220から削除される。）図14Hにおいて、クリップブック250に焦点が当てられ、ページプルダウンメニュー255によりクリップブック250の一頁目が選択される。図14Iにおいて、選択グラフィックデータ222は、編集プルダウンメニュー253を用いて、クリップブック250の一頁目にペーストされる。
【００１０】
ここまでの要点は、テキストデータ212およびグラフィックデータ222の二つの選択データが、クリップブック250の異なる頁にコピーされることである。そして、ユーザは、図14Jから14Rに関連して以下に記述するように、APP-1 210およびAPP-2 220を閉じ、選択データを転送することができる他のアプリケーションを開くことができる。
【００１１】
図14Jは新たに開かれたAPP-4 240およびクリップブック250を示している。図14Kにおいて、クリップブック250に焦点が当てられ、グラフィックデータ222が選択される。図14Lにおいて、選択グラフィックデータ222は、編集プルダウンメニュー253を用いて、クリップブックの一頁目からクリップボード（図示しない）へコピーされる。図14Mにおいて、APP-4 240に焦点が当てられ、カーソル200によりAPP-4 240内の位置242が選択される。図14Nにおいて、選択グラフィックデータ222は、編集プルダウンメニュー243を用いて、APP-4 240へペーストされる。図14Oにおいて、クリップブック250に焦点が戻り、ページプルダウンメニュー255によりクリップブック250の二頁目が選択される。図14Pにおいて、編集プルダウンメニュー253を用いて、選択テキストデータ212がクリップボード（図示しない）へコピーされる。図14Qにおいて、APP-4 240に焦点が戻り、位置242が選択される。最後に、図14Rにおいて、選択テキストデータ212は、編集プルダウンメニュー243を用いて、APP-4 240へペーストされる。
【００１２】
つまり、クリップブックなどは例え、以前に選択されたデータを失うことなく、多数の選択データを作ることをユーザに許可するとしても、データ選択後、ユーザは焦点をそのアプリケーションから移さなければならないので、クリップブックなどを使うことは、煩わしく、かつ、余計で冗長な手続きになる。
【００１３】
従って、一つのアプリケーションから焦点を去らせることなく、多数の選択データを作ることをユーザに許可し、アプリケーション内およびアプリケーション間において多数の選択データの転送をユーザに許可する需要が存在する。
【００１４】
本発明は、複数のアプリケーションプログラム間で複数のデータを転送する場合に、簡単な操作でデータを転送することを目的とする。さらに、リコール元のバッファメモリが明示的に選択指示されない場合を考慮したデータ転送を行うことを他の目的とする。
【００１５】
【課題を解決するための手段】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１６】
本発明にかかるデータ転送方法は、第一のアプリケーションプログラムから第二のアプリケーションプログラムへデータを転送するデータ転送方法であって、前記第一のアプリケーションプログラムへ焦点を導き、前記第一のアプリケーションプログラムに焦点がある間に、データを選択し、格納動作を選択し、複数のバッファメモリから格納先のバッファメモリを選択し、前記選択された格納先のバッファメモリへ前記選択されたデータを格納し、前記第二のアプリケーションプログラムへ焦点を導き、前記第二のアプリケーションプログラムに焦点がある間に、リコール動作を選択し、前記複数のバッファメモリから明示的に一つのバッファメモリが選択指示された場合は、当該バッファメモリをリコール元のバッファメモリとして選択し、明示的に一つのバッファメモリが選択指示されなかった場合は、データが最後に格納されたバッファメモリをリコール元のバッファメモリとして選択し、前記リコール元のバッファメモリから前記第二のアプリケーションへデータをリコールすることを特徴とするデータ。
【００１７】
本発明にかかるデータ転送システムは、第一のアプリケーションプログラムから第二のアプリケーションプログラムへデータを転送するデータ転送システムであって、前記第一のアプリケーションプログラムへ焦点を導く第一の操作手段と、前記第一のアプリケーションプログラムに焦点がある間に、データを選択し、格納動作を選択し、複数のバッファメモリから格納先のバッファメモリを選択する第一の選択手段と、前記選択された格納先のバッファメモリへ前記選択されたデータを格納する格納手段と、前記第二のアプリケーションプログラムへ焦点を導く第二の操作手段と、前記第二のアプリケーションプログラムに焦点がある間に、リコール動作を選択し、前記複数のバッファメモリから明示的に一つのバッファメモリが選択指示された場合は、当該バッファメモリをリコール元のバッファメモリとして選択し、明示的に一つのバッファメモリが選択指示されなかった場合は、データが最後に格納されたバッファメモリをリコール元のバッファメモリとして選択する第二の選択手段と、前記リコール元のバッファメモリから前記第二のアプリケーションへデータをリコールするリコール手段とを有することを特徴とする。
【００１８】
【発明の実施の形態】
以下、本発明にかかる一実施形態のデータ転送システムを図面を参照して詳細に説明する。
【００１９】
［概要］
詳細は以下で説明するが、本発明によれば、ユーザは、アプリケーションプログラムのウィンドウをシャッフルすることなく、アプリケーションプログラム内およびアプリケーションプログラム間において多数の選択データを移動することができ、ユーザのかなりの時間と努力を節約することができる。
【００２０】
本発明の一面に従えば、コンピュータに関して、第一のアプリケーションプログラムから複数のバッファメモリの少なくとも一つへデータを転送する方法であって、焦点が当たっているアプリケーションプログラムは次のステップを備える。つまり、そのアプリケーションプログラムのデータを選択し、そのアプリケーションプログラムになお焦点が当たっている間に「コピー」または「カット」動作を選択し、そのアプリケーションプログラムになお焦点が当たっている間にバッファメモリの一つを選択し、そして、選択したデータを選択したバッファメモリの一つに自動的に格納する。常に、アプリケーションプログラムから焦点を去らせることなく、多数の「コピー」または「カット」動作をさせることができる。
【００２１】
その後、もし必要なら第二のアプリケーションプログラムの所望する場所を選択して、第二のアプリケーションプログラムから焦点を移さずに、複数のバッファメモリの何れか一つのから焦点が当たっている第二のアプリケーションプログラムへ、データを呼び戻すことができ、そして、データは選択されたバッファメモリから第二のアプリケーションの選択された場所へ自動的に呼び戻される。
【００２２】
本発明のもう一つの面においては、複数のバッファメモリの一つを用いて、第一のアプリケーションプログラムから第二のアプリケーションプログラムへ、データを転送する方法であって、焦点が当たっている第一のアプリケーションプログラムは次のステップを備える。つまり、第一のアプリケーションからデータを選択し、第一のアプリケーションプログラムに引き続き焦点が当たっている間に、複数のバッファメモリの一つを選択し、選択したデータを選択した一つの編集バッファに格納し、第二のアプリケーションに焦点を当て、もし必要ならば第二のアプリケーション内のデータ転送場所を選択し、第二のアプリケーションに焦点が当たっている間に、再び、複数のバッファメモリの一つを選択し、再選択した複数のバッファメモリの一つから第二のアプリケーション内の選択した位置へデータを呼び戻す。
【００２３】
［構成］
図1は、本発明を取り入れる、ワードプロセッシング、グラフィックスデザイン、表計算など、多目的に使用可能なコンピュータ装置の外観を示す見取り図である。
【００２４】
図1に示されるコンピュータ装置20は、Windowsのようなウィンドウズオペレーティングシステムを備えたIBM-PCまたはPC互換コンピュータである。コンピュータ装置20には、コンピュータ装置20がユーザに対して画像を表示するための画面22を有するモノクロまたはカラー表示のモニタ23が備えられている。
【００２５】
コンピュータ装置20には、さらに、読み書きできるリムーバルディスクメディアとしてフロッピディスクドライブ24が備えられている。フロッピディスクドライブ24の代わり（または加えて）CD-ROMドライブやMOドライブを使用することもできる。
【００２６】
コンピュータ装置20は、ウインドウズオペレーティングシステムを格納し、同様に、データファイルおよびアプリケーションプログラムを一つのメディアで格納することができる固定ディスクドライブ25、テキストデータの入力および画面22に表示されたオブジェクトの操作を行うためのキーボード26および画面22に表示されたオブジェクトのポインティングと操作を提供するマウスのようなポインティングデバイス27も装備する。
【００２７】
もし望むなら、プリンタ30により、コンピュータ装置20により処理された文書などの出力が提供される。さらに、ネットワークへの接続31などにより、他のデータおよびアプリケーション記憶メディアとの一般的な接続も提供される。
【００２８】
ユーザの指示に従い、ウィンドウズオペレーティングシステムの制御のもと、固定ディスクドライブ25などに格納されたデスクトップパブリッシングアプリケーションプログラム、作図アプリケーションプログラム、ワードプロセッシングアプリケーションプログラムなどのようなアプリケーションプログラムが、データの処理および操作のために選択的に起動される。
【００２９】
図2はコンピュータ装置20の内部構成例を示す詳細なブロック図である。図2に示されるように、コンピュータ装置20は、コンピュータバス41とインタフェイスされたプログラマブルマイクロプロセッサのような中央処理ユニット(CPU)40とを含む。ディスプレイインタフェイス44、ネットワークインタフェイス45、プリンタインタフェイス47、フロッピディスクドライブ24、キーボード26、ポインティングデバイス27、メインメモリ51、リードオンリメモリ(ROM)52、およびハードディスク25も、コンピュータバス41にインタフェイスされている。その他のインタフェイスは、コンピュータ装置20の全体的な形態に適するように供給される。
【００３０】
ランダムアクセスメモリ(RAM)などからなるメインメモリ51は、CPU40がメモリストレージにアクセスするようにコンピュータバス41へインタフェイスされている。詳しくは、ハードディスク25に格納されたアプリケーションプログラムようなストアードアプリケーションプログラム命令シーケンスを実行する場合、CPU40は、それらの命令シーケンスを、ハードディスク25（または、ネットワークインタフェイス45を介してアクセスされるメディアやフロッピディスクドライブ24のような他のストレージメディア）からメインメモリ51へロードし、そして、それらのストアードプログラム命令シーケンスをメインメモリ51から取り出して実行する。
【００３１】
ROM52は、キーボード26の動作に関する基本入出力オペレーティングシステム(BIOS）シーケンスの起動命令シーケンスなどの不変の命令シーケンスを格納する。
【００３２】
図2に示すように、ハードディスク25は、ウィンドウズオペレーティングシステムおよび様々なアプリケーションプログラムに関するプログラム命令シーケンス、文書ファイルおよび他のデータファイルを格納している。ハードディスク25は、他の数タイプのファイルも同様に格納することができる。
【００３３】
［ウィンドウズオペレーティングシステム］
ユーザは、ウィンドウズオペレーティングシステムの手段により、アプリケーションプログラムと対話する。このオペレーティングシステムは、アプリケーションプログラムの手続(instances)の開始に、それらアプリケーションプログラムの手続との対話に、そして、アプリケーションプログラムの手続の終了に使用される。
【００３４】
あるアプリケーションプログラムの手続は単に、あるアプリケーションプログラムのコピーの一つを一度ランすることである。単一のアプリケーションプログラムのマルチ手続を一度にランすることができる。それぞれの手続は、一般に、一つまたは複数のウィンドウに表現される。アプリケーションプログラムの手続はそれぞれ、それ自体のデータをもち、ユーザの予想から分離された存在である。
【００３５】
［データ転送システム］
図3は、アプリケーションから選択されたデータを選択された多数のバッファメモリの一つに格納する際のユーザ入力102、ウィンドウオペレーティングシステム100、アプリケーション104およびデータ転送システム用の「コピースタック」メモリ106の相互作用を示す機能ブロック図である。
【００３６】
コピースタック106のバッファメモリの数は、新しいデータを格納することができる少なくとも一つの空のバッファメモリがあればよいが、ウィンドウオペレーティングシステム100により予め定められた数、例えば20まで自動的に増加されることが望ましい。バッファメモリは、ウィンドウオペレーティングシステム100の下で動作するどのアプリケーションプログラムからもアクセスされる「システムワイドバッファ」である。
【００３７】
図3において、コピースタック106およびデータ転送システムは、ウィンドウオペレーティングシステム100の一部として扱われるが、ほかの編成も可能である。例えば、アドオンユーティリティまたはOLE(object linking and embedding)2.0プロトコルの使用を介して、ウィンドウオペレーティングシステム100から分離してマルチプルシステムワイドバッファメモリとして供給することも可能である。また、マルチプルバッファメモリを一組のソフトウェアアプリケーションの編成に組み込むことも可能である。
【００３８】
図3においてデータ転送システムは、ウィンドウオペレーティングシステム100、アプリケーション104および多数のバッファメモリからなるコピースタック106の中における相互作用として含まれる。ユーザ入力102はグラフィカルインタフェイス(GUI)を介して入力される。
【００３９】
図4Aは、データ転送システムが「カット」または「コピー」動作の間、あるアプリケーションプログラムからユーザに選択された多数のバッファメモリの一つへ、データを格納するように動作させるストアードプログラムの指示シーケンスの実行を示すフロー図である。つまり、ステップS401における「カット」または「コピー」動作のユーザ命令に対する応答である。
【００４０】
フローはステップS402へ進み、アクティブなアプリケーション104は、ユーザにより選択された「カット」または「コピー」動作をオペレーティングシステム100に通知するとともに、「カット」または「コピー」動作が首尾よく成し遂げられるようにアプリケーション104が必要とするデータの供給をオペレーティングシステム100に要求するメッセージ（図3の402に描写した）をオペレーティングシステム100へ送信する。そのようなデータは、例えば、アプリケーション104によりデータが格納されるだろうバッファメモリのロケーションや、勿論、ユーザが望む「カット」または「コピー」動作のパラメータ(例えばコピースタックのバッファメモリの総数、バッファメモリそれぞれに格納されたデータのタイプ、などのような)を選択するために適当なメニューを描けるようにアプリケーション104が必要とするデータを含むかもしれない。
【００４１】
これに応じてオペレーティングシステム100は、ステップS403で、バッファメモリが「カット」または「コピー」動作に必要とされていることをコピースタック106に通知するメッセージ(図3の403に描写した)をコピースタック106へ送る。これに応じてコピースタック106は、新規のバッファメモリを予約するとともに、ステップS404において、新規のバッファメモリのロケーション、「コピー」または「カット」動作に現在利用可能なバッファメモリの総数、および、バッファメモリそれぞれの中のデータの種類(例えば、テキスト、グラフィック、スプレッドシートなど)のようなコピースタック情報に関するメッセージ(図3の404に描写した、以下「コピースタック情報」と呼ぶことがある)をオペレーティングシステム100へ送信する。
【００４２】
ステップS405において、オペレーティングシステム100は、コピースタック情報が中継されるように、メッセージ(図3の405に描写した)をアプリケーション104へ送る。ステップS406で、アプリケーション104は、ユーザにより選択されたデータを、ユーザが特定したコピースタック106のバッファメモリ(または、ユーザにより特定されなかった場合はコピースタックの既定のバッファメモリ)へ格納し、その後、ユーザにより「カット」動作が特定されたか「コピー」動作が特定されたか(ステップS407)により、ステップS408でデータは随意に削除される。
【００４３】
図4Bは、「ペースト」動作の間、コピースタック106の多数のバッファメモリの一つからアクティブなアプリケーションプログラムへデータを呼び戻すように、データ転送システムにより実行されるストアードプログラムの指示ステップを示すフロー図である。
【００４４】
ユーザに選択された「ペースト」動作(ステップS410)に応じて、フローはステップS411へ進み、アクティブなアプリケーション104は、「ペースト」動作をオペレーティングシステム100へ通知するメッセージ(図3の411に描写した)をオペレーティングシステム100へ送る。ステップS412において、オペレーティングシステム100は、コピースタック106にコピースタック情報の供給を要求するメッセージ(図3の412に描写した)をコピースタック106へ送る。これに応じてコピースタック106は、ステップS413で、必要なコピースタック情報、すなわち、コピースタック106により現在管理されているバッファメモリの数およびロケーション、同様に、各バッファメモリに格納されたデータのタイプ、最後にアクセスされたバッファメモリのアイデンティティ(identity)などを含むメッセージ(図3の413に描写した)をオペレーティングシステム100へ送る。
【００４５】
フローはステップS414へ進み、オペレーティングシステム100は、コピースタック情報に関するメッセージ(図3の414に描写した)をアクティブなアプリケーション104へ送る。そのようにして供給されたコピースタック情報に基づき、アクティブなアプリケーション104は、例えば、多数のバッファメモリから呼び戻すデータのような「ペースト」動作のパラメータを、ユーザが指示するのに適切なメニューを描く。
【００４６】
ステップS416において、多数のバッファメモリの選択(多分、ユーザによる選択、または、最後にアクセスされたバッファメモリのような既定の選択)後、選択されたバッファメモリから、アクティブなアプリケーション104によりアクセス可能なメモリへ、データが呼び戻される。その後、ステップS417において、選択されたバッファメモリはクローズされる。
【００４７】
データ転送システムの上記の動作は、アプリケーションプログラムとアプリケーションプログラムの手続(instances)とを区別しない。あるアプリケーションプログラムの視点(perspective)からは、アプリケーションプログラムの手続それぞれは、単に他のデータのセグメントである。アプリケーションは、データを「コピー」するのか、何処かへデータを「ペースト」するのかを、発生した編集コマンドであるアプリケーション手続の一部に基づき決定する。アプリケーションプログラムの手続は、データタイプの選択にも影響する。また、アプリケーションプログラムの特別の手続は、大概、上述したステップには影響しない。
【００４８】
［編集バッファおよびデータの選択］
図5から図11Bは、焦点を去らせることなく、多数のアプリケーションプログラム間で多数の選択データを転送する、上記のデータ転送システムの動作例を、ユーザの視点で示している。
【００４９】
図5は、カーソル200および四つのアプリケーションプログラムの手続(instances)が表示された画面22を示している。APP-1 210はテキストをシミュレートするアプリケーション手続、APP-2 220はグラフィックスをシミュレートするアプリケーション手続、APP-3 230はスプレッドシートをシミュレートするアプリケーション手続、および、APP-4 240はデータが表示されていない一般的なアプリケーション手続である。
【００５０】
図5に示される四つのアプリケーションは、代表的なマルチタスク環境を表し、どの点からみても制限を考慮することはない。とくに、本発明は、どの種類のアプリケーションプログラムからも実行可能で、テキスト、スプレッドシートおよびグラフィックスのアプリケーションンプログラムである必要はない。
【００５１】
カーソル200は、アプリケーション手続へ焦点を導くのに、データの選択および操作に、並びに、プルダウンメニューからコマンドおよびオプションを選択するのに、利用することができる。加えて、キーストロークの組み合わせも、それらの機能の幾つかまたはすべてに利用することができる。カーソル200は、ポインティングデバイス27を介して、または、他の手段(例えば、キーストローク、音声認識、タッチスクリーン、ライトペン、その他)により、ユーザにコントロールされる。
【００５２】
図6Aにおいて、ユーザは、APP-1 210へ焦点を導き、第一のテキストデータ212を作成する。図6Bにおいて、ユーザは、「コピー」動作を選択するために、編集プルダウンメニュー214を操作する。「コピー」動作(または「カット」動作)を選択すると、自動的に他のメニュー216が導かれる。ここではプルライトメニューを示すが、プルレフト、ポップアップ、その他のタイプのユーザインタフェイスの実行も、まったく容易である。メニュー216は、APP-1 210から格納された利用可能なデータのコピースタック106における多数のバッファメモリを示している。ユーザが次の空きバッファを選択することを望む場合、ユーザが多数のバッファメモリの一つを選択するための次のステップを急ぐために、メニュー216は、デフォルトで予め選択されている次の空きバッファメモリに導かれていることが望ましい。
【００５３】
一方、焦点はAPP-1 210に留まり、ユーザは表示された任意のバッファメモリを選択することができ、予め選択されたバッファメモリに制限されることはない。つまり、図6Cにおいて、常に焦点はAPP-1 210を去ることなく、ユーザはバッファメモリ#2を選択するためにメニュー216を操作する。この動作により、第一の選択テキストデータ212は編集バッファ#2に自動的に格納される。
【００５４】
もし、一つだけアクティブなバッファがあり、かつ、そのバッファが空ならば、ユーザが望むバッファを選択するための要求がなくても、データは自動的に空きバッファに格納されることが望ましい。
【００５５】
図6Dはプルライトメニュー216の他の形態を示し、その中でインジケータ219はバッファメモリのそれぞれに入っているデータの種類を示している。インジケータ219はバッファメモリの内容を表すテキスト、アイコン、プレビュー用の画像であるサムネール(thumbnails)、またはその他の種類のシンボルになることができる。もしバッファが空ならば、インジケータ219は白紙になる。
【００５６】
例えば、ユーザによりカスタマイズされた、および/または、予め定義されたキーストロークの組み合わせにより、「コピー」動作およびバッファは同時に選択されることができる。つまり、ユーザは、「Ctrl」「C」および「2」キーの組み合わせを押すことで、選択したデータをバッファメモリ#2にコピーすることができる。代わりに、もしポインティングデバイス27が複数ボタンのマウスならば、マウスボタンを編集プルダウンメニュー214に使用し、それを参照してバッファを選択することができる。例えば、「コピー」を選択するために左のマウスボタンを使用してバッファ#1を選択し、中央のマウスボタンを使用してバッファ#2を選択し、右のマウスボタンを使用してバッファ#3を選択することができる。同様に、音声認識やタッチスクリーンのような他の手段も「コピー」動作およびバッファの選択に使用することができる。
【００５７】
上記のすべての動作は、ユーザのカスタマイズにより取って代わることができる既定の動作であることが望ましい。
【００５８】
図7Aにおいて、第二のテキストデータ218が選択される。図7Bにおいて、編集プルダウンメニュー214および編集バッファプルライトメニュー216が第二の選択テキストデータ218を編集バッファ#3へコピーするために使用される。
【００５９】
なお、上記の動作において、二つの選択テキストデータが異なる二つの編集バッファへコピーされる間、焦点はアプリケーションAPP-1 210にある。これらの動作の間、焦点はアプリケーション104に留まることができ、一つのアプリケーション104から焦点を去らせることなく、多数の選択データを多数のバッファメモリへコピーする能力は、一般のシステムに比べて明らかな利点である。
【００６０】
図8Aにおいて、APP-2 220に焦点が導かれ、グラフィックデータ222が選択される。図8Bにおいて、編集プルダウンメニュー224およびバッファメモリを選択するためのプルライトメニュー226の使用により、選択グラフィックデータ222がバッファメモリ#1へ「カット」される。「カット」と言うよりも「コピー」動作が選択され、APP-2 220からグラフィックデータ222が削除される。
【００６１】
図9Aにおいて、ユーザはAPP-3 230に焦点を導き、位置232を選択する。図9Bにおいて、ユーザは「ペースト」動作を選択するために編集プルダウンメニュー234を操作する。「ペースト」動作の選択は自動的に、ここではプルライトメニューとして示されているがユーザインタフェイスの他のどんな種類としても容易に実行することができる、他のメニュー236を導く。メニュー236は、データをリコールすることが可能なコピースタック106の多数のバッファメモリを示している。ユーザがバッファの一つを選択するためのメニュー236は、ユーザが最後に格納されたデータのリコールを望む場合、次のステップを急ぐために、既定として、データが格納された最後のバッファが予め選択された状態で導かれることが好ましい。
【００６２】
一方、焦点はAPP-3 230に留まり、ユーザは、予め選択されたバッファに制限されずに、表示されたバッファメモリのどれでも選択することができる。つまり、図9Cにおいて、APP-3 230に焦点が留まっている間、ユーザはバッファメモリ#3を選択するためにメニュー236を操作する。結果として、バッファメモリ#3に格納された第二の選択テキストデータ218がバッファメモリ#3からリコールされ、APP-3 230の指定位置へ「ペースト」される。
【００６３】
「カット」および「コピー」動作と同じく、例えば「control」「V」および「3」のような予め指示された、または、ユーザによりカスタマイズされたキーストロークの組み合わせ、あるいは、特定のマウスボタンなどにより、「ペースト」動作およびバッファは同時に選択されることができる。
【００６４】
なお、もしデータが格納されたバッファメモリが一つだけある(すなわち、他のすべてのバッファは空) 場合の「ペースト」動作の選択は、ユーザからさらに指示を必要とせずに、自動的に非空バッファを選択してデータを「ペースト」することが望ましい。
【００６５】
繰り返すが、上記の動作は、ユーザのカスタマイズにより取って代わることができる既定の動作であることが望ましい。
【００６６】
図10Aにおいて、APP-4 240に焦点が導かれ、位置242が選択される。図10Bにおいて、編集プルダウンメニュー244から「ペースト」動作が選択され、プルライトメニュー246からバッファメモリ#1が選択される。その結果として、第一の選択グラフィックデータ222がAPP-4 240にペーストされる。
【００６７】
図11Aにおいて、APP-4 240の新しい位置である位置242が選択される。図11Bにおいて、編集プルダウンメニュー244から「ペースト」動作が選択され、バッファメモリメニュー246からバッファ#2が選択される。その結果として、APP-4 240の位置242へ第一の選択テキストデータ212が「ペースト」される。
【００６８】
上記の「ペースト」動作においては、一つのアプリケーションウィンドウに焦点が留まっている間に、多数のバッファメモリがアクセスされる。バッファメモリは、異なるアプリケーションウィンドウ内からもアクセスされることができ、一つのアプリケーションから焦点を去らせることなく、多数の選択データを多数のバッファメモリから「ペースト」する能力は、一般のシステムに比べて大きな利点である。
【００６９】
図12Aおよび12Bは上述した「カット」および「コピー」動作を説明するフローチャートである。
【００７０】
まず、ステップS1200において、あるアプリケーション手続(instance)に焦点が導かれる。そして、ステップS1201で、そのアプリケーションのデータが選択される。ステップS1202で、そのアプリケーション手続に焦点がある間に「カット」または「コピー」の何れかの動作が選択される。ステップS1203において、そのアプリケーション手続に焦点が留まっている間にマルチバッファの一つが選択される。ステップS1204において、そのアプリケーションは、選択されたバッファが空かどうかを調べる。もし選択されたバッファが空でなければ、ステップS1205で選択されたバッファをクリアする。どちらの場合も、ステップS1206で、選択されたデータは自動的に選択されたバッファに格納される。ステップS1207において、「カット」動作が選択された場合、フローはステップS1208へ導かれる。ステップS1208において、そのアプリケーション手続から選択されたデータが削除される。
【００７１】
図12Bに示すように、ステップS1203はさらにステップS1231、S1232およびS1233を含むことができる。ステップS1231はマルチバッファの一つが明示的に選択されたか否かを判定する。ステップS1232は、マルチバッファの一つが明示的に選択された場合に、その選択されたバッファを使用する。ステップS1233は、マルチバッファの一つが明示的に選択されるようなことがなかった場合に、次の空バッファを選択する。
【００７２】
図13Aおよび13Bは上述した「ペースト」動作を説明するフローチャートである。
【００７３】
ステップS1300において、あるアプリケーションに焦点が導かれる。ステップS1301において、そのアプリケーションのある位置が選択される。ステップS1302で、そのアプリケーションに焦点がある間に、「ペースト」動作が選択される。ステップS1303において、そのアプリケーションに焦点が留まっている間に、多数のバッファメモリの一つが選択される。ステップS1304において、選択されたバッファメモリから、そのアプリケーションの選択された位置へ、データが自動的に呼び戻される。
【００７４】
図13Bに示すように、ステップS1303はさらにステップS1331、S1332およびS1333を含むことができる。ステップS1331はマルチバッファの一つが明示的に選択されたか否かを判定する。マルチバッファの一つが明示的に選択された場合、ステップS1332は、その選択されたバッファを使用する。マルチバッファの一つが明示的に選択されるようなことがなかった場合、ステップS1333は「コピー」または「カット」動作によりデータが格納された最後のバッファを選択する。
【００７５】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００７６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，CD-ROM，CD-R，磁気テープ，不揮発性のメモリカード，ROMなどを用いることができる。
【００７７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７９】
第1実施形態では、特定の実施形態に関して本発明を説明したが、この他にもたくさんの変形が存在する。例えば、関連した数個のアプリケーションプログラムからなるワークグループのような、オペレーティングシステム全体よりは制限された環境に、多数のバッファメモリを備えることもできる。また、一つのアプリケーションプログラムに、このバッファメモリを備えることもできる。さらに、異なるコンピュータデバイス(例えばMacintosh)でも利用することができる。ユーザインタフェイスを、一つのストロークで、選択された一つのバッファをクリアする、または、すべてのバッファをクリアするように用意することができる。つまり、本発明は、請求項の記載およびそれらと等価のものにより決定され、説明した特定の実施形態により制限されることはない。
【００８０】
【発明の効果】
以上説明したように、本発明によれば、複数のアプリケーションプログラム間で複数のデータを転送する場合に、簡単な操作でデータを転送することができる。さらに、リコール元のバッファメモリが明示的に選択指示されない場合を考慮したデータ転送を行うことができる。
【図面の簡単な説明】
【図１】コンピュータ装置の外観を示す見取り図、
【図２】図1に示すコンピュータ装置の内部構成例を示す詳細なブロック図、
【図３】アプリケーションから選択されたデータを選択された多数のバッファメモリの一つに格納する際のウィンドウオペレーティングシステム100、アプリケーション104およびデータ転送システム用の「コピースタック」メモリ106の相互作用を示す機能ブロック図、
【図４Ａ】データ転送システムが「カット」または「コピー」動作の間、あるアプリケーションプログラムからユーザに選択された多数のバッファメモリの一つへ、データを格納するように動作させるストアードプログラムの指示シーケンスの実行を示すフロー図、
【図４Ｂ】「ペースト」動作の間、コピースタックの多数のバッファメモリの一つからアクティブなアプリケーションプログラムへデータを呼び戻すように、データ転送システムにより実行されるストアードプログラムの指示ステップを示すフロー図、
【図５】焦点を去らせることなく、多数のアプリケーションプログラム間で多数の選択データを転送するデータ転送システムの動作例を、ユーザの視点で示す図、
【図６Ａ】焦点を去らせることなく、多数のアプリケーションプログラム間で多数の選択データを転送するデータ転送システムの動作例を、ユーザの視点で示す図、
【図６Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図６Ｃ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図６Ｄ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図７Ａ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図７Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図８Ａ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図８Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図９Ａ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図９Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図９Ｃ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図１０Ａ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図１０Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図１１Ａ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図１１Ｂ】上記のデータ転送システムの動作例を、ユーザの視点で示す図、
【図１２Ａ】上記のデータ転送システムにおける「カット」および「コピー」動作例を、ユーザの視点で示すフローチャートである。
【図１２Ｂ】上記のデータ転送システムにおける「カット」および「コピー」動作例を、ユーザの視点で示すフローチャートである。
【図１３Ａ】上記のデータ転送システムにおける「ペースト」動作例を、ユーザの視点で示すフローチャートである。
【図１３Ｂ】上記のデータ転送システムにおける「ペースト」動作例を、ユーザの視点で示すフローチャートである。
【図１４Ａ】クリップブックのようなテンポラリ格納バッファを用いてアプリケーションプログラム間で多数の選択データを転送する一般的な処理を示す図、
【図１４Ｂ】上記のデータ転送処理を示す図、
【図１４Ｃ】上記のデータ転送処理を示す図、
【図１４Ｄ】上記のデータ転送処理を示す図、
【図１４Ｅ】上記のデータ転送処理を示す図、
【図１４Ｆ】上記のデータ転送処理を示す図、
【図１４Ｇ】上記のデータ転送処理を示す図、
【図１４Ｈ】上記のデータ転送処理を示す図、
【図１４Ｉ】上記のデータ転送処理を示す図、
【図１４Ｊ】上記のデータ転送処理を示す図、
【図１４Ｋ】上記のデータ転送処理を示す図、
【図１４Ｌ】上記のデータ転送処理を示す図、
【図１４Ｍ】上記のデータ転送処理を示す図、
【図１４Ｎ】上記のデータ転送処理を示す図、
【図１４Ｏ】上記のデータ転送処理を示す図、
【図１４Ｐ】上記のデータ転送処理を示す図、
【図１４Ｑ】上記のデータ転送処理を示す図、
【図１４Ｒ】上記のデータ転送処理を示す図である。
【図１】
0003805047.tif 000002
【図２】
0003805047.tif 000003
【図３】
0003805047.tif 000004
【図４Ａ】
0003805047.tif 000005
【図４Ｂ】
0003805047.tif 000006
【図５】
0003805047.tif 000007
【図６Ａ】
0003805047.tif 000008
【図６Ｂ】
0003805047.tif 000009
【図６Ｃ】
0003805047.tif 000010
【図６Ｄ】
0003805047.tif 000011
【図７Ａ】
0003805047.tif 000012
【図７Ｂ】
0003805047.tif 000013
【図８Ａ】
0003805047.tif 000014
【図８Ｂ】
0003805047.tif 000015
【図９Ａ】
0003805047.tif 000016
【図９Ｂ】
0003805047.tif 000017
【図９Ｃ】
0003805047.tif 000018
【図１０Ａ】
0003805047.tif 000019
【図１０Ｂ】
0003805047.tif 000020
【図１１Ａ】
0003805047.tif 000021
【図１１Ｂ】
0003805047.tif 000022
【図１２Ａ】
0003805047.tif 000023
【図１２Ｂ】
0003805047.tif 000024
【図１３Ａ】
0003805047.tif 000025
【図１３Ｂ】
0003805047.tif 000026
【図１４Ａ】
0003805047.tif 000027
【図１４Ｂ】
0003805047.tif 000028
【図１４Ｃ】
0003805047.tif 000029
【図１４Ｄ】
0003805047.tif 000030
【図１４Ｅ】
0003805047.tif 000031
【図１４Ｆ】
0003805047.tif 000032
【図１４Ｇ】
0003805047.tif 000033
【図１４Ｈ】
0003805047.tif 000034
【図１４Ｉ】
0003805047.tif 000035
【図１４Ｊ】
0003805047.tif 000036
【図１４Ｋ】
0003805047.tif 000037
【図１４Ｌ】
0003805047.tif 000038
【図１４Ｍ】
0003805047.tif 000039
【図１４Ｎ】
0003805047.tif 000040
【図１４Ｏ】
0003805047.tif 000041
【図１４Ｐ】
0003805047.tif 000042
【図１４Ｑ】
0003805047.tif 000043
【図１４Ｒ】
0003805047.tif 000044