Das Commands-Auflistungsobjekt

[Microsoft Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Der Microsoft Agent-Server verwaltet eine Liste der Befehle, die dem Benutzer derzeit zur Verfügung stehen. Diese Liste enthält Befehle, die der Server für die allgemeine Interaktion definiert (z. B. Das Fenster Sprachbefehle ausblenden und öffnen), die Liste der verfügbaren Clients (jedoch nicht eingabeaktiv) und die vom aktuellen aktiven Client definierten Befehle. Die ersten beiden Befehlssätze sind globale Befehle. das heißt, sie sind jederzeit verfügbar, unabhängig vom eingabeaktiven Client. Clientdefinierte Befehle sind nur verfügbar, wenn dieser Client eingabeaktiv ist und das Zeichen sichtbar ist.

Jede Clientanwendung kann eine Auflistung von Befehlen mit dem Namen Commands-Auflistung definieren. 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-Anweisung an. Für jeden Befehl in der Auflistung können Sie bestimmen, ob der Benutzerzugriff auf den Befehl im Popupmenü des Zeichens, im Fenster Sprachbefehle, in beiden oder in keinem 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 Eigenschaften VoiceCaption und Voice des Befehls fest.

Ein Benutzer kann nur dann auf die einzelnencomm-Befehleund -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, VoiceCaption und Voice für das Commands-Auflistungsobjekt sowie für die Befehle in der Auflistung festlegen. Dadurch wird ein Eintrag für Ihre Commands-Auflistung im Popupmenü eines Zeichens und im Fenster Sprachbefehle platziert.

Wenn der Benutzer durch Auswählen des Befehlseintrags zu Ihrem Client wechselt , macht der Server den Client automatisch eingabeaktiv, benachrichtigt ihre Clientanwendung mithilfe des ActivateInput-Ereignisses und stellt die Befehle in seiner Sammlung zur Verfügung. Der Server benachrichtigt den Client auch darüber, dass er mit dem DeActivateInput-Ereignis nicht mehr eingabeaktiv ist. Dadurch kann der Server nur die Befehle anzeigen und akzeptieren, die für den Kontext des aktuellen eingabeaktiven Clients gelten. Es dient auch dazu, Befehlsnamenkonflikte zwischen Clients zu vermeiden.

Ein Client kann auch explizit anfordern, sich mithilfe der Activate-Methode zum eingabeaktiven Client zu machen. Diese Methode unterstützt auch das Festlegen, dass Ihre Anwendung nicht der eingabeaktive Client ist. Möglicherweise möchten Sie diese Methode verwenden, wenn Sie ein Zeichen für eine andere Anwendung freigeben und Ihre Anwendung so festlegen, dass sie eingabeaktiv ist, wenn ihr Anwendungsfenster den Fokus erhält, und nicht eingabeaktiv, wenn es den Fokus verliert.

Ebenso 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 diese 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-Auflistung oder der Befehle in ihrer Auflistung erst angezeigt, wenn der Benutzer das Menü erneut anzeigt. Im Fenster "Befehle" werden jedoch änderungen angezeigt, sobald sie auftreten.