JPH06274329A - プログラム生成方法 - Google Patents

プログラム生成方法

Info

Publication number
JPH06274329A
JPH06274329A JP5061604A JP6160493A JPH06274329A JP H06274329 A JPH06274329 A JP H06274329A JP 5061604 A JP5061604 A JP 5061604A JP 6160493 A JP6160493 A JP 6160493A JP H06274329 A JPH06274329 A JP H06274329A
Authority
JP
Japan
Prior art keywords
program
window
stored
signal
application
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.)
Granted
Application number
JP5061604A
Other languages
English (en)
Other versions
JP3147572B2 (ja
Inventor
Seiji Futaki
誠司 二木
Yoshiki Matsuda
芳樹 松田
Keiji Kojima
啓二 小島
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP06160493A priority Critical patent/JP3147572B2/ja
Priority to US08/214,404 priority patent/US5566336A/en
Publication of JPH06274329A publication Critical patent/JPH06274329A/ja
Application granted granted Critical
Publication of JP3147572B2 publication Critical patent/JP3147572B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 アプリケーションプログラムに対する一連の
ユーザ操作を再実行するためのプログラムとして、シス
テムプログラムからアプリケーションプログラムに通知
される応答メッセージと同期をとりながら実行できるも
のを生成する。 【構成】 アプリケーションが使用しているウィンドウ
に対するユーザ操作と、アプリケーションプログラムか
らの要求(例えばウィンドウの生成)に対してウィンド
ウサーバ107からこの要求元アプリケーションあるい
はウィンドウマネージャ108へ発行される、ウィンド
ウ生成通知を記録し、記録されたユーザ操作からはその
操作をアプリケーションプログラムに伝えるコマンドを
作成し、ウィンドウサーバからの通知からは、その通知
を待ち合せるコマンドを生成する。 【効果】 システムからの通知が遅れた場合でも、動的
に待ち合わせることができる操作マクロを生成できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,計算機プログラムの作
成方法に関する。特に、ユーザがアプリケーション・プ
ログラムを操作した一連の例から同様の操作を再実行可
能となる操作マクロプログラムを生成する方法に関す
る。
【0002】
【従来の技術】計算機がオフィスなどに広く普及するよ
うになり、たとえプログラムを作成することに精通して
いないユーザでも、できあがったアプリケーションプロ
グラムを使いこなすことは求められている。使うにあた
って、使用する度に同じ操作を何度も繰り返さなければ
ならないものがある。このような一連の操作をプログラ
ムとして利用できれば便利である。
【0003】アプリケーション・プログラムの操作を自
動化するプログラムの作成方法として、現在例示操作か
ら生成する方法が広く用いられている。これはユーザが
アプリケーション・プログラムを操作した一連の例を記
憶してこれをプログラムとし、これを再利用可能とする
ものである。再実行の際には、このプログラムを呼び出
すだけでよい。この方法によれば、ユーザにはプログラ
ミング言語の知識は必要なく、またキーボードでプログ
ラムを入力する必要も殆どない。以下このような例示操
作から生成したプログラムを操作マクロと呼び、操作マ
クロを生成するプログラムのことを、操作マクロ生成プ
ログラムと呼ぶこととする。
【0004】例えば表計算アプリケーション・プログラ
ムである米国のマイクロソフト社の「エクセル」は、操
作マクロ生成プログラムを内蔵している。すなわち、そ
のマニュアル「ユーザーズガイド」(1989年発行)
の449ページから458ページまでに記してあるよう
に、ユーザがいくつかのセルデータに対して複数の演算
を順次指示すると、指示された演算列を記憶した操作マ
クロが自動的に生成され、次からは生成された操作マク
ロを呼び出して別の値を持つセルデータに対して、同じ
演算列を指示することが可能である。「エクセル」で
は、ユーザのキーボード操作などを(ハードウェアから
の信号を処理する)基本システムプログラムがエクセル
に送信し、この操作に対して実行すべき処理を実行し、
同時にこれを操作マクロのコマンドとして記録する。こ
のような、アプリケーションプログラムに内蔵した操作
マクロの各コマンドは、先行するコマンドの実行完了に
応じて実行される。
【0005】操作マクロ生成プログラムを内蔵している
アプリケーションプログラムの他の例として、技術評論
社のCCT−98−IIIがある。これは本来はユーザ
が手元の計算機を別の計算機の端末として使用するため
の、通信プログラムである。同プログラムのマニュアル
である「ユーザーズガイド」(1992年発行)の22
ページから35ページまでにも述べられるように、ここ
で操作マクロを生成する際に、ユーザの一連の操作だけ
でなく、通信先からの応答も併せて記録してこれらをプ
ログラム化する。例えばユーザが手元の計算機から、遠
隔地にある計算機に接続する操作マクロを作成する場
合、ユーザの入力を単純に遠隔計算機に送り付けるだけ
では問題がある。計算機同士のやりとりは定まった手順
によって行なわれるため、送付先の計算機は受信準備が
できていないのに入力が送付されても、受け付けること
ができない。そのためこのCCT−98−IIIでは遠
隔計算機の受け入れ準備が整ったことを、交信先からの
メッセージ出力によって確認するためのステップを、生
成する操作マクロ中に組み込むことによって、常にタイ
ミング良く入力を送信することに成功している。例えば
例示操作の間に、「Enter User ID」とい
うメッセージにユーザが応答してユーザIDを入力した
場合に生成される操作マクロは、先のメッセージが出力
されるまで待ち合わせて入力されたユーザIDを送信す
るステップを含むものになる。
【0006】なお、発明者らが特開平2−181825
で述べているプログラムも、操作マクロ生成プログラム
と言える。これによると、ユーザはさまざまな状況にお
いて異なった操作例を用いて操作マクロを作成し、作成
された操作マクロを他のデータに対して実行する際に、
そのときの状況に応じた操作が実行されるよう制御され
る。
【0007】アプリケーションプログラムとは独立に設
けられた操作マクロ生成プログラムの例としては、米国
のCEソフトウェア社の製品「QuicKeys2」が
ある。これは操作マクロ生成プログラムを内蔵していな
いアプリケーションプログラムに対するユーザ操作から
操作マクロを生成するのに適している。さらに、同プロ
グラムのマニュアル「Quickeys2」(1990
年発行)の2−1節から2−13節(ページ記載なし)
に述べられているように、一つのアプリケーション・プ
ログラムに対する操作に限らず複数のアプリケーション
・プログラムにわたるユーザ操作から操作マクロを生成
することができる。このQuickeys2は、ウィン
ドウサーバの制御下で動作し、ウィンドウ環境下で動作
する他のアプリケーションプログラムに対する操作マク
ロを生成できる。「Quickeys2」では、ユーザ
のキーボード操作をウィンドサーバが受け取った時点で
記録している。
【0008】
【発明が解決しようとする課題】「Quickeys
2」では、ウィンドウ環境下で動作するアプリケーショ
ンプログラムに対してなされたユーザ操作から操作マク
ロを生成することができる。しかし、このようなウィン
ドウ環境下では、ユーザ操作がなされたことへの応答と
して、アプリケーションからウィンドウの生成あるいは
消減が要求されことがしばしばある。この要求に基づい
て、ウィンドウの生成あるいは消減がなされた後に入力
されたユーザ操作から作成されたマクロコマンドは、操
作マクロの実行時においても、このウィンドウの生成あ
るいは消減後に実行することが必要である。しかし、ウ
インドウの生成あるいは消滅の要求がなされた後、実際
にウインドウが生成されるまでの時間は、一定ではな
く、その時の計算機の状況によって異なる。従って、上
記ウインドウの生成後に実行されるべきマクロコマンド
が、ウインドの生成或いは消滅の前に実行されるという
ことが生じてしまう。
【0009】「Quickeys2」では、コマンド列
の実行途中で、次のコマンドの実行を待ち合わせる時間
をユーザが指定することができるようになっている。こ
れを前述の問題を解決するために用いて、ウインドウの
生成あるいは消滅の完了後に上記マクロコマンドが実行
されるようにするには、指定可能な最大の待ち合わせ時
間を指定する必要がある。しかし、このような次第の時
間を指定した場合、ウィンドウの生成あるいは消減が早
期になされたときには、多くの時間を浪費することにな
る。
【0010】さらに、ユーザの操作に応答して、アプリ
ケーションプログラムが要求するウインドウは、その時
のアプリケーションプログラムの動作環境に依存して変
化することがある。従って、操作マクロを策生成たとき
に生成されたウインドウと異なるウインドウが、その操
作マクロの実行時に生成されることがある。従って、単
に、ウインドウの生成あるいは消滅の後に、上記マクロ
コマンドを実行するだけでは、正常な結果を得ることが
できない。
【0011】従って本発明の第一の目的は、複数のアプ
リケーション・プログラムの実行を制御するシステムプ
ログラムからいづれかのアプリケーションプログラムへ
のメッセージを動的に待ち合わせ可能な操作マクロを生
成する方法を提供することである。
【0012】また本発明の第二の目的は、状況によって
変化する返信メッセージに対応することの可能な操作マ
クロを生成する方法を提供することである。
【0013】
【課題を解決するための手段】第一の目的を達成するた
めに、本願発明では、操作マクロを作成する際に、いづ
れかの対象アプリケーション・プログラムに対するユー
ザ操作と共に、アプリケーション・プログラムに対して
システムプログラムから出力された応答メッセージをも
記録する。記録されたユーザ操作からそのユーザ操作を
そのアプリケーション・プログラムに対して要求するコ
マンドを作成し、記録された応答メッセージからは、そ
のアプリケーション・プログラムに対してシステムプロ
グラムからそのメッセージが通知されるのを待ち合わせ
るコマンドを生成する。
【0014】また第二の目的を達成するために、本願の
他の発明では、アプリケーション・プログラムからの異
なるメッセージを発生させるような異なる状況下で、複
数の操作列を入力し、それらから複数の操作マクロを生
成する。生成された複数の操作マクロは、アプリケーシ
ョン・プログラムからの異なるメッセージを待ち合わせ
るように生成される。
【0015】
【作用】システムプログラムからの、特定のアプリケー
ションに対する特定のメッセージを動的に待ち合わせる
ことが出来るようになる。
【0016】さらに、複数列の操作から複数の操作マク
ロを使用した場合、操作マクロの実行的にその一つが待
ち合わせる返答メッセージが来なくて、他の返答メッセ
ージがきた場合、その、他の返答メッセージを待ちあわ
せる操作マクロを実行できる。
【0017】
【実施例】以下、図面を用いて本発明の一実施例を説明
する。
【0018】図1に、この実施例の全体構成を示す。こ
こでは米国のマサチューセッツ・工科大学が開発し、多
くの計算機に採用されている操作環境である、Xウィン
ドウシステムのウィンドウ・サーバ107を基本システ
ムとする実現例を示す。このウィンドウシステムに関し
ては、全体の概要がO’Reilly&Associa
tes、Inc.の発行した「Xlib Progra
mming Manual」(1989年発行)の1ペ
ージから8ページまでに述べられている。
【0019】ユーザからは、ディスプレイ装置101中
にウィンドウと呼ばれる矩形領域102、103を見る
ことができる。これらはそれぞれアプリケーション・プ
ログラムA(109)、B(110)に対応した実行イ
メージである。ユーザはそれぞれのアプリケーションの
実行状況を視覚的に確認することができる。また実行の
ためのデータ設定や、実行指示をマウス装置104、キ
ーボード装置105を用いてこれらのウィンドウに対し
て入力することができる。
【0020】処理のおおまかな流れを以下に示す。主記
憶装置106内では、OS112が管理するキーボード
装置105やマウス装置104からのユーザの入力をウ
ィンドウ・サーバ107がうけとる。ウィンドウ・サー
バ107はたとえばキーボード入力された際に最もユー
ザ側にあるウィンドウ(図1の場合はウィンドウB10
3)向けのものであると解釈し、解釈結果をアプリケー
ションB110に送信する。こういった情報をイベント
データとよぶ。イベントデータを受信したアプリケーシ
ョンB110は、その内容によって適当な処理を実行
し、場合によっては再びウィンドウサーバ107に要求
を行う。要求にウィンドウ画像の変更を含む場合にはウ
ィンドウサーバ107はウィンドウ103に適当な描画
を指示する。指示はOS112に送られ、ディスプレイ
装置101への描画要求をOS112が出力する。
【0021】Xウィンドウシステムでは、ウィンドウの
移動や、大きさの変更を各アプリケーションに通知しな
いで行うことが可能である。このための制御を、ウィン
ドウマネージャ108と呼ばれるプログラムが行う。こ
れは基本システムであるウィンドウサーバ107からみ
れば1つのアプリケーション・プログラムである。ウィ
ンドウマネージャ108は独立なウィンドウが新たに作
成された場合にウィンドウサーバ107からその通知を
受け、ユーザが自由にウィンドウの移動や大きさの変更
を行える制御機構を準備する。
【0022】本実施例では、操作マクロ生成・実行プロ
グラム111が新たな要素として加わる。これはユーザ
がマウス装置104や、キーボード装置105を用いて
ウィンドウ102または103に対して行なった操作の
列を記録して、これらの操作を再実行する操作マクロを
生成し、また実行するものである。このためにウィンド
ウサーバ107に二つの変更を加えている。
【0023】変更の第一は、アプリケーションが起動さ
れ、ウィンドウ・サーバ107との接続の要求がなされ
た際に、これを操作マクロ生成・実行プログラム111
に通知することである。以下この通知を接続要求210
と呼ぶ。
【0024】変更の第二は、ウィンドウサーバ107か
ら各アプリケーション・プログラムにイベントデータの
送信が行われる場合、これを操作マクロ生成・実行ルー
チン111にも送信するようにすることである。
【0025】図2に、操作マクロ生成・実行プログラム
111の構成を示す。このプログラムは接続要求210
とイベントデータ211をウィンドウサーバ107から
受信する。接続要求210は、ポート・アプリケーショ
ン名対応表212の作成に使用される。イベントデータ
211はウィンドウ・テーブル作成ルーチン202とイ
ベント・テーブル作成ルーチン203および操作マクロ
実行ルーチン208に渡される。
【0026】ウィンドウテーブル作成ルーチン202
は、渡されるイベントデータ211によってウィンドウ
テーブル204を管理していく。このテーブルは、現在
のディスプレイ装置101上のウィンドウ構成を操作マ
クロ側で正確に把握するためのものである。
【0027】イベントテーブル作成ルーチン203は、
ウィンドウサーバ107から送信されたイベントデータ
211に関する情報を、イベントテーブル205に記憶
する。本実施例では、このルーチン203は、全ての送
信されたイベントデータに関する情報を記憶するように
なっている。
【0028】操作マクロ生成ルーチン206は、ウィン
ドウ・テーブル204とイベント・テーブル205を参
照して操作マクロを作成し、これを操作マクロ管理部2
07に格納する。
【0029】操作マクロ実行ルーチン208は、操作マ
クロ記憶部207から操作マクロを取り出し、ウィンド
ウ・テーブル204を参照しながら実行する。
【0030】操作マクロ生成・実行プログラム111の
フローチャートを図14に示す。処理の実際の流れにつ
いては後述する具体的な例の中で説明する。
【0031】ここからは具体的な例を用いて説明する。
ここではアプリケーションA109を、簡単なワードプ
ロセッサであると考える。本実施例ではアプリケーショ
ンA109を対象とする操作マクロを作成し、実行する
ためにウィンドウマネージャ(WM)108をも対象と
する。話を単純にするため、ここでは図1のアプリケー
ションBに対応するウィンドウBは表示されず、したが
ってこのウィンドウに対する操作は考慮しないものとす
る。またウィンドウ・マネージャ108がすでに起動さ
れている状態で、アプリケーションA109を起動する
ものとする。
【0032】ここでアプリケーションA109の処理の
概要を簡単に述べる。このプログラムは図3の上に示す
ように、その本体ウィンドウ301(Wp)と、2つの
ダイアログウィンドウ304(Print?)と307
(Paper?)とから構成されている。ディスプレイ
装置101上には、はじめにWpウィンドウ301だけ
が表示される。ユーザはテキスト(ここでは画面上の文
字列)をウィンドウ303(Text)内に入力する。
こうして作成した文書を外部に接続してあるプリンタ装
置(図示せず)に出力する場合には、ウィンドウ302
(Print)をマウスで選択する。プリンタ装置の準
備が整っていれば、ダイアログ304(Print?)
が表示され、その中のウィンドウ305(Yes)をマ
ウスで選択することによって、印刷が行われる。プリン
タの用紙がなくなっている場合には、ダイアログ307
(Paper?)が表示される。プリンタ装置に紙を補
給して、この中のウィンドウ308(Cont。)をマ
ウスで選択すれば、印刷が行われ、ウィンドウ309
(Cancel)をマウスで選択すれば中止される。ま
た各ウィンドウ間の関係は図3の下に示す階層関係にあ
るものとする。この関係はウィンドウサーバ107内で
管理される。
【0033】アプリケーションA109を起動した直
後、これはウィンドウサーバ107に対して接続要求2
10を行う。この要求によりウィンドウサーバ107
は、アプリケーションとの送受信のための、2つの通信
ポートを開く。アプリケーションがウィンドウ作成など
の要求を行う場合には、送信ポートにこの要求を書き込
む。ウィンドウサーバ107はこのポートから要求を読
みだすと、これに応じた処理を行い、処理結果をアプリ
ケーション側の受信ポートに書き込む。アプリケーショ
ンは受信ポートに書き込まれた内容を読みだすことによ
って、要求が実行されたことを検知する。
【0034】ウィンドウサーバ107は先に述べた第一
の変更によって、アプリケーションからの接続要求21
0があった場合、操作マクロ生成・実行プログラム11
1に通知する。このときウィンドウ・サーバ107内に
新しい通信ポート(識別子6とする)を作成する。そし
てアプリケーション名(A)と作成した通信ポートの識
別子(6)、そしてアプリケーションへの書き込みのた
めの通信ポートの識別子(ここでは識別子7とする)を
操作マクロ生成・実行プログラム111に通知する。
【0035】操作マクロ生成・実行プログラム111で
は接続要求210を受信すると(14図ステップ140
2)、これを用いてポート・アプリケーション名対応表
を更新する(ステップ1403)。この更新処理は次の
ようなことを行う。操作マクロ生成・実行プログラム1
11は接続要求から、アプリケーション名(A)とウィ
ンドウサーバ107内で新たに作成された通信ポートの
識別子(6)、アプリケーションへの書き込みのための
通信ポートの識別子(7)をとりだす。ポート6は、操
作マクロ生成・実行プログラム111の受信ポート21
3である。ポート7は操作マクロ生成・実行プログラム
111の送信ポート214である。この2つのポート識
別子とアプリケーション名との対応表がポート・アプリ
ケーション名対応表212である。
【0036】この表は受信ポート項410と送信ポート
項411、アプリケーション名項412から構成させ
る。表中の一行が1つのアプリケーションに関する情報
となっている。図4の表の1行目は、ポート4から入力
されるイベントデータ211はウィンドウマネージャ1
08向けのものであり、ポート5へイベントデータ21
1を書き込めばウィンドウマネージャ108へこれを送
信することができる、ということである。同様に表の2
行目は、ポート6から入力されるイベントデータ211
はアプリケーションA109向けのものであり、ポート
7へイベントデータ211を書き込めばアプリケーショ
ンA109へこれを送信することができることを示して
いる。
【0037】ユーザがマウス装置104やキーボード装
置105を操作して、各アプリケーションに指示を出す
場合は、操作をウィンドウマネージャ107が解釈し、
その結果をイベントデータ211に変換して、このデー
タを各アプリケーションに送信する。このイベントデー
タ211の主要な構造を図5(b)に示す。ここに示す
ようにイベントデータ211からは、操作が発生した時
刻を表す発生時刻510と、その内容を表す内容51
1、操作の発生したウィンドウを表すウィンドウ名51
2、ウィンドウの親ウィンドウを表す親ウィンドウ名5
13などを得ることができる。この図の例では、イベン
トは93年の3月10日の21時00分00秒00に発
生し、その内容はPrintという名前を持つウィンド
ウがRootウィンドウを親ウィンドウとして表示(M
ap)されたことを示している。このイベントによって
Printウィンドウが実際に画面上に表示されたこと
がアプリケーションに通知される。先に述べたウィンド
ウサーバ107の第2の変更により、このイベントデー
タ211はすべて操作マクロ生成・実行プログラム11
1にも送信される。
【0038】アプリケーションA109が起動されたあ
と、プログラムで使用するウィンドウを作成するようウ
ィンドウサーバ107に要求する。本実施例では、ワー
ドプロセッサの主要部であるWpウィンドウ301と、
そのサブウィンドウであるPrintウィンドウ30
2、Textウィンドウ303の作成を要求する。これ
らの要求はウィンドウサーバによって処理され、ウィン
ドウがディスプレイ画面101上に表示される。
【0039】表示が行われると、これがイベントデータ
として各アプリケーションに通知される。これは表示に
伴って、各アプリケーションが別の処理を必要とするた
めである。ここでは3つのウィンドウに対応して3つの
イベントデータが送信される。
【0040】Wpウィンドウ301が表示されたという
第1のイベントデータは、ウィンドウマネージャ108
に送信される。このイベントデータは図5の下部に示し
たものである。この送信によって、ウィンドウマネージ
ャ108はこのウィンドウのサイズや位置をユーザが変
更できるような制御機構を準備する。
【0041】Printウィンドウ302と、Text
ウィンドウ303が表示されたという第2、第3のイベ
ントデータはアプリケーションA109に送信される。
【0042】これら3つのイベントデータは各アプリケ
ーションへと同時に、操作マクロ生成・実行プログラム
111へと送信される。ウィンドウマネージャ108向
きの送信はポート4へ、アプリケーションA109向き
の送信はポート6を使用して行われる。
【0043】操作マクロ生成・実行プログラム111
は、ここで示した第1のイベントデータを受け取ると
(図14ステップ1404)、これがウィンドウ表示イ
ベントであるので(ステップ1405)、このイベント
データをウィンドウテーブル作成ルーチン202に渡す
(ステップ1406)。
【0044】ウィンドウテーブル作成ルーチン202
は、渡されたイベントデータからウィンドウ名(Wp)
と親ウィンドウ名(Root)をとりだす(ステップ1
502)。イベントデータはウィンドウ表示のものであ
るので(ステップ1503)、ウィンドウテーブル20
4に新しい行Tableを追加する(ステップ150
4)。そしてTableのウィンドウ#項に一意に識別
可能な整数値(2)をつける(ステップ1505)。ま
たTableのウィンドウ名項と親ウィンドウ名項にそ
れぞれ、「Wp」と「Root」をつける(ステップ1
506)。この一連のステップによって、ウィンドウテ
ーブル204の3行めが記述されたことになる(図
4)。同様にして第2、第3のウィンドウ表示イベント
データによって、ウィンドウテーブル204の4、5行
目が記述される。ここまでのウィンドウテーブル204
の内容は図4の太枠内405となる。
【0045】ユーザは、このワードプロセッサ上で印刷
出力を行なうために、以下に示す操作を行なうものとす
る。
【0046】(1)Printウィンドウ302をマウ
スで選択する。
【0047】(2)操作(1)の結果Print?ダイ
アログ304が表示されたら、その中のYesウィンド
ウ305を選択する。
【0048】上で示した操作はプリンタ装置の準備が整
っている場合のものである。プリンタ装置の状態によっ
ては別の操作が必要となる。その一例を次に示す。これ
はプリンタ装置が紙切れを起こした場合の操作である。
【0049】(1)’Printウィンドウ302をマ
ウスで選択する。
【0050】(2)’操作(1)’の結果Paper?
ダイアログ307が表示されたら、その中のCance
lウィンドウ309を選択する。
【0051】以後の説明では(1)(2)という一連の
操作と、(1)’(2)’という一連操作から、それぞ
れ操作マクロが生成され、実行される処理を詳しく述べ
る。
【0052】操作の前にユーザはイベントテーブル作成
ルーチン203の開始を指示する。この開始や中断、ま
た操作マクロの生成や実行はユーザの指示によって行わ
れる。こういった指示を行うための操作マクロ生成・作
成プログラム111のインタフェース画面例を図6に示
す。この画面内には、イベントテーブル作成ルーチン2
03の開始と中断をそれぞれ指示するStartボタン
602とStopボタン603、操作マクロ生成を指示
するGenerateボタン604、操作マクロ実行を
指示するExecボタン605が配置されている。入力
領域606内には、生成・実行する操作マクロの名前を
入力する。領域607には、イベントテーブル205の
内容が表示される。この任意の行をマウスで選択するこ
とができる。
【0053】イベント・テーブル205の内容例を図5
に示す。テーブル内のIDを表すイベント#項501、
イベント間隔の時間をミリ秒単位で表すイベント間時間
項502、イベントの送付されるウィンドウの名前項5
04と、そのウィンドウの親ウィンドウの名前項50
3、送信されるアプリケーションを表す送信先項50
5、イベントの内容を表す内容項506、入力元を表す
タイプ項507から構成される。
【0054】イベント#項501内はイベント・テーブ
ル205の内容を一意に識別するためのIDを記述す
る。ここでは入力順に番号が与えられる。番号は−1か
ら始まって、1ずつ小さくなっていく。イベント#が負
の整数値の場合は、そのイベントテーブル行が無効であ
ると意味である。ユーザが図6に示したインタフェース
画面内でイベントテーブル内の適当な行をマウスで選択
することによって、イベント#の符号を反転させること
ができる。このようにしてイベント#が正の整数値にな
った場合は、そのイベントテーブル行は有効であるとさ
れる。作成時にはすべてのイベントテーブル行は無効で
ある。有効なイベントテーブル行は、操作マクロを生成
する際に参照される。無効なイベントテーブル行は無視
される。
【0055】図7は、図6で示したインタフェース画面
をユーザが操作した場合の動作を示したものである。S
tartボタンがマウスで選択されて指示されれば(7
02)イベントテーブル作成ルーチンを開始し(70
3)、Stopが指示されれば(704)このルーチン
を中断し(705)、Generateが指示されれば
(706)操作マクロを生成し(707)、Execが
指示されれば(708)操作マクロを実行する(70
9)。またイベント#項がマウスで選択された場合、そ
れが無効なものであれば(711)、イベント#項の数
値の符号を逆転させることによってこれを有効にする
(711)。また有効なものであれば(712)、これ
を無効にする(713)。
【0056】次に実際に(1)(2)の操作からマクロ
を生成するまでを述べる。これには(1)(2)の操作
からイベントテーブル205を作成する部分と、イベン
トテーブル205からユーザが有効なイベント行を選択
し、有効な部分からマクロを生成する部分とに分けて説
明する。
【0057】はじめに操作(1)からのイベントテーブ
ル205作成について述べる。イベントテーブル作成ル
ーチン203の処理の流れを図16に示す。操作(1)
は親ウィンドウがRootであるPrintウィンドウ
を、マウスで選択することである。実際にユーザが行う
操作は、マウスの左ボタンをPrintウィンドウ30
2上で押して、同じウィンドウ上で離すことである。
【0058】操作が行われると、マウス装置104を管
理するOS112に操作信号が送信され、この信号はウ
ィンドウサーバ107に転送される。ウィンドウサーバ
107はこの信号から操作が行われた位置と操作内容を
解析し、どのウィンドウ上で操作が行われたかを判断す
る。この場合Printウィンドウ302上で操作が行
われているので、このウィンドウの作成元であるアプリ
ケーションA109にこのウィンドウ上での操作内容を
通知する。また同じ内容が操作マクロ生成・実行プログ
ラム111内のイベント・テーブル作成ルーチン203
にもポート6を使用して送信される。この内容には、操
作の行われた時刻と、ウィンドウの名前(Prin
t)、親ウィンドウの名前(Wp)、操作の内容(Le
ftPressおよびLeftRelease)が含ま
れている。
【0059】このイベントデータを受け取った操作マク
ロ生成・実行ルーチン111は、これがウィンドウ表示
イベントでなく(図14ステップ1403)、イベント
テーブル作成ルーチン203が動作しているので(ステ
ップ1405)、イベントデータをイベントテーブル作
成ルーチン1405に渡す(ステップ1406)。
【0060】イベントテーブル作成ルーチン203はイ
ベントデータから、イベント発生時刻T、ウィンドウ名
W、親ウィンドウ名PW、操作内容Cをとりだす。また
このイベントデータ211は受信ポート6からのもので
あるので、対象アプリケーション名はAであることがポ
ート・アプリケーション名対応表212からわかる(以
上図16ステップ1602)。
【0061】これまでにイベントテーブル205には行
は存在しないので、新しい行を作成しこのイベント#項
501を−1とし、イベント間時間項502を0とする
(ステップ1607)。また親ウィンドウ名項503、
ウィンドウ名項504、送信先項505、内容項506
をそれぞれ「Wp」、「Print」、「A」、「Le
ftPress」とする。また内容項がマウスイベント
に関するものであるので、タイプ項507を「Mous
e」とする(ステップ1608)。これで図5に示すイ
ベントテーブル205の一行めが記述された。
【0062】次のイベントはマウスボタンを離したもの
である。このイベントデータ211から先の例と同様に
イベント発生時刻などを求める(ステップ1607)。
今回はイベントテーブルに行が存在するので、新しい行
を作成し(ステップ1604)、この行のイベント#項
を−2とする(ステップ1605)。またイベント発生
時刻を前の行のものとの差をとり、記述する(ステップ
1606)。そしてこの行の内容を前と同様にして記述
していく(ステップ1608)。これで図5に示すイベ
ントテーブル205の2行目が記述された。
【0063】操作(1)の結果アプリケーションA10
9に送られたイベントデータの内容から、このアプリケ
ーションはRootウィンドウを親としてPrint?
ウィンドウ304を開くよう、ウィンドウサーバ107
へ要求する。ウィンドウ・サーバ107は要求をうけて
このウィンドウを作成する。
【0064】さらにアプリケーションAはPrint?
ウィンドウ3−4を親ウィンドウとして、Yes30
5、No306の両ウィンドウを作成するよう、ウィン
ドウサーバ107に要求し、ウィンドウサーバ107は
これらのウィンドウを作成する。作成の結果、画面の表
示となってウィンドウがあらわれる。
【0065】Print?ウィンドウ304の表示イベ
ントデータはウィンドウマネージャ108へのイベント
データとなって通知される。またYesウィンドウ30
5とNoウィンドウの出現は、これを管理するPrin
tウィンドウ304の属するアプリケーションAに表示
イベントデータ211となって通知される。これらのイ
ベントデータは各アプリケーションと、操作マクロ生成
・実行プログラム111へ送信される。
【0066】操作マクロ生成・実行プログラム111で
はウィンドウ表示イベントを受け取ったのでこれをウィ
ンドウテーブル作成ルーチン202にわたす(図14ス
テップ1406)。このルーチンは、先にも説明したと
おりウィンドウテーブル204の更新を行う。更新結果
は図4中のウィンドウ#項が5、6、7である行に反映
されている。またこのイベントデータ211を、イベン
トテーブル作成ルーチン203が動作中であるので、こ
のルーチンに渡す(ステップ1408)。
【0067】3つのウィンドウ・イベントを受け取った
イベントテーブル作成ルーチン203は、新しいイベン
ト行を作成する(図16ステップ1604)。この行の
各項に、このイベントの発生した時刻と前のイベント発
生時刻との差、親ウィンドウ名、ウィンドウ名、アプリ
ケーション名、内容を記述する。このうち内容項506
には、ウィンドウが実際に作成されたことを示すべく
「MapConfig」と記述される。またこれはウィ
ンドウ生成イベントであるのでタイプ項507には「W
indow」と記述する。これらの通知に対応して作成
されたイベントテーブル205の内容は3、4、5行目
に示されている。
【0068】ユーザ操作(2)に関しては操作(1)の
Printのマウス選択と同様であるので詳しくは述べ
ない。この操作によって図5に示したイベントテーブル
205の6行目、7行目が作成される。この操作によっ
てウィンドウの生成はおこらないため、以上がイベント
・テーブル205の内容となる。(1)(2)操作によ
るイベントテーブル205の全体を図5の太枠508内
に示す。
【0069】次にイベントテーブル205から操作マク
ロを生成する部分について述べる。
【0070】ユーザはここまでに記録されたイベント・
テーブル205の第一の太枠508のイベント#項をマ
ウスで選択して、これらを有効なイベント・テーブル行
を有効とする。その結果インタフェース画面601上の
イベントテーブルの内容表示部607のイベント#項が
正の値に変更される。
【0071】生成する操作マクロの名前を「Print
Document」とする。このためインタフェース画
面601上の操作マクロ名入力領域にこれを入力し、操
作マクロ生成指示をGenerate指示を行う。これ
によって(1)(2)のユーザ操作を例とした操作マク
ロが生成される(図7ステップ707)。このステップ
でマクロが生成されるまでの処理について述べる。
【0072】図8は、操作マクロ生成ルーチン206を
示したものである。操作マクロの名前は、ここでは「P
rintDocument」という名前である。処理の
はじめに、空の操作マクロProgを生成する(ステッ
プ802)。これはこのままではなにもしないことを意
味する。
【0073】次にイベント・テーブル205内に有効な
イベント#項をもつ行が存在するかどうかを調べる(ス
テップ803)。この場合図5の第一の太枠508内に
存在する。有効なイベント#項をもつ行のうち、イベン
ト#の最も小さい行の内容を変数EventTable
の値とする(ステップ804)。この場合、イベント#
の1を持つ行がそれである。
【0074】次に、EventTableの各項から時
間T、親ウィンドウ名P、ウィンドウ名W、送信先A
p、内容C、タイプTyを取りだす(ステップ80
5)。この場合、Tは「10」、Pは「Wp」、Wは
「Print」、Apは「A」、Cは「LeftPre
ss」、Tyは「Mouse」となる。
【0075】そして、この選択されたEventTab
leのイベント#項の符号を反転させることによって、
これを無効にする(ステップ806)。
【0076】TyがMouseであるので(ステップ8
07)、これまで空であったProg操作マクロに次の
スクリプト、”SendEvent Wp Print
A LeftPress”を加える(ステップ80
9)。このスクリプトは、「親ウィンドウがWpである
ウィンドウPrintでマウスの左ボタンが押されたこ
とを示すイベントデータを作成し、これをアプリケーシ
ョンAに送信せよ」ということを意味している。
【0077】同じ流れを繰り返して、イベント・テーブ
ル205のイベント#が2の行から、次のスクリプ
ト、”SendEvent Wp Print A L
eftRelease”がProgに加えられる。これ
は、同じウィンドウでマウスの左ボタンが離されたこと
を示すイベントデータを作成し、アプリケーションAに
送信する指示を意味している。
【0078】イベント・テーブル205のイベント#3
の行については、ステップ807でタイプがWindo
wであり、KeyboardでもMouseでもないの
で、次のスクリプト”WaitEvent 80 Ro
ot Print? WM MapConfig”がP
rogに付け加えられる。このスクリプトは、「アプリ
ケーションがウィンドウマネージャ108であって、か
つ親ウィンドウがRootである、ウィンドウPrin
t?に対し、表示されたことを示すイベントが送信され
るまで待ちあわせよ」ということを意味している。また
時間80ミリ秒は、実行する際の参考データとして与え
ている。
【0079】このようにして第5図太枠509内の最後
のイベント・データ行の処理が終わると、もう有効なイ
ベント#項を持つ行が存在しなくなり(803)、Pr
ogを「PrintDocument」という名前で操
作マクロ記憶部207に格納し(810)、操作マクロ
生成ルーチン206を終了する(811)。
【0080】生成された操作マクロを、第9図901に
示す。実際の操作マクロ記憶部207内では、同じ名前
で格納された順に番号がついているため、操作マクロ名
は「PrintDocument(0)」となってい
る。
【0081】次に(1)’(2)’の操作からのイベン
トテーブル205の生成と、マクロ生成について説明す
る。
【0082】操作(1)と(1)’とは同じであるが、
(1)’ではプリンタ装置の紙切れを起こしたという状
況であるため、アプリケーションAは先の例で示したP
rint?ウィンドウ304ではなく、Paper?ウ
ィンドウ307を作成するよう、ウィンドウサーバ10
7に要求する。
【0083】ウィンドウサーバがウィンドウを作成処理
を実行後、各アプリケーションと操作マクロ生成・実行
プログラム111にはウィンドウ・イベントが通知され
る。これらからウィンドウテーブル作成ルーチン202
は、新しい行をウィンドウテーブル204に付け加え
る。新しい行は、図4のウィンドウ#項が8、9、10
である行である。
【0084】生成されたイベントテーブル205の内容
を、図5内の、イベント#項501が−100から−1
06までの部分に示す。このうち太枠509で示した部
分が(1)(2)の操作で生成したものと異なってい
る。
【0085】ここでは図5の太枠509内だけを有効な
イベント行として指定する。そして同じ名前「Prin
tDocument」で操作マクロを生成する。操作マ
クロの生成手順は先の説明と同様である。この名前で作
成された操作マクロは2つめであるので、操作マクロ名
は「PrintDocument(1)」となる。
【0086】図9の902に(1)’(2)’の操作か
ら生成された操作マクロの内容を示す。901、902
の二つのプログラムは、印刷出力を実行する、という共
通の目的をもってはじめた操作であるので、同じ名前で
格納され、作成順に番号が与えられている。
【0087】これまでに操作マクロを作成するまでにつ
いては説明した。次に操作マクロ記憶部207内に格納
された操作マクロの実行について述べる。実行は、図7
の709ステップに示したように、ユーザが図6のEx
ecボタン605をマウスで選択することによって行わ
れる。ここでは先の説明に用いた「PrintDocu
ment」操作マクロを実行することを考える。
【0088】図10は、名前が与えられて操作マクロを
実行する処理の流れを示したものである。はじめに、名
前が「PrintDocument」のもので未実行の
ものが操作マクロ記憶部207中にあるかどうかを確か
める(1002)。この場合、「PrintDocum
ent(0)」と「PrintDocument
(1)」の二つの操作マクロが存在する。
【0089】これらのうち、最も早く作成されたものを
Progとする(1003)。ここでは「PrintD
ocument(0)」である。
【0090】このProgを単一操作マクロと呼び、こ
れを実行する(1004)。
【0091】実行の結果は、後で説明するように必ず
「成功」か「失敗」かのいずれかである。もし結果が
「成功」ならば(1005)、そこで操作マクロの実行
を終了する。これは「PrintDocument
(0)」が正常に終了したことを意味する。また結果が
「失敗」ならば次の単一マクロProgを、「Prin
tDocument(1)」として、これを実行するこ
とになる。これは、通常の印刷出力の実行ができない場
合で、プリンタ装置の用紙がなくなっているなら印刷出
力を取りやめることを意味している。
【0092】そこで、図11を用いて単一操作マクロを
実行する処理について述べる。ここでは「PrintD
ocument(0)」を、単一操作マクロProgと
して説明する単一操作マクロは、図9の例からも明らか
なように、順序をもったスクリプトの列である。はじめ
に、この列の中で未実行のものが存在するかどうかを確
かめる(1102)。起動された時には、図9の901
のスクリプトが7行存在する。
【0093】図9の901の7行のスクリプトのうち、
はじめの”SendEvent Wp Print A
LeftPress”をScriptとする(110
3)。そしてこのスクリプトを実行する(1104)。
このスクリプトの実行の結果はやはり「成功」か「失
敗」かのいずれかである。
【0094】スクリプト実行の結果が「成功」なら(1
105)、Scriptの処理を終わり、次のスクリプ
トの処理をおこなう。「失敗」なら、Prog全体の実
行結果を「失敗」と報告する(1108)。もし一つの
スクリプトも失敗することなく、最後のスクリプトの実
行が終了したなら、Prog実行を「成功」と報告する
(1106)。「PrintDocument(0)」
の場合、(1)(2)の操作がすべて再実行できた場合
が、「成功」であり、そうでなくプリンタ装置の用紙が
なくなったような場合には、途中で失敗して「失敗」と
報告される。
【0095】そこで各スクリプトの実行処理について述
べる。はじめにスクリプト”SendEvent Wp
Print A LeftPress”をScrip
tとして、これを実行する場合について第12図を用い
て説明する。
【0096】ScriptからオペレータOp、親ウィ
ンドウ名P、ウィンドウ名W、送信先アプリケーション
名APP、内容Cを求める(1202)。この場合、O
pが「SendEvent」、Pが「Wp」、Wが「P
rint」、APPが「A」、Cが「LeftPres
s」である。
【0097】そして、ウィンドウW、親ウィンドウP、
内容Cからウィンドウ・イベントを作成しこれをEve
ntとする(1203)。これはウィンドウサーバ10
7から各アプリケーションに送信される形式と整合性を
とったもので、ユーザがマウス装置104を操作してP
rintウィンドウ上で左ボタンを押した時にウィンド
ウサーバからアプリケーションに送信されるものと、内
容的には同じものである。
【0098】Opが「SendEvent」であるので
(1204)、以下のステップを実行する。
【0099】まずここで与えられたウィンドウが、存在
するものであるかどうかを確かめる。これはウィンドウ
テーブル204を参照することによって確認する(12
05)。ここでは、ウィンドウ名と、親ウィンドウ名に
よって判断している。ウィンドウテーブル204内に正
しく存在しないものであれば、それはディスプレイ装置
上に存在しないということであるので、Scriptの
実行は「失敗」と報告する(1209)。
【0100】作成したEventを、アプリケーション
Aに送信する(1206)。送信はポート7に対して行
われる。この送信は、ユーザが実際にPrintウィン
ドウ302をマウスの左ボタンを押したことと同じ効果
をもたらす。送信内容のEventは、実際にユーザが
マウス操作したことによって送信されたイベントデータ
とは正確には一致しないが、これを受信したアプリケー
ションA109の処理は同じものとなる。送信後、この
Scriptの実行が「成功」だと報告して(120
7)、処理を終える(1208)。
【0101】次にスクリプト”WaitEvent 8
0 Root Print? WM MapConfi
g”をScriptとして、これを実行する場合につい
て第12図と第13図を用いて説明する。
【0102】この場合、Opは「WaitEven
t」、Tは「80」、Pは「Root」、Wは「Pri
nt?」、Appは「WM」、Cは「MapConfi
g」である(1202)。またイベント・データEve
ntが作成される(1203)。
【0103】Opが「SendEvent」でなく(1
204)、「WaitEvent」であるので(130
1)、以下のステップを実行する。
【0104】送信されるウィンドウ・イベント212の
うち、ウィンドウマネージャ108へのものを240ミ
リ秒だけ待つ。すなわち、対応する受信ポート4にウィ
ンドウ表示イベントデータが書き込まれるのを240ミ
リ秒だけ待つ。他のポートへの書き込み(異なるアプリ
ケーションからのイベントデータ送信)は無視される。
この待ちあわせは、次のコマンドを、ウィンドウの生成
が終わったのを確認してから送るためである。ウィンド
ウの生成までの時間は、そのときどきの状況によってか
わる。この240ミリ秒というのは、ユーザ操作を記録
した際に実際に要した時間(80ミリ秒)の3倍であ
る。これだけ待って送信が行われなければ、Scrip
tの実行を「失敗」として報告し(1305)、処理を
終了する(1306)。
【0105】ポート4へウィンドウ表示イベントデータ
が送信された場合には、受信したデータからウィンドウ
名RWと、親ウィンドウ名RP、イベントの内容RCを
取りだす(1304)。そしてこれらがそれぞれW、
P、Cと等しいかどうかを確認する(1307)。等し
いということは、正しく実行が継続されていることを意
味し、異なるということはマクロ作成時とは異なる状況
が生じたこと意味する。そこで等しいならScript
実行を「成功」と報告して(1308)処理を終わり
(1309)、そうでないなら「失敗」と報告して(1
305)処理を終わる(1306)。
【0106】自動生成される操作マクロの中で、Opが
「SendEvent」でも「WaitEvent」で
もないものは存在しないはずなので、異常終了処理(1
310)を実行することはありえない。
【0107】ここまでに、図9に示した操作マクロ「P
rintDocument」の実行が行われることを示
した。操作マクロの生成に関してユーザの行なうこと
は、いくつかの場合について一連の操作を示し、操作マ
クロ化したい部分を図6に示したインタフェース画面上
で指定して、操作マクロ生成を指示することである。実
行に関しては、ユーザは名前を指定して実行指示を出す
ことである。
【0108】ここで説明した例では、アプリケーション
Aのみが動作中であると仮定したが、別のアプリケーシ
ョン・プログラムの例えばBが動作中であり、ユーザ
が、それらの二つのプログラムにまたがって操作を行っ
た場合にも本実施例は有効である。本実施例では、この
場合、イベントテーブル205にはこれらのプログラム
およびウィンドウマネージャーに対するイベントが混っ
て記憶される。これらのイベントデータは、どのプログ
ラムに送信すべきものかもこのテーブルに記憶されてい
るので、これらのユーザ操作を実行するマクロプログラ
ムを全く同様に作成し実行できる。従って、それぞれの
プログラムに対するシステムプログラムからの応答メッ
セージを待ち合わせることも可能になる。
【0109】以上から明らかなように、本実施例では、
システムプログラムからアプリケーションプログラムに
対してなされる応答メッセージを動的に待ち合わせる操
作マクロを生成可能であり、しかも複数の異なる状況に
おける操作例から、複数の操作マクロを自動的に生成で
きる。
【0110】(変形例)以上の実施例では、イベントテ
ーブル205には、送信された全てのイベントデータを
記憶し、これらの内、操作マクロの作成に使用するイベ
ントデータをユーザが選択していた。この選択の負担を
減らす方法として、選択を操作マクロ生成ルーチンに任
せることも考えられる。たとえば、送信されたイベンド
データがプログラムAに対する操作のマクロ化に必要な
イベントデータか否かを判別し、そのマクロ化に必要な
もののみをイベントテーブルに記憶すればよい。あるい
は、イベントテーブルには全てのイベントデータを記憶
した後、プログラムAの操作のマクロ化に必要なものを
自動的にこの操作マクロ生成プログラムにより選択させ
てもよい。このためには、ウィンドウの表示、消去に関
するイベントデータは必ず有効なイベントデータとする
だけでもよい。
【0111】
【発明の効果】本発明によれば、アプリケーション・プ
ログラムに対する操作例から、それの実行を制御するシ
ステムプログラムからの応答メッセージを動的に待ち合
せるコマンドを含む操作マクロが容易に生成される。
【0112】同一の入力に対してアプリケーションから
の返送メッセージが変化する複数の場合にも使用可能な
操作マクロプログラムも作成できる。
【図面の簡単な説明】
【図1】本発明の実施例の全体構成図。
【図2】図1の操作マクロ生成・実行プログラムの詳細
な構成図。
【図3】本実施例で作成されるウィンドウの表示と構成
を示す図。
【図4】本実施例で作成されるウィンドウ・テーブルを
示す図。
【図5】本実施例で作成されるイベント・テーブルを示
す図。
【図6】図2の操作マクロ生成・実行プログラムのイン
タフェース画面を示す図。
【図7】図2の操作マクロ生成・実行プログラムのフロ
ーチャート。
【図8】図7の処理のうち操作マクロ生成ルーチンのフ
ローチャート。
【図9】本実施例で生成された操作マクロを示す図。
【図10】図7の処理のうち操作マクロの実行ルーチン
のフローチャート。
【図11】図10の処理のうち単一操作マクロProg
の実行ルーチンのフローチャート。
【図12】図11の処理のうちスクリプトScript
の実行ルーチンの一部のフローチャート。
【図13】図11の処理のうちスクリプトScript
の実行ルーチンの他の部分のフローチャート。
【図14】操作マクロ生成・実行プログラムのフローチ
ャート。
【図15】ウィンドウテーブル作成ルーチンのフローチ
ャート。
【図16】イベントテーブル作成ルーチンのフローチャ
ート。

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】複数のアプリケーションプログラムを、シ
    ステムプログラムの制御下で実行する計算機システムに
    おいて、該複数のアプリケーションプログラムの内の選
    択された一つのアプリケーションプログラムに対してな
    された一連のユーザ操作を実行するプログラムを生成す
    る方法であって、 (a)該システムプログラムが、該選択されたアプリケ
    ーションプログラムからの要求に対して応答メッセージ
    を、その選択されたアプリケーションプログラムまたは
    他のアプリケーションプログラムに出力するごとに、該
    システムプログラムから該複数のアプリケーションプロ
    グラムに共通に設けられた特定のプログラムにその応答
    メッセージを通知し、 (b)該選択されたアプリケーションプログラムに対し
    てユーザ操作がなされるごとに、そのユーザ操作を該シ
    ステムプログラムから該特定のプログラムに通知し、 (c)該ステップ(a)により通知がなされたとき、そ
    の通知で指定された応答メッセージの内容を示す第1種
    の信号を記憶し、該ステップ(b)により通知がなされ
    たとき、その通知で指定されたユーザ操作を示す第2種
    の信号を、該特定のプログラムにより記憶し、 (d)上記ステップ(c)により記憶された複数の第1
    種の信号および複数の第2種の信号に基づいて、選択さ
    れた一つのアプリケーションプログラムに対する一連の
    ユーザ操作を実行するための、該システムプログラムに
    供給すべき複数のコマンドからなるプログラムを、該特
    定のプログラムにより生成するステップを有し、 その生成のときに、(d1)各記憶された第1種の信号
    に基づいて、その第1種の信号が示す応答メッセージ
    が、該システムプログラムから該選択されたアプリケー
    ション・プログラムまたは該他のアプリケーションプロ
    グラムに出力されたことが該特定のプログラムに通知さ
    れるのを待ち合わせ、その通知がなされるまで後続のコ
    マンドの実行を遅延するコマンドを生成し、(d2)各
    記憶された第2種の信号に基づいて、その第2種の信号
    が示すユーザ操作が、該アプリケーション・プログラム
    に対してなされたことを該システムプログラムに通知す
    るコマンドを生成するもの。
  2. 【請求項2】複数のアプリケーションプログラムのそれ
    ぞれにウインドウを割り当て、それぞれのアプリケーシ
    ョンプログラムから発行された、新たなウインドウの生
    成あるいは消滅の要求を実行し、それぞれのアプリケー
    ションプログラムに対するユーザ操作をそれぞれのアプ
    リケーションプログラムに通知するウインドウプログラ
    ムの管理下で該複数のアプリケーションプログラムを実
    行する計算機システムにおいて、該複数のアプリケーシ
    ョンプログラムの内の選択された一つのアプリケーショ
    ンプログラムに対してなされた一連のユーザ操作を実行
    するプログラムを生成する方法であって、 (a)該選択されたアプリケーションプログラムに要求
    にしたがって、該ウインドウプログラムによりウインド
    ウが生成あるいは消滅されるごとに、そのウインドウの
    生成あるいは消滅を示す第1種の信号を記憶し、 (b)該選択されたアプリケーションプログラムが使用
    しているウインドウに対してユーザ操作がなされるごと
    に、そのウインドウとそのユーザ操作を示す第2種の信
    号を記憶し、 (c)上記ステップ(a)と(b)により記憶された複
    数の第1種の信号および複数の第2種の信号から、該選
    択されたアプリケーションプログラムに対する一連のユ
    ーザ操作を実行するための、該ウインドウプログラムに
    供給すべき複数のコマンドからなるプログラムを生成す
    るステップを有し、 その生成のときに、(c1)各記憶された第1種の信号
    に基づいて、その信号が示すウインドウの、生成あるい
    は消滅が該ウインドウプログラムによりなされるのを待
    ち合わせ、その生成あるいは消滅がなされるまで後続の
    コマンドの実行を遅延するコマンドを生成し、(c2)
    各記憶された第2種の信号に基づいて、その信号が示す
    ユーザ操作が、その信号が示すウインドウに対してなさ
    れたことを該ウインドウプログラムに通知するコマンド
    を生成するもの。
  3. 【請求項3】複数のアプリケーションプログラムを、そ
    れぞれにウインドウを割り当て、それぞれのアプリケー
    ションプログラムから発行された、新たなウインドウの
    生成あるいは消滅の要求を実行し、それぞれのアプリケ
    ーションプログラムに対するユーザ操作をそれぞれのア
    プリケーションプログラムに通知するウインドウプログ
    ラムの管理下で並列に実行する計算機システムにおい
    て、該複数のアプリケーションプログラムの内の選択さ
    れた一つのアプリケーションプログラムに対してなされ
    た一連のユーザ操作を実行するプログラムを生成する方
    法であって、 (a)該ウインドウプログラムが該選択されたアプリケ
    ーションプログラムから要求されたウインドウを生成あ
    るいは消滅するごとに、該ウインドウプログラムから該
    複数のアプリケーションプログラムに共通に設けられた
    特定のプログラムにそのウインドウが生成あるいは消滅
    されたことを通知し、 (b)該選択されたアプリケーションプログラムが使用
    する一つまたは複数のウインドウに対してユーザ操作が
    なされるごとに、そのウインドウに関してそのユーザ操
    作がなされたことを該ウインドウプログラムから該特定
    のプログラムに通知し、 (c)該ステップ(a)により通知がなされたとき、そ
    の通知で指定されたウインドウとウインドウの生成ある
    いは消滅とを示す第1種の信号を記憶し、該ステップ
    (b)により通知がなされたとき、その通知が示すウイ
    ンドウとユーザ操作とを示す第2種の信号を、該特定の
    プログラムにより記憶し、 (d)上記ステップ(c)により記憶された複数の第1
    種の信号および複数の第2種の信号に基づいて、選択さ
    れた一つのアプリケーションプログラムに対する一連の
    ユーザ操作を実行するための、該ウインドウプログラム
    に供給すべき複数のコマンドからなるプログラムを、該
    特定のプログラムにより生成するステップを有し、 その生成のときに、(d1)各記憶された第1種の信号
    に基づいて、その第1種の信号が示すウインドウの、生
    成あるいは消滅が、該ウインドウプログラムから該特定
    のプログラムに通知されるのを待ち合わせ、その通知が
    なされるまで後続のコマンドの実行を遅延するコマンド
    を生成し、(d2)各記憶された第2種の信号に基づい
    て、その第2種の信号が示すユーザ操作が、その信号が
    示すウインドウに対してなされたことを該ウインドウプ
    ログラムに通知するコマンドを生成するもの。
  4. 【請求項4】複数のアプリケーションプログラムを、そ
    れぞれにウインドウを割り当て、それぞれのアプリケー
    ションプログラムから発行された、新たなウインドウの
    生成あるいは消滅の要求を実行し、それぞれのアプリケ
    ーションプログラムに対するユーザ操作をそれぞれのア
    プリケーションプログラムに通知するウインドウプログ
    ラムの管理下で並列に実行する計算機システムにおい
    て、該複数のアプリケーションプログラムの内の選択さ
    れた一つのアプリケーションプログラムに対してなされ
    た一連のユーザ操作を実行するプログラムを生成する方
    法であって、 (a)該ウインドウプログラムがいずれか一つのアプリ
    ケーションプログラムから要求されたウインドウを生成
    あるいは消滅するごとに、そのウインドウの生成あるい
    は消滅を示す第1種の信号を記憶し、 (b)該ウインドウプログラムにより管理されている複
    数のウインドウのいずれかに対してユーザ操作がなされ
    るごとに、そのウインドウとそのユーザ操作を示す第2
    種の信号を記憶し、 (c)上記ステップ(a)と(b)により記憶された複
    数の第1種の信号および複数の第2種の信号から、該選
    択されたアプリケーションプログラムに対する一連のユ
    ーザ操作を実行するための、該ウインドウプログラムに
    供給すべき複数のコマンドからなるプログラムを生成す
    るステップを有し、 その生成のときに、(c1)該記憶された複数の第1種
    の信号の内の、アプリケーションプログラムが使用する
    一つまたは複数のウインドウのいずれかに関連する第1
    種の信号と、該記憶された複数の第2種の信号の内の、
    アプリケーションプログラムが使用する該一つまたは複
    数のウインドウのいずれかに対してなされたユーザ操作
    に関連する複数の第1種の信号とを選択し、(c2)各
    選択された第1種の信号に基づいて、その信号が示すウ
    インドウの、生成あるいは消滅が該ウインドウプログラ
    ムによりなされるのを待ち合わせ、その生成あるいは消
    滅がなされるまで後続のコマンドの実行を遅延するコマ
    ンドを生成し、(c3)各選択された第2種の信号に基
    づいて、その信号が示すユーザ操作が、その信号が示す
    ウインドウに対してなされたことを該ウインドウプログ
    ラムに通知するコマンドを生成するもの。
  5. 【請求項5】該ステップ(c1)による選択のときに、 該記憶された複数の第1種の信号と該記憶された複数の
    第2種の信号を表示装置の画面に表示し、 該表示画面上でのユーザによる指定された複数の第1種
    の信号と複数の第2種の信号を選択する請求項4記載の
    プログラム生成方法。
  6. 【請求項6】該ウインドウプログラムにより現に生成さ
    れているウインドウが、該複数のアプリケーションプロ
    グラムのいずれにより使用されているかを示す情報を記
    憶し、 該記憶された情報に基づいて、該記憶された複数の第1
    種の信号と該記憶された複数の第2種の信号のそれぞれ
    が該アプリケーションプログラムが使用しているウイン
    ドウに関連するかを判別するステップをさらに有し、 該ステップ(c1)による選択は、該判別結果に基づい
    て行なわれる請求項4記載のプログラム生成方法。
  7. 【請求項7】該ステップ(a)による記憶は、該ウイン
    ドウプログラムがいずれか一つのウインドウの生成ある
    いは消滅を行うごとに、該ウインドウプログラムが出力
    する信号に基づいて行なわれる請求項4記載のプログラ
    ム生成方法。
  8. 【請求項8】該ステップ(b)による記憶は、いずれか
    一つのウインドウに対してユーザ操作が行なわれるごと
    に該ウインドウプログラムが出力する信号に基づいて行
    なわれる請求項4記載のプログラム生成方法。
  9. 【請求項9】複数のアプリケーションプログラムを、そ
    れぞれにウインドウを割り当て、それぞれのアプリケー
    ションプログラムから発行された、新たなウインドウの
    生成あるいは消滅の要求を実行し、それぞれのアプリケ
    ーションプログラムに対するユーザ操作をそれぞれのア
    プリケーションプログラムに通知するウインドウプログ
    ラムの管理下で並列に実行する計算機システムにおい
    て、該複数のアプリケーションプログラムの内の選択さ
    れた一つのアプリケーションプログラムに対してなされ
    た一連のユーザ操作を実行するプログラムを生成する方
    法であって、 (a)該ウインドウプログラムがいずれか一つのアプリ
    ケーションプログラムから要求されたウインドウを生成
    あるいは消滅するごとに、該ウインドウプログラムから
    該複数のアプリケーションプログラムに共通に設けられ
    た特定のプログラムにそのウインドウが生成あるいは消
    滅されたことを通知し、 (b)該ウインドウプログラムにより管理されている複
    数のウインドウのいずれかに対してユーザ操作がなされ
    たとき、そのウインドウに関してそのユーザ操作がなさ
    れたことを該ウインドウプログラムから該特定のプログ
    ラムに通知し、 (c)該ステップ(a)により通知がなされたとき、そ
    の通知で指定されたウインドウとそのウインドウの生成
    あるいは消滅とを示す第1種の信号を記憶し、該ステッ
    プ(b)により通知がなされたとき、その通知が示すウ
    インドウとユーザ操作とを示す第2種の信号を、該特定
    のプログラムにより記憶し、 (d)上記ステップ(c)により記憶された複数の第1
    種の信号および複数の第2種の信号に基づいて、該選択
    された一つのアプリケーションプログラムに対する一連
    のユーザ操作を実行するための、該ウインドウプログラ
    ムに供給すべき複数のコマンドからなるプログラムを、
    該特定のプログラムにより生成するステップを有し、 その生成のときに、(d1)該記憶された複数の第1種
    の信号の内の、アプリケーションプログラムが使用する
    一つまたは複数のウインドウのいずれかに関連する第1
    種の信号と、該記憶された複数の第2種の信号の内の、
    アプリケーションプログラムが使用する該一つまたは複
    数のウインドウのいずれかに対してなされたユーザ操作
    に関連する複数の第1種の信号とを選択し、(d2)各
    選択された第1種の信号に基づいて、その信号が示すウ
    インドウの、生成あるいは消滅が該ウインドウプログラ
    ムによりなされるのを待ち合わせ、その生成あるいは消
    滅がなされるまで後続のコマンドの実行を遅延するコマ
    ンドを生成し、(d3)各選択された第2種の信号に基
    づいて、その信号が示すユーザ操作が、その信号が示す
    ウインドウに対してなされたことを該ウインドウプログ
    ラムに通知するコマンドを生成するもの。
  10. 【請求項10】該ステップ(d1)による選択のとき
    に、 該記憶された複数の第1種の信号と該記憶された複数の
    第2種の信号を表示装置の画面に表示し、 該表示画面上でのユーザによる指定された複数の第1種
    の信号と複数の第2種の信号を選択する請求項9記載の
    プログラム生成方法。
  11. 【請求項11】該ウインドウプログラムにより現に生成
    されているウインドウが、該複数のアプリケーションプ
    ログラムのいずれにより使用されているかを示す情報を
    記憶し、 該記憶された情報に基づいて、該記憶された複数の第1
    種の信号と該記憶された複数の第2種の信号のそれぞれ
    が該アプリケーションプログラムが使用しているウイン
    ドウに関連するかを判別するステップをさらに有し、 該ステップ(d1)による選択は、該判別結果に基づい
    て行なわれる請求項9記載のプログラム生成方法。
  12. 【請求項12】該ステップ(c)によるいずれかの第1
    種の信号の記憶は、該ウインドウプログラムがいずれか
    一つのウインドウの生成あるいは消滅を行うごとに、該
    ウインドウプログラムが出力する信号に基づいて行なわ
    れる請求項9記載のプログラム生成方法。
  13. 【請求項13】該ステップ(c)によるいずれかの第2
    種の信号の記憶は、いずれか一つのウインドウに対して
    ユーザ操作が行なわれるごとに該ウインドウプログラム
    が出力する信号に基づいて行なわれる請求項9記載のプ
    ログラム生成方法。
  14. 【請求項14】複数のアプリケーションプログラムを、
    それぞれにウインドウを割り当て、それぞれのアプリケ
    ーションプログラムから発行された、新たなウインドウ
    の生成あるいは消滅の要求を実行し、それぞれのアプリ
    ケーションプログラムに対するユーザ操作をそれぞれの
    アプリケーションプログラムに通知するウインドウプロ
    グラムの管理下で並列に実行する計算機システムにおい
    て、該複数のアプリケーションプログラムの内の選択さ
    れた一つのアプリケーションプログラムに対してなされ
    た一連のユーザ操作を実行するプログラムを生成する方
    法であって、 (a)該ウインドウプログラムがいずれか一つのアプリ
    ケーションプログラムから要求されたウインドウを生成
    あるいは消滅するごとに、該ウインドウプログラムから
    該複数のアプリケーションプログラムに共通に設けられ
    た特定のプログラムにそのウインドウが生成あるいは消
    滅されたことを通知し、 (b)該ウインドウプログラムにより管理されている複
    数のウインドウのいずれかに対してユーザ操作がなされ
    たとき、そのウインドウに関してそのユーザ操作がなさ
    れたことを該ウインドウプログラムから該特定のプログ
    ラムに通知し、 (c)該ステップ(a)または(b)により通知がなさ
    れたとき、その通知が、該選択されたアプリケーション
    プログラムが使用しているウインドウに関連するものか
    否かを、該特定のプログラムにより判別し、 (d)該判別の結果、その通知が、該選択されたアプリ
    ケーションプログラムが使用しているウインドウに関す
    るものであるときには、その通知がステップ(a)によ
    る通知であるかステップ(b)による通知であるかに依
    存して、その通知で指定されたウインドウとウインドウ
    の生成あるいは消滅とを示す第1種信号あるいはその通
    知が示すウインドウとユーザ操作とを示す第2種の信号
    を、該特定のプログラムにより記憶し、 (e)上記ステップ(d)により記憶された複数の第1
    種の信号および複数の第2種の信号から、該選択された
    アプリケーションプログラムに対する一連のユーザ操作
    を実行するための、該ウインドウプログラムに供給すべ
    き複数のコマンドからなるプログラムを生成するステッ
    プを有し、 その生成のときに、(e1)各記憶された第1種の信号
    に基づいて、その信号が示すウインドウの、生成あるい
    は消滅が、該ウインドウプログラムから該特定のプログ
    ラムに通知されるのを待ち合わせ、その通知がなされる
    まで後続のコマンドの実行を遅延するコマンドを生成
    し、(e2)各記憶された第2種の信号に基づいて、そ
    の信号が示すユーザ操作が、その信号が示すウインドウ
    に対してなされたことを該ウインドウプログラムに通知
    するコマンドを生成するもの。
  15. 【請求項15】該複数のコマンドの少なくとも一つは、
    そのコマンドが行なう待ち合わせの時間を指定するコマ
    ンドである請求項3記載のプログラム生成方法。
  16. 【請求項16】該ウインドウプログラムからの複数の通
    知が発生した時間間隔に基づいて、該特定のプログラム
    により、その待合せの時間を決定するステップをさらに
    有する請求項15記載の記載のプログラム生成方法。
  17. 【請求項17】該決定ステップは、その記憶された第1
    種の信号を記憶する契機となった通知と、その通知に先
    行して該ウインドウプログラムから発っせられた通知と
    の間の時間間隔により決定するステップからなる請求項
    16記載のプログラム生成方法。
  18. 【請求項18】該複数のコマンドの少なくとも一つが待
    ち合わせる、ウインドウの生成あるいは消滅を生じない
    場合に入力すべき他の一連のユーザ操作をさらに入力
    し、 該他の一連のユーザ操作が行なわれている間、上記ステ
    ップ(a)から(d)を実行し、その実行の結果、該他
    の一連のユーザ操作を実行するための他のプログラムを
    生成し、 該生成された他のプログラムを、該一連のユーザ操作に
    対して生成された該プログラムの実行中に該一つのコマ
    ンドの待合せが所定の待合せ時間内に成功しなかった場
    合に、その一つのコマンドの後続のコマンドに代えて実
    行すべきプログラムとして記憶するステップをさらに有
    する請求項3記載のプログラム生成方法。
  19. 【請求項19】該他のプログラムの記憶は、該一連のユ
    ーザ操作に対して生成された該プログラムの名称と同じ
    名称でもって、該他のプログラム記憶するステップから
    なる請求項18記載のプログラム生成方法。
  20. 【請求項20】アプリケーションプログラムに対して行
    なった一連のユーザ操作で指定される処理を実行するプ
    ログラムを生成する方法であって、(a)該アプリケー
    ションプログラムに対する一連のユーザ操作と該一連の
    ユーザ操作の少なくとも一つに対して、該アプリケーシ
    ョンプログラムもしくはその一つのユーザ操作に関連し
    た処理を行なうプログラムから発せられた返送メッセー
    ジとを、それぞれのユーザ操作の入力と該返送メッセー
    ジの発生の時刻の順に記録し、(b)該記憶された一連
    のユーザ操作と該返送メッセージとに基づいて、該一連
    のユーザ操作を該アプリケーションプログラムに入力さ
    せるための一連のコマンドからなるプログラムを生成
    し、その生成に当たり、(b1)各記憶されたユーザ操
    作に基づいて、そのユーザ操作を該アプリケーションプ
    ログラムに実行させるためのコマンドを生成し、(b
    2)該返送メッセージに基づいて、その返送メッセージ
    が該アプリケーションプログラムもしくはその一つのユ
    ーザ操作に関連した処理を行なうプログラムから発せら
    れるのを待ち合わせる特定のコマンドを生成し、(c)
    該返送メッセージが該アプリケーションプログラムもし
    くはその一つのユーザ操作に関連した処理を行なうプロ
    グラムから発っせられない場合に入力されるべき操作と
    して実行された他の一連のユーザ操作に対して、該ステ
    ップ(a)と(b)とを実行し、その実行の結果とし
    て、該他の一連の操作を該アプリケーションプログラム
    に入力するための他のプログラムを生成し、(d)該一
    連の操作に対して生成された該プログラムの実行中に、
    該特定のコマンドの待ち合わせが所定の時間内に成功し
    なかったときに実行されるべきプログラムとして、該他
    のプログラムを記憶するステップを有するもの。
  21. 【請求項21】該他のプログラムの記憶は、該一連のユ
    ーザ操作に対して生成された該プログラムの名称と同じ
    名称でもって、該他のプログラム記憶するステップから
    なる請求項20記載のプログラム生成方法。
