[Microsoft代理程式從 Windows 7 開始已被取代,而且可能無法在後續版本的 Windows 中使用。]
-
設定使用中的用戶端或字元。
-
語法
-
代理程式**。字元 (“CharacterID]。Activate** [State]
部分 描述 狀態 自選。 您可以指定此參數的下列值:0 不是使用中的用戶端。
1 使用中的用戶端。
2 (預設值) 最上層字元。
言論
當顯示多個字元時,一次只能有一個字元接收語音輸入。 同樣地,當多個用戶端應用程式共用相同的字元時,只有一個用戶端會收到滑鼠輸入(例如,Microsoft Agent 控件按兩下或拖曳事件)。 要接收滑鼠和語音輸入的字元集是最上層字元,而接收輸入的用戶端是該字元的作用中用戶端。 (最上層字元的視窗也會出現在字元視窗 z 順序的頂端。使用者通常會藉由明確選取字元來判斷最上層字元。 不過,最上層的啟用也會在顯示或隱藏字元時變更(字元會分別變成或不再最上層。
您也可以使用這個方法來明確管理用戶端何時收到導向至字元的輸入,例如當應用程式本身變成作用中時。 例如,將 [狀態] 設定為 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
注意
呼叫這個方法時,State 設為 1,通常不會產生 ActivateInput 事件,除非沒有載入其他字元,否則您的應用程式已經處於輸入作用中狀態。