EventGhost

Aus HTPC-News Wiki
Wechseln zu: Navigation, Suche

EventGhost

EventGhost ist eine OpenSource - Steuerungssoftware (ähnlich wie Girder).
Homepage des Projektes
Kurzanleitung
Hier der Link zum Support-Forum des Entwicklers: http://www.eventghost.org/forum/
und zum Diskussionsforum: www.htpc-news.de
sowie zur eigenen Wiki des Projektes: http://www.eventghost.org/wiki/


Egmain.png




Jetzt im Anschluß folgt ein kleines HowTo, wie einfach sich die Arbeit mit EventGhost gestaltet.


Inhaltsverzeichnis


Vielen Dank an den Entwickler 'Bitmonster' für diese großartige Arbeit!
Viele Informationen die hier zusammengetragen wurden, stammen aus seinem Supportforum.

Installation

Nach dem Download der aktuellsten Version von EventGhost (im folgenden nur noch mit EG abgekürzt) verläuft die Installation nach dem bekannten Windowsstandard.
Eine Übersicht der aktuellsten Version findet man im Support-Forum des Entwicklers unter Ankündigungen: You get the newest release here!
Bei der Installation ist nichts besonderes zu beachten.

Der erste Start

Der erste Start

Wenn EG das erste Mal gestartet wird, zeigt sich ein Fenster, das eine Beispieldatei anzeigt. Hier kann man schon ein bisschen das Layout und den Aufbau des Scriptes studieren.
In der rechten Hälfte des Programmes erkennt man den Konfigurationsbaum. Ein Script setzt sich zusammen aus dem/den eigentlichen Plugin(s) und den danachfolgenden Befehlen und Makros die für eine Steuerung benötigt werden.
Das oder die Plugin(s) werden u.a. zur Anbindung an die Hardware benötigt. Sie liegen im Autostart und werden somit gleich beim Starten von EG geladen.
Diese Makros sammeln die IR/Funk-Signale einer Taste ein und weisen diese dem passenden Befehl zum passenden Programm zu.
In der linken Hälfte des Programmes ist der Befehlsablauf bei einer Aktion von EG zu sehen, das sogenannte Eventfenster. Dort lässt sich nichts eintragen und es dient nur der Kontrolle über das, was man rechts abzuarbeiten versucht. ;-)

Einrichtung

Als erstes kann man über das Menü 'Datei' die Einstellungen des Programms aufrufen. Hier lässt sich die Sprache auswählen (englisch, deutsch) und festlegen, wie sich EG beim Windowsstart verhalten soll (Autostart).

die Plugin-Liste

Wir wollen aber nun ein neues Script anlegen.
Dazu einfach das Blatt in der Funktionsleiste anklicken bzw. Menü 'Datei / Neu' auswählen.
Anschließend über das Menü 'Datei / Plugin hinzufügen' ein PlugIn auswählen, welches wir zur Steuerung unserer Hardware benötigen.
In unserem HowTo nehmen wir das Plugin von YARD - siehe Bild:die Plugin-Liste.
Somit weiss EG schonmal, woher die IR-Signale kommen und kann entsprechend handeln.
Das Handeln werden wir ihm nun beibringen



Um eine bessere Übersicht zu erhalten, erstellen wir einen neuen Ordner (das Ordnersymbol anklicken oder im Menü 'Bearbeiten/Ordner hinzufügen' auswählen) und benennen ihn sinnigerweise nach dem Programm welches wir steuern möchten. Hier heisst es TVcentral.
Anschließend kommen alle Tasten und Befehle die wir zur Steuerung von TVcentral benötigen in diesen Ordner.

Befehlsauswahl

In unserem Beispiel möchten wir einen SELECT-Befehl an TVcentral senden und zwar über die windowsinterne WM_COMMAND-Funktion (dies ist auch die bessere Steuerungsmöglichkeit unter TVcentral).

Um einen neuen Befehl zur Steuerung von TVcentral zu erstellen, muss zuerst ein neues Makro angelegt werden. Zum Erstellen das orangefarbene Zahnrad anklicken oder alternativ über das Menü auswählen.
Das nun öffnende Fenster (siehe Bild:Befehlsauswahl) erlaubt einen ersten Blick auf die Befehlsvielfalt von EG. Wozu nun jeder einzelne Befehl fähig ist, weiss der Schreiber dieses HowTo's auch nicht so richtig ;-)

Message Eingabemaske