JP06160493A 1993-03-22 1993-03-22 プログラム生成方法 Expired - Fee Related JP3147572B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP06160493A JP3147572B2 (ja) 1993-03-22 1993-03-22 プログラム生成方法
US08/214,404 US5566336A (en) 1993-03-22 1994-03-16 Operation macro generated method that changes execution control according to system situation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06160493A JP3147572B2 (ja) 1993-03-22 1993-03-22 プログラム生成方法

Publications (2)

Publication Number Publication Date
JPH06274329A true JPH06274329A (ja) 1994-09-30
JP3147572B2 JP3147572B2 (ja) 2001-03-19

Family

ID=13175941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06160493A Expired - Fee Related JP3147572B2 (ja) 1993-03-22 1993-03-22 プログラム生成方法

Country Status (2)

Country Link
US (1) US5566336A (ja)
JP (1) JP3147572B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6184880B1 (en) 1997-01-08 2001-02-06 Nec Corporation Automatic GUI system operation device and operation macro execution device
JP2010204840A (ja) * 2009-03-02 2010-09-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体
US8136086B2 (en) 2004-08-27 2012-03-13 Canon Kabushiki Kaisha Control method for apparatus capable of using macros describing operation sequence
JP2018032420A (ja) * 2008-03-04 2018-03-01 アップル インコーポレイテッド タッチイベントモデル
US10613741B2 (en) 2007-01-07 2020-04-07 Apple Inc. Application programming interface for gesture operations
US10719225B2 (en) 2009-03-16 2020-07-21 Apple Inc. Event recognition
US10732997B2 (en) 2010-01-26 2020-08-04 Apple Inc. Gesture recognizers with delegates for controlling and modifying gesture recognition
US10963142B2 (en) 2007-01-07 2021-03-30 Apple Inc. Application programming interfaces for scrolling
US11429190B2 (en) 2013-06-09 2022-08-30 Apple Inc. Proxy gesture recognizer

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374287B1 (en) 1996-01-24 2002-04-16 Sun Microsystems, Inc. Method and system for allowing client processes to run on distributed window server extensions
US6182146B1 (en) * 1997-06-27 2001-01-30 Compuware Corporation Automatic identification of application protocols through dynamic mapping of application-port associations
US6269460B1 (en) 1998-09-01 2001-07-31 International Business Machines Corporation Dynamic enhancement of error condition handling and displayed error messages in computer operations
EP1224544A1 (en) * 1999-08-16 2002-07-24 Z-Force Corporation System of reusable software parts for implementing concurrency and hardware access, and methods of use
US6802052B1 (en) * 2000-07-13 2004-10-05 International Business Machines Corporation Method, apparatus, and article of manufacture for providing automatic recognition and playback of repetitive input device patterns
JP3906031B2 (ja) * 2001-01-31 2007-04-18 株式会社東芝 動画像再生装置及び動画像再生処理をコンピュータに実行させるためのプログラム
US8954420B1 (en) 2003-12-31 2015-02-10 Google Inc. Methods and systems for improving a search ranking using article information
US8161053B1 (en) 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
US8386728B1 (en) 2004-03-31 2013-02-26 Google Inc. Methods and systems for prioritizing a crawl
US7333976B1 (en) 2004-03-31 2008-02-19 Google Inc. Methods and systems for processing contact information
US8275839B2 (en) 2004-03-31 2012-09-25 Google Inc. Methods and systems for processing email messages
US7941439B1 (en) * 2004-03-31 2011-05-10 Google Inc. Methods and systems for information capture
US8346777B1 (en) 2004-03-31 2013-01-01 Google Inc. Systems and methods for selectively storing event data
US8099407B2 (en) 2004-03-31 2012-01-17 Google Inc. Methods and systems for processing media files
US8631076B1 (en) 2004-03-31 2014-01-14 Google Inc. Methods and systems for associating instant messenger events
US7725508B2 (en) * 2004-03-31 2010-05-25 Google Inc. Methods and systems for information capture and retrieval
US7680888B1 (en) 2004-03-31 2010-03-16 Google Inc. Methods and systems for processing instant messenger messages
US7647647B2 (en) * 2004-08-05 2010-01-12 International Business Machines Corporation System, method and program product for temporally authorizing program execution
JP4653561B2 (ja) * 2005-05-31 2011-03-16 株式会社東芝 情報処理装置および表示制御方法
US9262446B1 (en) 2005-12-29 2016-02-16 Google Inc. Dynamically ranking entries in a personal data book
KR101504115B1 (ko) * 2007-03-12 2015-03-19 삼성전자 주식회사 매크로 명령 동작 장치와 매크로 명령 입력 장치 및 방법
CN102789385B (zh) * 2012-08-15 2016-03-23 魔方天空科技(北京)有限公司 视频文件播放器和视频文件播放的处理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2191918B (en) * 1986-06-16 1990-09-05 Ibm Data display system
US4896290A (en) * 1987-08-24 1990-01-23 Wang Laboratories, Inc. Method for routing events from key strokes in a multi-processing computer systems
DE69031295T2 (de) * 1989-06-19 1998-04-02 Digital Equipment Corp Anordnung zur Integration von Anwendungsprogrammen in einem digitalen Datenverarbeitungssystem
US5214780A (en) * 1990-03-23 1993-05-25 Sun Microsystems, Inc. Synchronized journaling system
US5086386A (en) * 1990-03-23 1992-02-04 Sun Microsystems, Inc. Method and apparatus for benchmarking the working set of window-based computer systems

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6184880B1 (en) 1997-01-08 2001-02-06 Nec Corporation Automatic GUI system operation device and operation macro execution device
US8136086B2 (en) 2004-08-27 2012-03-13 Canon Kabushiki Kaisha Control method for apparatus capable of using macros describing operation sequence
US10963142B2 (en) 2007-01-07 2021-03-30 Apple Inc. Application programming interfaces for scrolling
US11954322B2 (en) 2007-01-07 2024-04-09 Apple Inc. Application programming interface for gesture operations
US11449217B2 (en) 2007-01-07 2022-09-20 Apple Inc. Application programming interfaces for gesture operations
US10613741B2 (en) 2007-01-07 2020-04-07 Apple Inc. Application programming interface for gesture operations
US10521109B2 (en) 2008-03-04 2019-12-31 Apple Inc. Touch event model
US10936190B2 (en) 2008-03-04 2021-03-02 Apple Inc. Devices, methods, and user interfaces for processing touch events
JP2018032420A (ja) * 2008-03-04 2018-03-01 アップル インコーポレイテッド タッチイベントモデル
US11740725B2 (en) 2008-03-04 2023-08-29 Apple Inc. Devices, methods, and user interfaces for processing touch events
JP2010204840A (ja) * 2009-03-02 2010-09-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体
US10719225B2 (en) 2009-03-16 2020-07-21 Apple Inc. Event recognition
US11163440B2 (en) 2009-03-16 2021-11-02 Apple Inc. Event recognition
US11755196B2 (en) 2009-03-16 2023-09-12 Apple Inc. Event recognition
US10732997B2 (en) 2010-01-26 2020-08-04 Apple Inc. Gesture recognizers with delegates for controlling and modifying gesture recognition
US11429190B2 (en) 2013-06-09 2022-08-30 Apple Inc. Proxy gesture recognizer

