Activate メソッド
[Microsoft エージェントは Windows 7 の時点で非推奨となり、以降のバージョンの Windows では使用できない場合があります。]
-
アクティブなクライアントまたは文字を設定します。
-
構文
-
agent**。文字 ("CharacterID")。Activate** [State]
パーツ 説明 状態 省略可能。 このパラメーターには、次の値を指定できます。0 アクティブなクライアントではありません。
1 アクティブなクライアント。
2 (既定値) 一番上の文字。
解説
複数の文字が表示されている場合、一度に 1 つの文字のみが音声入力を受け取ります。 同様に、複数のクライアント アプリケーションが同じ文字を共有する場合、1 つのクライアントのみがマウス入力を受け取ります (たとえば、Microsoft Agent コントロールのクリックイベントやドラッグ イベント)。 マウスと音声の入力を受け取る文字セットは最上位の文字であり、入力を受け取るクライアントはその文字のアクティブなクライアントです。 (一番上の文字のウィンドウは、文字ウィンドウの z オーダーの上部にも表示されます)。通常、ユーザーは文字を明示的に選択することで、最上位の文字を決定します。 ただし、一番上のアクティブ化は、文字が表示または非表示の場合にも変更されます (文字はそれぞれ最上位になるか、または一番上に表示されなくなります)。
また、このメソッドを使用して、アプリケーション自体がアクティブになったときなど、文字に対する入力をクライアントが受け取るタイミングを明示的に管理することもできます。 たとえば、 State を 2 に設定すると、文字が最上位になり、クライアントは、ユーザーと文字との対話から生成されたすべてのマウスおよび音声入力イベントを受け取ります。 そのため、クライアントは文字の入力アクティブなクライアントにもなります。
ただし、 State を 1 に設定することで、文字を最上位にすることなく、文字のアクティブなクライアントに自分自身を設定することもできます。 これにより、クライアントは、文字が最上位になったときに、その文字に送られた入力を受け取ることができます。 同様に、文字が最上位になったときに 、 State を 0 に設定することで、クライアントをアクティブなクライアント (入力を受け取らない) に設定できます。
Show メソッドの直後にこのメソッドを呼び出さないようにします。 [表示] を選択すると、入力アクティブなクライアントが自動的に設定されます。 文字が非表示の場合、Show メソッドが完了する前に処理されると、Activate 呼び出しが失敗する可能性があります。
このメソッドを関数に呼び出すと、メソッドが成功したかどうかを示すブール値が返されます。 指定した文字が非表示のときに State パラメーターを 2 に設定してこのメソッドを呼び出そうとすると、失敗します。 同様に、 State を 0 に設定し、アプリケーションが唯一のクライアントである場合、文字は常に最上位のクライアントを持つ必要があるため、この呼び出しは失敗します。
Dim Genie as Object
Sub FormLoad()
Agent1.Characters.Load "Genie", "Genie.acs"
Set Genie = Agent1.Characters ("Genie")
If (Genie. Activate = True) Then
'I'm active
Else
'I must be hidden or something
End If
End Sub
Note
State を 1 に設定してこのメソッドを呼び出しても、他の文字が読み込まれていないか、アプリケーションが既に入力アクティブでない限り、通常 ActivateInput イベントは生成されません。