Das Commands-Auflistungsobjekt
[Microsoft Agent ist ab Version Windows 7 veraltet und in nachfolgenden Versionen von Windows.]
Der Microsoft Agent-Server verwaltet eine Liste von Befehlen, die dem Benutzer derzeit zur Verfügung stehen. Diese Liste enthält Befehle, die der Server für die allgemeine Interaktion definiert (z. B. Hide and Open The Voice Commands Window), die Liste der verfügbaren (aber nicht eingabeaktiven) Clients und die vom aktuellen aktiven Client definierten Befehle. Die ersten beiden Befehlssätze sind globale Befehle. Das heißt, sie sind unabhängig vom eingabeaktiven Client jederzeit verfügbar. Clientdefinierte Befehle sind nur verfügbar, wenn dieser Client eingabeaktiv ist und das Zeichen sichtbar ist.
Jede Clientanwendung kann eine Sammlung von Befehlen definieren, die als Commands-Sammlung bezeichnet wird. Um der Auflistung einen Befehl hinzuzufügen, verwenden Sie die Add- oder Insert-Methode. Obwohl Sie die Eigenschaften eines Befehls mit separaten Anweisungen angeben können, geben Sie für eine optimale Codeleistung alle Eigenschaften eines Befehls in der Add- oder Insert-Methode an. Für jeden Befehl in der Sammlung können Sie bestimmen, ob der Benutzerzugriff auf den Befehl im Popupmenü des Zeichens, im Fenster "Sprachbefehle", in beiden oder in keinem der beiden Optionen angezeigt wird. Wenn beispielsweise ein Befehl im Popupmenü für das Zeichen angezeigt werden soll, legen Sie die Eigenschaften Caption und Visible des Befehls fest. Um den Befehl im Fenster Sprachbefehle anzuzeigen, legen Sie die VoiceCaption- und Voice-Eigenschaften des Befehls fest.
Ein Benutzer kann nurdann auf die einzelnen Befehle und Befehle in Ihrer Sammlung zugreifen, wenn Ihre Clientanwendung eingabeaktiv ist. Wenn Sie das Zeichen möglicherweise für andere Clientanwendungen freigeben, sollten Sie daher in der Regel die Eigenschaften Caption, VoiceCaptionund Voice für das Sammlungsobjekt Commands sowie für die Befehle in der Sammlung festlegen. Dadurch wird ein Eintrag für Ihre Commands-Sammlung im Popupmenü eines Zeichens und im Fenster "Sprachbefehle" platziert.
Wenn der Benutzer zu Ihrem Client wechselt, indem er seinen Befehlseintrag auswählt, macht der Server den Client automatisch eingabeaktiv, benachrichtigt Ihre Clientanwendung mithilfe des ActivateInput-Ereignisses und macht die Befehle in seiner Sammlung verfügbar. Der Server benachrichtigt den Client außerdem darüber, dass er mit dem DeActivateInput-Ereignis nicht mehr eingabeaktiv ist. Dadurch kann der Server nur die Befehle präsentieren und akzeptieren, die für den Kontext des aktuellen eingabeaktiven Clients gelten. Es dient auch dazu, Befehlsnamenskollisionen zwischen Clients zu vermeiden.
Ein Client kann mithilfe der Activate-Methode auch explizit anfordern, sich selbst zum eingabeaktiven Client zu machen. Diese Methode unterstützt auch das Festlegen der Anwendung, dass sie nicht der eingabeaktive Client ist. Sie können diese Methode verwenden, wenn Sie ein Zeichen für eine andere Anwendung freigeben und die Anwendung so festlegen, dass sie eingabeaktiv ist, wenn das Anwendungsfenster den Fokus erhält, und nicht eingabeaktiv, wenn es den Fokus verliert.
Auf ähnliche Weise können Sie mit der Activate-Methode festlegen, dass Ihre Anwendung der aktive Client des Zeichens ist (oder nicht). Der aktive Client ist der Client, der Eingaben empfängt, wenn sein Zeichen das oberste Zeichen ist. Wenn sich dieser Status ändert, benachrichtigt der Server Ihre Anwendung mit dem ActiveClientChange-Ereignis.
Wenn das Popupmenü eines Zeichens angezeigt wird, werden Änderungen an den Eigenschaften einer Commands-Sammlung oder an den Befehlen in der Sammlung erst angezeigt, wenn der Benutzer das Menü erneut anzeigt. Im Befehlsfenster werden jedoch Änderungen angezeigt, sobald sie vorgenommen werden.