Uns interessieren nur einige wenige Funktionen. Wir picken uns den Befehl 'Send Message' aus der Gruppe 'Windows' heraus. Mit einem Klick auf OK wird es übernommen und im gleich darauffolgend erscheinenden Fenster fragt uns EG gleich nach dem WM_COMMAND-Befehl, der ausgesendet werden soll (siehe Bild:Message Eingabemaske). In unserem Fall hat der SELECT-Befehl unter TVC die Nummer 5. Diese Nummer 5 schreiben wir in das Feld wParam: und belassen im darüberliegenden Feld die Message auf WM_COMMAND. Nun mit OK das Fenster bestätigen.

fast fertig

Der Ordnung halber benennen wir das Makro noch um. Einfach ein Enter auf <Neues Makro> und SELECT eintragen. Mit Enter wird die Änderung übernommen (siehe Bild:fast fertig).





Nun haben wir zwar den Befehl der gesendet werden soll fertig, aber EG weiss noch nicht, wann er dies machen soll.

erfolgreicher Empfang

Also kommt nun unsere bis dahin hoffentlich fertig konfigurierte YARD-Fernbedienung-Kombination zum Zuge. Wir nehmen unsere Fernbedienung, halten diese vor das IR-Auge des Empfängers und drücken erwartungsvoll auf die Taste 'SELECT' (eigentlich ist es die OK-Taste, keine Ahnung warum TVC die Select genannt hat).
Und nun sollte, wenn alles geklappt hat, in der linken Fensterhälfte etwas passiert sein. Wie auf dem Foto (Bild:erfolgreicher Empfang) zu erkennen, sind zwei neue Zeilen aufgetaucht.

YARD.TVOK und
YARD.ButtonReleased


Die Zeile YARD.TVOK verät uns, wie die Tastenbezeichnung vom IR-Empfänger dem EG bekanntgegeben wird. in unserem Fall heist die Taste YARD.TVOK.

Diese Bezeichnung tragen wir nun als Ereignis rechts in unseren 'SELECT'-Ordner ein. Also <Neues Ereignis> markieren und mit Enter bearbeiten. Als Bezeichnung muss exakt der selbe Name stehen, der von EG empfangen wird! Auch unbedingt die Groß-Kleinschreibung beachten! Wenn das geschafft ist, kann man aus Freude am Spielen noch einmal auf die Fernbedienung drücken. Im Eventfenster sollte nun zusätzlich der dazugehörige Befehl mit angezeigt werden (siehe Bild:erfolgreiche Zuordnung).

erfolgreiche Zuordnung


Jetzt weiss EG, wann er was befehligen soll. Aber wohin?
Da wir ja als Befehl den WM_COMMAND-Befehl verwenden, müssen wir EG noch das passende Programm-Fenster zuordnen.
Das geht wunderbar mit dem Befehl 'Finde Fenster'. Diesen Befehl bekommt man, wenn man sich im aktuellen Makro befindet (also 'SELECT' ist markiert) und nun den Button mit dem grünen Pfeil drückt. Dadurch wird ein neuer Befehl hinzugefügt. Der Befehl 'Finde Fenster' liegt im Ordner 'Window'. siehe Bild:Befehlsauswahl
Nach dem Auswählen des 'Finde Fenster'-Befehls erscheint ein weiteres Fenster. Oben befindet das magische Kreuz und auch die Auswahl 'Auch unsichtbare Objekte durchsuchen'. Diese bitte ankreuzen!

Nun lassen wir das Fenster erstmal so ruhen und starten TVcentral.
Nachdem TVC erfolgreich läuft (das Hauptmenü reicht) holen wir uns EG wieder zum Vorschein (per ALT-TAB oder einfach auf START drücken um die Taskleiste sichtbar zu machen).
Wir drücken im 'Finde Fenster'-Fenster oben das magische Kreuz, halten es fest gedrückt und ziehen es mit der Maus auf die TVcentral Oberfläche. Dabei verschwindet kurz EG, kommt aber nach dem Maus-Loslassen wieder zum Vorschein. Es sollten einige Einträge gefunden worden sein.

TVC gefunden


Diese Einträge nutzen uns erstmal nicht viel. Wir müssen nur einen einzigen Eintrag in der Liste finden und zwar den des WM_COMMAND wie TVC es verwendet.
Im VConfig von TVcentral kann man in den Full-Time Plugins in den 'Befehlen über Nachrichtendienst' einen Klassennamen eingeben. Vorgegeben ist H2-WM-COMMAND. Diesen Eintrag müssen wir nun im 'Finde Fenster'-Dialog heraussuchen. Wenn unter TVcentral der Klassenname bereits geändert wurde, sollte man natürlich nach dem geänderten Namen suchen.
Siehe Bild, in der Liste ziemlich weit unten.

WM_COMMAND suchen


