Command.vbs
Aus DVBViewer
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 |
[Bearbeiten] Einsatzmöglichkeiten
Grob gesagt kann man über die Datei die Gesamte Steuerung des DVBViewer umgestalten.
Hier mal drei Beisiele:
[Bearbeiten] Externe Programme starten
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 20480OSD.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ätCase 20481'Bei ActionID 20481OSD.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ätCase Else
'Bei allen anderen ActionIDsosd.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
[Bearbeiten] OSD Seiten direkt aufrufen für die es keine ActionID gibt
Command.vbs:
sub main(ActionID)Select Case ActionID
Case 60500'Bei ActionID 60500WindowManager.ShowWindow(9)
'Ruft das "Brightness Window" auf, die OSD Seite wo Helligkeit,'Kontraste und Farbe eingestellt werden können.Case 60501'Bei ActionID 60501WindowManager.ShowWindow(19)
'Ruft das "EQsettings Window" auf, das OSD Fenster vom Equalizer.Case Else
'Bei allen anderen ActionIDsosd.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.
[Bearbeiten] Mehrfach-Belegung von Tasten
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-RotIf 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-RotElseIf windowmanager.activeWindowID = 500 Then
'Wird gerade das miniEPG angezeigt dann sende folgenden Befehl:SendCommand(34)
'AufnehmenElseIf windowmanager.activeWindowID = 0 Then
'Wird gerade das OSD Menü angezeigt dann sende folgenden Befehl:SendCommand(8201)
'Zeige OSD-TimelineElse'Bei allen anderen OSD Fenster folgenden Befehl senden:SendCommand(74)
'OSD-RotEnd If
Else'Wenn kein OSD Fenster sichtbar ist sende folgenden Befehl:SendCommand(8201)
'Zeige OSD-TimelineEnd If
Case 30501'bei OSD-GrünIf osd.isVisible Then
SendCommand(75)
'OSD-GrünElseSendCommand(2010)
'Zeige die UhrEnd If
Case 30502'bei OSD-GelbIf osd.isVisible Then
SendCommand(76)
'OSD-GelbElseSendCommand(8199)
'Zeige SenderlisteEnd If
Case 30503'bei OSD-BlauIf osd.isVisible Then
SendCommand(77)
'OSD-BlauElseSendCommand(77)
End If
Case 30504'bei OSD-LinksIf osd.isVisible Then
'Ist das OSD sichtbar dann mache folgendes:SendCommand(2000)
'OSD-LinksElseIf isMediaplayback Then
'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes:SendCommand(112)
'vorigesElse'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird mache folgendes:SendCommand(2000)
End If
Case 30505'bei OSD-RechtsIf osd.isVisible Then
'Ist das OSD sichtbar dann mache folgendes:SendCommand(2100)
'OSD-RechtsElseIf isMediaplayback Then
'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes:SendCommand(113)
'nächstesElse'Wenn kein OSD Fenster sichtbar ist und keine Datei wiedergegeben wird mache folgendes:SendCommand(2100)
End If
Case 30506'bei OSD-aufwärtsIf osd.isVisible Then
'Ist das OSD sichtbar dann mache folgendes:SendCommand(78)
'OSD-aufwärtsElseIf isMediaplayback Then
'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes:SendCommand(78)
'OSD-aufwärtsElseIf 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ärtsIf osd.isVisible Then
'Ist das OSD sichtbar dann mache folgendes:SendCommand(79)
'OSD-abwärtsElseIf isMediaplayback Then
'Wenn kein OSD Fenster sichtbar ist und eine Datei wiedergegeben wird mache folgendes:SendCommand(79)
'OSD-abwärtsElseIf 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.