Inhalt

  1. Über dieses Dokument
  2. Benötigte Komponenten
  3. Vorbereitungen
  4. Ein erster Start
  5. Einstellungen treffen
  6. Befehle ausführen
  7. Nachwort

Über dieses Dokument

Dieser Text soll einen kleinen Einstieg in die Software Your Wish is My Command geben. Dabei werden beispielhaft Befehle eingerichtet und anhand dieser werden dann die restlichen Funktionen des Programmes erklärt. Der Text geht dabei nicht auf den Quellcode ein. Er ist aber kommentiert und einzelne Ergänzungen sollten leicht vorzunehmen sein.

Benötigte Komponenten

Alle benötigten Komponenten könnten bei Microsof heruntergeladen werden.

Vorbereitungen

Als Ausgangspunkt wird angenommen, dass die Software installiert und unverändert ist.
Sollten sie bereits einige Einstellungen getroffen haben, so machen sie eine Sicherungskopie der Dateien "settings.ini" und "commands.dat". Löschen sie anschließend die Dateien "settings.ini", "commands.dat" und "grammar.dat". Starten sie nun das Programm.

Ein erster Start

Es erscheint ein rotes Icon in der Systemtray und die Software läd die benötigten Sprachkommandos. Dieser Schritt kann je nach Rechenleistung einige Sekunden in Anspruch nehmen. Das rote Icon signalisiert dabei, dass der Rechner zur Zeit nicht in der Lage ist, ihre Befehle zu verstehen. Erst nach einer Begrüßung färbt sich das Icon grün.
Zunächst werden sie einige Befehle einfügen, die es ihnen ermöglichen mit dem Programm zu arbeiten. Sprechen sie hierfür das Wort "admin".

Einstellungen treffen

Zunächst sollten mithilfe der Schaltfläche Settings >> einige Grundeinstellungen getroffen werden.
Als mögliche Stimmen werden hier alle englischen Stimmen aufgezählt, die fehlerfrei verwendet werden können. Suchen sie sich zunächt eine Stimme aus, die ihnen gefällt.
In den alten Versionen wurde der Benutzer standartmäßig mit "sir" angepsrochen. Da dieses Wort jedoch nicht geschlechtsneutral ist, und sich der ein oder andere Benutzer viel lieber mit "master" ansprechen lässt, kann hier eingestellt werden, wie man genannt werden möchte.
Außerdem möchte das Programm seinem Benutzer zum Geburtstag gratulieren. Wann dieser ist, kann hier eingestellt werden.

Ein Klick auf Settings << bringt sie zurück zum interessanten Teil.
Sie sollten zunächst einen Sprachbefehl einfügen, der das aktuelle Fenster schließt. Dazu klicken sie auf "Add command" und geben dem Befehl einen sinnvollen Namen. Dieser könnte zum Beispiel "close" lauten. Sofort gibt das Fenster weitere Einstellungen preis. Ein Fenster wird mit der Tastenkombination Alt + F4 geschlossen. Um derartige Tastenkombinationen senden zu können, kann SendKeys verwendet werden. Die Warnung, dass Einstellungen verloren gehen, ist hier unerheblich, da noch keine Einstellungen getroffen wurden. Es ist leicht zu erkennen, dass es sich bei der Oberfläche um ein Frontend für den Befehl SendKeys handelt. Die Syntax zu den Befehlen ist in der VB-Hilfe zu finden und von mir hier nicht extra erklärt. Um Alt + F4 zu senden, tragen Sie als Befehl %{F4} ein. Werden mehrere Zeilen eingegeben, so wird jede Zeile einzeln gesenet. Hierbei ist es ratsam, den Haken an "Wait until each line is sent" zu setzen.
Außerdem kann eingestellt werden, wie das Programm die Ausführung des Befehls bestätigt. Da sie in diesem Fall sehen, ob etwas passiert, stellen sie hier do nothing ein.

Im Netz haben sie gelesen, dass sich Winamp über SendMessage fernsteuern lässt. Dies möchten sie nun probieren. Da so viele Befehle unübersichtlich sind, bringen sie etwas Struktur hinein.
Klicken Sie dieses Mal nicht auf Add command, sondern auf Add menu. Tragen sie als Namen "winamp" ein. Der Eintrag ist bereits selektiert. Nun erstellen Sie darin die Einträge "previous", "start", "pause", "stop" und "next". Wählen Sie diese Mal aber nicht SendKeys, sondern SendMessage aus. Das zu suchende Programm trägt den Titel "Winamp v1.x". Sollte Winamp noch nicht offen sein, so kann es hier gleich gestartet werden. Als Nachricht werden zum Abspielen "273", "40045" und "0" übergeben. Bei den anderen Befehlen ändert sich lediglich wParam: previous ist "40044", break ist "20046", stop ist "20047", next ist "40048" und mit "40001" kann Winamp sogar beendet werden.