Diesen Eintrag markieren und mit OK bestätigen.
Jetzt noch im EG die Reihenfolge der Befehle innerhalb des Makros ändern (einfach mit der Maus verschieben).
Das ist wichtig, weil sonst der gesendete Befehl nicht das Fenster findet.
Im Prinzip läuft die Abarbeitung genau nach dem Konfig-Baum.
Zuerst die Taste der FB erwarten, dann das Fenster suchen und dann erst den Befehl senden.

Somit sieht der fertige Konfigurationsbaum dann so aus:

fertig


Jetzt ist unser erster Befehl fertig und kann ausprobiert werden.
Nun kann man hingehen, jede weitere Taste der Fernbedienung auf diese Art und Weise zu programmieren.
Oder man spart sich die Zeit und kopiert einmal das Makro und fügt es mehrmals wieder ein.
Nun nur noch die Tastenbezeichnung des IR-Empfängers anpassen und das WM_COMMAND der jeweiligen Taste eintragen.


Und schon ist in sehr kurzer Zeit die gesamte Tastenparade programmiert.


Wer es noch einfacher haben möchte, kann einfach meine fertige TVcentral_xml.zip-Datei herunterladen.


Viel Spaß

Tips/Tricks und Erweiterungen

Meldung xx.ButtonReleased im Event

Diese Meldung wird erst im Eventfenster angezeigt, wenn die Fernbedienungstaste losgelassen wird.
Somit kann man verschiedene Events realisieren, wie z.B. den Tastendruck automatisch wiederholen.

Tastatureingaben emulieren

Um eine einfache Tastaturemulation zu erreichen, einfach den Befehl 'Emuliere Tastatureingabe' aus der Window-Liste (siehe Bild:Befehlsauswahl) heraussuchen und im Makro einbinden.
Im darauf erscheinenden Fenster dann den Buchstaben / die Zahl eintragen, der / die gesendet werden soll (oder auch ganze Wörter, zB 'Hallo World').
Möchte man Sondertasten (Enter, Cursortasten etc) emulieren, dann muss man die Befehle in geschweifte Klammern setzen - { } .
z.B. für Enter {ENTER}
Hier eine Liste für Sondertasten, die EG erkennt.

Für manche Tasten gibt es auch mehrere Bezeichnungen zB BACK - BACKSPACE

BACK - BACKSPACE TAB - TABULATOR RETURN - ENTER SHIFT
CTRL - CONTROL ALT ESC - ESCAPE SPACE - SPC
PGUP PGDOWN END HOME
LEFT RIGHT UP DOWN
RWIN LWIN WIN APPS
DELETE - DEL INSERT - INS NUMLOCK SCROLLLOCK
NUMPAD0 NUMPAD1..9
MULTIPLY ADD F1 F2 ... F24

Tastenkombinationen werden durch einen Unterstrich miteinander verbunden: zB {ALT_SHIFT_F7}

Automatische Wiederholung

Diese Funktion erlaubt, dass das Makro so lange ausgeführt wird, wie die Taste gedrückt gehalten wird.
Sie ist vor allem für die Cursorbedienung sehr nützlich.
Es können verschiedene Verzögerung eingestellt werden, auch mit ansteigender Beschleunigung.

Automatische Wiederholung


Befehlszeilenparameter

Manchmal kann es nützlich sein, ein Ereignis per Mausklick auszulösen. Dazu wird eine neue Verknüpfung auf dem Desktop angelegt um EG mit dem "-e" (event) Parameter aufzurufen.

Also z.B.:
C:\Programme\EventGhost\EventGhost.exe -e MeinEvent

Um ein Event z.B. aus einer HTA (HTML Application) auszulösen ist diese Funktion auch sehr nützlich.

JScript

var shell = new ActiveXObject("WScript.Shell")
shell.run("C:\\Programme\\EventGhost\\EventGhost.exe -e MeinEvent",0,true)

automatische Events bei externen Programmstarts

Es ist sehr hilfreich, wenn beim Starten von Programmen ein Event ausglöst wird.
Dazu einfach das Plugin Task Create/Switch Events aktivieren.
Im nun angezeigten Fenster kann man einstellen, wann EG darauf reagieren soll (beim Starten, Schließen, Aktivieren oder Deaktivieren).
Wenn nun ein Programm gestartet wird, erzeugt dieses Programm automatisch einen passenden Event.
Beispiele für Notepad:

  • Task.Created.notepad
  • Task.Activated.notepad
  • Task.Deactivated.notepad
  • Task.Destroyed.notepad
Diese Events können dann entsprechend verwendet werden, z.B. zur Aktivierung/Deaktivierung von Ordnern