Also Published As

Publication number Publication date
JP3147572B2 (ja) 2001-03-19
US5566336A (en) 1996-10-15

Similar Documents

Publication Publication Date Title
JP3147572B2 (ja) プログラム生成方法
US5960168A (en) Deferred printing
US5437006A (en) Spreadsheet command/function capability from a dynamic-link library
US5479599A (en) Computer console with group ICON control
US5752254A (en) Method and system for controlling clipboards in a shared application progam
JP4420968B2 (ja) コマンディングのために方法及びコンピュータ可読媒体
US5897635A (en) Single access to common user/application information
US5313581A (en) System and method for communication between windowing environments
JP2002163086A (ja) 情報処理装置及び分散印刷制御方法及び記憶媒体並びにプログラム
JPH0812625B2 (ja) コンピユータシステム
JPH04318618A (ja) アクションバー及びプルダウン・メニューのワークステーションでの表示・処理装置及び方法
JP3454285B2 (ja) データ処理装置およびデータ処理方法
JPH07271545A (ja) 情報処理装置
JPH08339350A (ja) 端末制御方式
JP2001306309A (ja) 入力装置、インタフェース作成システム、データ処理方法、記憶媒体及びプログラム伝送装置
JPH0635855A (ja) コンピュータシステムにおけるワークステーション制御方式
JPH0778215A (ja) 業務プログラムの実行方法
US5850510A (en) Interpreter language processing device
KR20020000569A (ko) 윈도우 어플리케이션용 스킨 시스템
CN111475204A (zh) 一种主机交互操作方法、系统及中间转换装置
JPH09305366A (ja) 画面表示最適化方法
JPH10283323A (ja) 計算機の表示占有ユーザ切換装置
JPH06230940A (ja) プログラム制御装置
JPS6226534A (ja) 入力要求領域表示の制御方法
JPH04367038A (ja) 複数os操作方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees