Command.vbs
Das Command.vbs Script gehört zu den DVBViewer VBScripte und muss sich im DVBViewer Verzeichnis im Unterordner Scripts befinden.
Es wird über Inputbefehle mit einer ActionID von 20480 oder größer aufgerufen.
Ruft ein Tastendruck (Tastatur oder Fernbedienung) oder der -x Kommandoparameter einen solchen Inputbefehl auf, startet das Command.vbs wobei der main(ActionID)-Funktion die ActionID als Integer übergeben wird.
Inhaltsverzeichnis
Einsatzmöglichkeiten[Bearbeiten]
Grob gesagt kann man über die Datei die Gesamte Steuerung des DVBViewer umgestalten.
Hier mal drei Beisiele:
Externe Programme starten[Bearbeiten]
Das Command.vbs kann dazu verwendet werden, externe Programme oder Scripte mit der Fernbedienung aufzurufen.
Command.vbs:
sub main(ActionID) Select Case ActionID Case 20480 'Bei ActionID 20480 OSD.ExecNewProcess "C:\WINDOWS\notepad.exe", "", False, True 'Starte das externe Programm Notepad, 'übergibt keine Parameter an Notepad, 'warte nicht bis Notepad fertig ist, 'starte Notepad mit niedriger Windows Priorität Case 20481 'Bei ActionID 20481 OSD.ExecNewProcess "C:\Program Files\DVBviewer\TransEdit.exe", "", False, False 'Starte das externe Programm TransEdit, 'übergibt keine Parameter an TransEdit, 'warte nicht bis TransEdit fertig ist, 'starte TransEdit nicht mit niedriger Windows Priorität Case Else 'Bei allen anderen ActionIDs osd.showInfoinTVpic "No action in the Command.vbs for the ActionID " & ActionID,1000 'Zeige die Text Information No action in the Command.vbs for the ActionID (ActionID) 'für 1000 Millisekunden im DVBViewer an. End Select end sub
OSD Seiten direkt aufrufen für die es keine ActionID gibt[Bearbeiten]
Command.vbs:
sub main(ActionID) Select Case ActionID Case 60500 'Bei ActionID 60500 WindowManager.ShowWindow(9) 'Ruft das "Brightness Window" auf, die OSD Seite wo Helligkeit, 'Kontraste und Farbe eingestellt werden können. Case 60501 'Bei ActionID 60501 WindowManager.ShowWindow(19) 'Ruft das "EQsettings Window" auf, das OSD Fenster vom Equalizer.
Case Else 'Bei allen anderen ActionIDs osd.showInfoinTVpic "No action in the Command.vbs for the ActionID " & ActionID,1000 'Zeige die Text Information No action in the Command.vbs for the ActionID (ActionID) 'für 1000 Millisekunden im DVBViewer an. End Select end sub
Der Wert für die OSD Seite (ID) WindowManager.ShowWindow(x) kann der windowdef.xml im Konfigurationsverzeichnis entnommen werden.
Mehrfach-Belegung von Tasten[Bearbeiten]
Das Command.vbs kann ebenso dazu verwendet werden, die Funktion der Tasten in Abhängigkeit der eingeblendeten OSD-Fenster, Timeshift oder Dateiwiedergabe anzupassen.
Hier ein Beispiel, wo die OSD-Farbtasten in Abhängigkeit von OSD-Seiten und die Pfeiltasten in Abhängigkeit von Timeshift und Dateiwiedergabe angepasst werden.
Dazu müssen die entsprechenden Tasten auf Inputbefehle mit folgenden ActionIDs anlernent werden:
OSD-Rot = ActionID 30500
OSD-Grün = ActionID 30501
OSD-Gelb = ActionID 30502
OSD-Blau = ActionID 30503
OSD-Links = ActionID 30504
OSD-Rechts = ActionID 30505
OSD-aufwärts = ActionID 30506
OSD-abwärts = ActionID 30507
Command.vbs:
sub main(ActionID) Select Case ActionID Case 30500 'bei OSD-Rot If osd.isVisible Then 'Ist das OSD sichtbar dann mache folgendes: If windowmanager.isoverlay Then 'Wird gerade ein Dialogfenster angezeigt sende folgenden Befehl: SendCommand(74) 'OSD-Rot ElseIf windowmanager.activeWindowID = 500 Then 'Wird gerade das miniEPG angezeigt dann sende folgenden Befehl: SendCommand(34) 'Aufnehmen ElseIf windowmanager.activeWindowID = 0 Then 'Wird gerade das OSD Menü angezeigt dann sende folgenden Befehl: SendCommand(8201) 'Zeige OSD-Timeline Else 'Bei allen anderen OSD Fenster folgenden Befehl senden: SendCommand(74) 'OSD-Rot End If Else 'Wenn kein OSD Fenster sichtbar ist sende folgenden Befehl: SendCommand(8201) 'Zeige OSD-Timeline End If Case 30501 'bei OSD-Grün If osd.isVisible Then SendCommand(75) 'OSD-Grün Else SendCommand(2010) 'Zeige die Uhr End If Case 30502 'bei OSD-Gelb If osd.isVisible Then SendCommand(76) 'OSD-Gelb Else SendCommand(8199) 'Zeige Senderliste End If Case 30503 'bei OSD-Blau If osd.isVisible Then SendCommand(77) 'OSD-Blau Else SendCommand(77) End If Case 30504 'bei OSD-Links If osd.isVisible Then 'Ist das OSD sichtbar dann mache folgendes: SendCommand(2000) 'OSD-Links ElseIf isMediaplayback Then 'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes: SendCommand(112) 'voriges Else 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird mache folgendes: SendCommand(2000) End If Case 30505 'bei OSD-Rechts If osd.isVisible Then 'Ist das OSD sichtbar dann mache folgendes: SendCommand(2100) 'OSD-Rechts ElseIf isMediaplayback Then 'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes: SendCommand(113) 'nächstes Else 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird mache folgendes: SendCommand(2100) End If Case 30506 'bei OSD-aufwärts If osd.isVisible Then 'Ist das OSD sichtbar dann mache folgendes: SendCommand(78) 'OSD-aufwärts ElseIf isMediaplayback Then 'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes: SendCommand(78) 'OSD-aufwärts ElseIf istimeshift Then 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird und Timeshift aktiv ist mache folgendes: SendCommand(9) 'Sender + Else 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird und kein Timeshift aktiv ist mache folgendes: SendCommand(78) End If Case 30507 'bei OSD-abwärts If osd.isVisible Then 'Ist das OSD sichtbar dann mache folgendes: SendCommand(79) 'OSD-abwärts ElseIf isMediaplayback Then 'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes: SendCommand(79) 'OSD-abwärts ElseIf istimeshift Then 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird und Timshift aktiv ist mache folgendes: SendCommand(8) 'Sender - Else 'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird und kein Timshift aktiv ist mache folgendes: SendCommand(79) End If Case Else osd.showInfoinTVpic "No action in the Command.vbs for the ActionID " & ActionID,1000 'Zeige die Text Information No action in the Command.vbs for the ActionID (ActionID) 'für 1000 Millisekunden im DVBViewer an. End Select end sub
Die DVBViewer eigenen ActionIDs können in der Datei actions.ini im DVBViewer Verzeichnis gefunden werden.
Und die activeWindowID kann einfach mit dem DVBViewer Spy (Mitgliederbereich > Sources) bei OSD Window Event abgelesen werden, wenn die entsprechende OSD Seite geöffnet ist.