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.