Um Programme starten zu können bietet sich ein neues Menü "start" an. Hier erstellen wir zunächst den Befehl "notepad" und wählen rechts Start aus. Unter File ist die Datei "C:\windows\system32\notepad.exe" zu wählen. Der Rest kann frei bleiben. Die Liste kann später weiter verfollständigt werden.
Man kann auch Programm starten, um Windows zu steuern. Die hier genannten Beispiele beziehen sich auf Windows XP. Legen sie das Menü "system" an. Als Befehl legen Sie zunächst "lock station" an. Auch hier wird ein Programm gestartet. Dieses Mal handelt es sich um das Programm "c:\windows\system32\rundll32.exe", welches den Parameter "user32,LockWorkStation" übergeben bekommt. Zum Herunterfahren eignet sich das Programm "c:\windows\system32\shutdown.exe" mit dem Parameter "-t 0 -s"

Wie ihnen sicher schon aufgefallen ist, sind links in der Struktur mehrere Farben zu erkennen. Diese haben alle ihre Bedeutungen:

rot
Diese Befehle werden vom System bereit gestellt und können nicht gändert werden.
gelb
Dies sind Menüs, die andere Befehle beinhalten.
grün
Dies sind Befehle, die vom Benutzer stammen.

Nun sollten sie ihre Befehle testen. Dazu klicken sie auf "Close" und warten, bis das Icon grün leutet.

Befehle ausführen

Zunächst testen sie ihren Befehl "close". Dazu öffnen sie ein beliebiges Programm und sprechen den Namen des Befehls deutlich aus. Das Programm wird sich schließen.
Nun versuchen sie, Notepad zu starten. Da es in dem Menü "start" liegt, nennen sie zuerst den Namen des Nenüs und warten einen Augenblick auf die Bestätigung des Programmes. Nun nennen sie den Befehl "notepad". Der Befehl "close" sollte es wieder schließen.
Funktioniert ein Befehl nicht, wie er soll, hilft der Befehl "debug" weiter. Er zeigt deutlich, was das Programm verstanden hat, und was nicht.

Opperieren sie viel in einem Menü ist es anstrengend, jedes mal den Namen des Menüs aussprechen zu müssen. In diesem Fall ist es nützlich, den Befehl "hold" zu verwenden. Wenn sie nun zum Beispiel das Menü "Winamp" betreten, können sie nacheinander "play" und "next" sagen, ohne dass sie "winamp" erneut sagen müssen. Um das Menü zu verlassen, sagen sie "up". Außerhalb eines Menüs kann das Verhalten mittels erneutem aussprechen von "hold" rückgängig gemacht werden. Die Einstellungen bleiben über einen Programmneustart hinaus bestehen.

In lauten Umgebungen versteht der PC hin und wieder zu viel. Hier ist ein anderer Befehl hilfreich. "stop listening" versetzt das Programm in einen schlafenden Modus. Soll der PC reagieren, muss zunächst das Wort "computer" vorgeschoben werden. Anschließend folgt der gewünschte Befehl. Um diesen Modus zu verlassen, sagen sie zunächst "computer" und dannn "start listening". Dieser Einstellung wird bei Programmende ebenfalls gespeichert. Umschalten lässt sich das Programm übrigens auch mit einem Linksklick auf das Programmsymbol.

Zu guter letzt bleibt die Frage, wie man das Programm beendet. Neben dem ausgesprochenen Befehl "quit" kann hierfür auch ein Rechtsklick auf das Programmsymbol gemacht werden.

Nachwort

Dieses Programm entstand eigentlich, weil ich bequem einige Befehle ausführen wollte. Das Grundgerüst wurde daher Quick&Dirty zusammengestellt. Der Programmcode ist daher nicht als Anleitung, wie man programmiert zu betrachten. Auch weiß ich nicht, ob ich das Programm noch weiterentwicklen werde.
Sollte jemand das Programm um sinnvolle Funktionen ergänzen, so kann er sich gerne bei mir melden, ich werde die Änderungen dann übernehmen. Allerdings sieht es bei mit Zeitlich im Moment recht knapp aus, was für lange Wartezeiten stehen kann.
Die Idee, die hinter dem Programm steckt ist nicht neu, ebenso die Code-Zeilen. Wer teile davon in sein Programm einarbeiten möchte, darf das gerne tun. Ein Verweis auf mich wäre schön, ist aber keineswegs verpflichtend.

In diesem Sinne, viel Spaß mit der Software
Jochen Wierum