admi-ral Posted July 13, 2005 Posted July 13, 2005 (edited) Manch einer hat es gemerkt: DVBViewer 3.2 is out Dass damit einiges *mehr* geht als die Update-List von Christian vermuten lässt ist wohl für die meisten erstmal nicht so offensichtlich. Add: COM: integrated COM-Server (ex-COM-Plugin) into DVBViewer. ABER allein diese Zeile beherbergt einen wahren Koloss von Möglichkeiten, die ab sofort jedem offen stehen. Will sagen: einige direkte Interaktion von selbstgeschriebenen Skripten (kleine Programme z.b. in VisualBasicScript=VBS) mit dem DVBViewer und dessen Daten/Einstellungen/OSD/... erlaubt z.B. - Demuxen von Aufnahmen direkt nach Record-Stop (ProjectX CLI) oder per Auswahl im OSD - Erweiterte OSD-Menüs komplett manuell angepasst für individuelle Funktionen - Automatisches Löschen von alten Aufnahmen, wenn die Festplatte voll ist - automatische EPG-Updates - .... es müssen erst noch Features gefunden werden, die sich *nicht* direkt oder indirekt mit der COM-Schnittstelle realisieren lassen Im Laufe der Zeit werden Lars und ich einige Beispiel-Scripts veröffentlichen, die als Anhaltspunkt für eigenes Coden oder schon fertig zur Benutzung verwendet werden können. Dabei gilt in jedem Fall: BENUTZUNG AUF EIGENE GEFAHR!! Ich übernehme keine Verantwortung für irgendwelche mit dem/vom Script angerichtete(n) Schäden. Darunter fällt z.b. das Löschen von Dateien Da ein Script logischerweise als Quellcode vorliegt, kann/sollte sich jeder vor/während der Benutzung (mit oder ohne Ahnung davon) mal angucken, was denn da eigentlich passiert, oder wo z.B. ein Fehler liegen könnte Noch ein Hinweis: Das Einbinden von Scripts ist am Einfachsten mit dem im ServiceCenter erhältlichen MenuEditor. Einfach ein neues Programm (!) anlegen mit Application: "c:\windows\system32\wscript.exe" (oder ähnlich) Arguments: "c:\programme\DVBViewer\scripts\vbs\MeinScript.vbs //B" (oder ähnlich, Verzeichnis nicht entscheidend) Man kann Scripts natürlich auch mit Grigas MenuCreatorPlugin in das PluginMenü einfügen, das könnte dann in der Menulist.ini etwa so aussehen SUBMENU >>OSD ITEM OSD-NOW|c:\programme\dvbviewer3\vbs\osd_show_now.vbs ITEM OSD-VIDEO|c:\programme\dvbviewer3\vbs\osd_show_video.vbs ITEM OSD-AUDIO|c:\programme\dvbviewer3\vbs\osd_show_audio.vbs ITEM OSD-HTPC|c:\programme\dvbviewer3\vbs\osd_show_htpc.vbs ITEM OSD-OPEN/CLOSE|c:\programme\dvbviewer3\vbs\osd_open.vbs END ich finde den Thread gerade nicht, auf dem das Plugin verstaubt vielleicht kann jemand aushelfen So, dann mal viel Spaß damit Edited July 13, 2005 by admi-ral Quote
admi-ral Posted July 13, 2005 Author Posted July 13, 2005 (edited) EPG-Updater die angehängte Datei ist erstmal Standalone, wie das ganze so eingebunden werden kann, dass man das regelmäßig (mit Timer) ausführt, kommt noch Edit: Achtet bitte (besonders bei diesem Script) darauf, dass *alle* Verknüpfungen in welcher Form auch immer zur DVBViewer.exe die gleiche groß/kleinschreibung haben DVBViewer.exe <> DVBViewer.exe >falls im DVBViewer-Verzeichnis die exe nicht "DVBViewer.exe" sondern (z.b.) "DVBViewer.exe" heißt, sollte sie umbenannt werden. Windows schert sich im gegensatz zu unix eigentlich nicht um diese Sachen, aber die Doppelstart-Verhinderung funktioniert nur, wenn ein neuer Task mit exakt dem gleichen Namen auftaucht epgUpdate.zip Edited July 13, 2005 by admi-ral Quote
Unauthorized Posted July 13, 2005 Posted July 13, 2005 DVBViewer 3.2 is out Also der DVBViewer meint er wär eine 3.1.2. Quote
Benson Posted July 13, 2005 Posted July 13, 2005 @ admi-ral Wo finde ich eine Auflistung aller Properties für das DVBViewer COM Objekt? Quote
admi-ral Posted July 13, 2005 Author Posted July 13, 2005 öhem. das ist etwas schwierig, da das Com-Object a) sehr umfangreich ist unb keine wirkliche Doku existiert. Das ist jetzt erstmal ernüchternd, aber da wird sich glaube ich bald eine handhabbare lösung finden Quote
admi-ral Posted July 13, 2005 Author Posted July 13, 2005 So, hier ein weiteres: ProjectX Demux Einfach mal ausprobieren. Viel zu erählen gibt es nicht, Fragen einfach posten ProjectX.zip Quote
erwin Posted July 15, 2005 Posted July 15, 2005 öhem. das ist etwas schwierig, da das Com-Object a) sehr umfangreich ist unb keine wirkliche Doku existiert. Das ist jetzt erstmal ernüchternd, aber da wird sich glaube ich bald eine handhabbare lösung finden <{POST_SNAPBACK}> Ich will wirklich nicht meckern. Die neue Version ist großartig (sollte schon 3.2 sein und nicht dreistellig). Insbesondere COM. Bin schon ganz heiß. Aber mal ganz ehrlich: COM -Fäghigkeit als Feature anzupreisen aber keine Schnittstellenbeschreibung mitzuliefern ist, sagen wir mal, ''irreführende Werbung". Jeder Programmierer weiß: ohne ist's wertlos. Nicht böse sein. Ich weiß: die Zeit, die Zeit.... Und die Alternative; ihr hättet gewartet bis alles fertig ist, hätte mir auch nicht gefallen. Wollte nur unterstreichen: Die Doku ist jetzt heiß ersehnt. mfG erwin Quote
Guest Lars_MQ Posted July 15, 2005 Posted July 15, 2005 Ich will wirklich nicht meckern. Zu spät schon passiert Die neue Version ist großartig (sollte schon 3.2 sein und nicht dreistellig). Insbesondere COM. Bin schon ganz heiß. Aber mal ganz ehrlich: COM -Fäghigkeit als Feature anzupreisen aber keine Schnittstellenbeschreibung mitzuliefern ist, sagen wir mal, ''irreführende Werbung". Jeder Programmierer weiß: ohne ist's wertlos. Nicht böse sein. Ich weiß: die Zeit, die Zeit.... Naja irreführende Werbung, so gross wird damit gar nicht geworben, obwohl das in der Tat eine wahnsinnig mächtige Erweiterung ist. Aber Du hast recht. Ohne eine komplette beschreibung nützt sie nicht soviel. Ich habe schon eine rudimentäre doku, in der zumindest die schnittstellen / objekte/methoden/properties aufgelistet werden und ich arbeite daran, das weiter zu vervollständigen. Ein ganz grober abriss: Grundsätzlich ist das COM object, wenn der DVBViewer läuft, im ROT eingetragen. Das bedeutet, man bezieht eine laufende instanz mit getactiveobject. Erst wenn das fehl schlägt, fordert man eine neue instanz mit createobject an. Eine tlb ist im Viewer integriert, man kann sie mit delphi /vb auch problemlos auslesen (c/c++ kenne ich leider nicht). Das ganze ist vergleichbar mit dem MS Word COM object. Ein zentrales object (DVBViewer) von dem man alle untergeordneten Objecte (aka Manager) anfordert. Für jeden Bereich gibt es einen entsprechenden Manager (timer/epg/channels/play(list)/recordings usw.). Das ganze ist sicherlich noch nicht komplett, aber ein anfang. Ich habe mich bemüht die Bezeichner so aussagekräftig wie möglich zu gestalten, so dass man zummindest eine vorstellung der Schnittstelle/Methode/Parameter hat. Es gibt einige Funktionen im Channelbereich und im EPG Bereich, die zusätzlich integriert wurden und auf absolute geschwindigkeit getrimmt sind (im Vergleich zu den Standardfunktionen und in Bezug auf Datenmarshalling mit einem ex-process server). Die werde ich auch ganz genau dokumentieren, da sie etwas schwieriger sind (aber ich habe sie selber schon in einem Projekt benutzt und kann sagen, der der Geschwindigkeitsgewinn liegt bei faktor 50 (grobgeschätzt), wenn man die kanalliste abruft). Ich werde die Doku als eine Work in Progress sobald wie möglich veröffentlichen. Leider bin ich kein so begnadeter Autor wie Griga, daher bin ich dort auf Feedback von den Nutzern angewiesen, um alle Bereiche mit der gebotenen Ausführlichkeit zu behandeln. Wenn man so tief in einer Materie drinne steckt, setzt man zu oft Sachen als selbstverständlich voraus, die aber eigentlich erklärt werden müssen Lars Quote
admi-ral Posted July 17, 2005 Author Posted July 17, 2005 ins unterverzeichnis \Scripts\ im DVBViewer Verzeichnis (v3.2) schiebe man angehängte datei (stoprec.vbs), modifiziere die Konstanten für die Pfade und schon kann man nach einer aufnahme sofort demuxen lassen stoprec.zip Quote
Guest Lars_MQ Posted July 17, 2005 Posted July 17, 2005 Und nicht vergessen: Den internen Scriptengine zulassen (in den Optionen -> Scripte). Quote
erwin Posted July 18, 2005 Posted July 18, 2005 Eine tlb ist im Viewer integriert, ... Ich habe mich bemüht die Bezeichner so aussagekräftig wie möglich zu gestalten, so dass man zummindest eine vorstellung der Schnittstelle/Methode/Parameter hat. Na das ist für einen COM-Programmierer doch schon mal so was wie ein e Prerelease-Doku! Danke erwin Quote
Benson Posted July 30, 2005 Posted July 30, 2005 Ich habe mir mal erlaubt, das EPGUpdate Skript meinen Bedürfnissen anzupassen. Folgendes habe ich geändert: - Code aufgeräumt ;-) - Wenn notwendig, wird der DVBViewer gestartet - OSD Abbruchscreen entfernt - ein Abschluss Kommando wird gesendet Grund für die Anpassungen: Ich habe das Skript als täglichen Systemtask eingetragen, so dass das EPG automatisiert morgens aktualisiert wird und der Rechner danach wieder in den Ruhezustand geht. epgUpdate2.zip Quote
Gambit21 Posted August 11, 2005 Posted August 11, 2005 Hallo bin newbie... also könnte mir das freundlicherweise mal jemand mit den Skribts erklären .. habe schon gemerkt das es Visual Basic dateien sind ... aber sonst ? Wie installiere ich Sie bzw. wende sie auf den DVBViewer hin an ? Mfg Quote
admi-ral Posted August 11, 2005 Author Posted August 11, 2005 VisualBasicScript (VBS, "beispiel.vbs") ist eine Scriptspräche mit einer Syntax ähnlich VisualBasic. Bei Windows2000 und XP ist der notwendige WindowsScriptingHost (WSH) schon mitinstalliert, bei W98 muss man evlt. nachhelfen. Du kannst natürlich auch andere Programmiersprachen nutzen, VBS ist aber relativ simpel und erfordert keine Compilierung, etc. Zur Anwendung: Das Gros der Scripte, die hier veröffentlicht wurden, nutzt die COM-Schnittstelle des DVBViewer, d.h. es erfolgt eine Kommunikation mit dem DVBViewer COM-Objekt. Eine Auflistung aller möglichen Befehle ist in der Help-Datei im Service-Center zu finden. Was kann man damit machen? Eigentlich so ziemlich vieles (ALLES ), was der eigenen Programmier-Laune entspringt. Um ein Script zu starten/nutzen musst Du es am besten mit dem MenuEditor als Application einfügen App: "c:\windows\system32\wscript.exe" Arg: "x:\meinscript.vbs" //B oder einfach starten von wo Du willst Standardmäßig ist wscript.exe als ausführendes Programm eingestellt. Quote
stax Posted September 22, 2005 Posted September 22, 2005 VB .NET Express 2005 läuft noch bis Mai für lau, dann sind 50$ fällig. Einfach im Menü "Add Reference" wählen und unter COM die DVBViewer Bibliothek wählen. Jetzt kann man die Bibliothek nutzen inklusive IntelliSense. Importieren muss man folgendes: Imports System.Runtime.InteropServices Imports DVBViewerServer Schnittstellenzeiger wenn DVBViewer schon läuft bekommt man so: Dim v As DVBViewer = CType(Marshal.GetActiveObject("DVBViewerServer.DVBViewer"), DVBViewer) Quote
Streusel71 Posted October 4, 2005 Posted October 4, 2005 Hallo zusammen, nach dem Update auf den DVBViewer 3.2.3 funktioniert plötzlich das EPGUpdate2 nicht mehr. Das Script startet zwar den DVBViewer und meldet immer wieder, dass ein neuer Kanal gescannt würde, aber das Bild bzw. der Sender wird nicht umgeschaltet. Kann da jemand weiterhelfen? Gruss Stephan Quote
Guest Lars_MQ Posted October 4, 2005 Posted October 4, 2005 Bitteschön ein update. Läuft mit 3.2.4, startet den Viewer automatisch, der pfad muss nicht mehr eingetragen werden. epgUpdate2.zip Quote
Streusel71 Posted October 6, 2005 Posted October 6, 2005 Hi Lars, der DVBViewer hat ja gestartet, nur erfolgte keine Senderumschaltung... Kannst Du vielleicht für mich neugierige Nase den technischen hintergrund erklären, was sich da geändert hat? Gruss Stephan Quote
Guest Lars_MQ Posted October 6, 2005 Posted October 6, 2005 Ich nutze jetzt komplett com funktionen und nicht die vorher genutzte commandparameter funktion (DVBViewer.exe + -c). Ich glaube bei der Command parameter sache (-c) müsste der Sendername in " (Anführungsstriche) gesetzt werden, dann sollte das auch gehen. Quote
Streusel71 Posted October 11, 2005 Posted October 11, 2005 Hallo Lars, wenn ich Dein Script starte, ohne dass der DVBViewer läuft, dann wird am Ende der DVBViewer beendet, aber das System hängt. Wenn ich vorher den ProcessViewer gestartet habe, dann kann ich sehen, dass der DVBViewer aber noch mit fast 100% Systemlast hängt. Kann es sein, dass da noch irgendwas faul ist. Ich verstehe z.B. nicht, wie die Variable was_running gesetzt wird. Die soll doch wohl true sein, wenn der DVBViewer beim Start des Scriptes schon lief, oder? In diesem Fall soll das Script ja beendet werden und der DVBV soll weiterlaufen. Und für den Fall, dass man das Script in der Nacht zum Update als Systemtask starten lässt, sollte die Variable auf FALSE stehen und dann kann man beim Beenden z.B. in den Hibbernate-Modus gehen. Gruss Stephan Quote
Guest Lars_MQ Posted October 11, 2005 Posted October 11, 2005 Das was_running habe ich nur eingesetzt um die auskommentierte funktion ganz unten betriebsfähig zu halten (fals es jemand nutzen will. Die logik ist ein wir gehen davon aus der DVBViewer läuft setzen was_running auf True und versuchen uns den laufenden DVBViewer zu holen. Lief der Viewer jetzt nicht geht er in die q'n'd error behandlung und fordern windows auf den DVBViewer über COM-Mechanismen zu starten und setzt dabei gleichzeitig was_running auf false. Die COM-Mechanismen bewirken, das der Viewer beim beenden des scripts auch beendet wird. Bei meinen beiden Testsystemen funktioniert das auch wunderbar. Setzt Du irgendwie noch den Scheduler ein oder ähnliches? Irgendetwas was den Viewer daran hindert sich zu beenden? Quote
Streusel71 Posted October 11, 2005 Posted October 11, 2005 OK, bei den COM-Sachen hört mein Verständnis auf und ich danke Dir für die Erklärungen. Die machen es mir dann etwas verständlicher... Ich gehe über den Task-Sheduler um geplante Aufnahmen zu starten, sonst nix... Das komisch ist ja, dass es funktioniert, wenn der DVBV läuft (ok, aber dann muss er ja auch nicht beendet werden...). Quote
Unauthorized Posted October 13, 2005 Posted October 13, 2005 (edited) Das was_running habe ich nur eingesetzt um die auskommentierte funktion ganz unten betriebsfähig zu halten (fals es jemand nutzen will. Die logik ist ein wir gehen davon aus der DVBViewer läuft setzen was_running auf True und versuchen uns den laufenden DVBViewer zu holen. Lief der Viewer jetzt nicht geht er in die q'n'd error behandlung und fordern windows auf den DVBViewer über COM-Mechanismen zu starten und setzt dabei gleichzeitig was_running auf false. Die COM-Mechanismen bewirken, das der Viewer beim beenden des scripts auch beendet wird. Bei meinen beiden Testsystemen funktioniert das auch wunderbar. Setzt Du irgendwie noch den Scheduler ein oder ähnliches? Irgendetwas was den Viewer daran hindert sich zu beenden? <{POST_SNAPBACK}> Ich habe bei mir einfach die Zeile "DVBViewer.SendCommand(&H00003026)" am Ende wieder reingenommen, dann klappt's. Andernfalls wird der Viewer irgendwie zu hart beendet und hat noch nichtmal die Chance, die EPG-Daten zu speichern... Noch was: Gibt's eine COM-Funktion, mit der man den Ton oder besser noch die gesamte Wiedergabe deaktivieren kann? Nervt nämlich etwas... EDIT: OK, für dieses Problem hab ich eine Lösung gefunden: Hab einfach eine Batchdatei gebastelt, die für das EPG-Update eine DVBSOURCE.grf in den Stammordner kopiert und danach wieder löscht. Im Script habe ich das "End if" vom Running-Check in die letzte Zeile verschoben, so dass das Update nur durchgeführt wird, falls der DVBViewer nicht läuft. Hach nee is dat scheen, wenn man das alles so nach seinen Bedürfnissen anpassen kann... Edited October 13, 2005 by Unauthorized Quote
Webturtle Posted November 2, 2017 Posted November 2, 2017 Hallo, ich bin gerade auf diesen interessanten Thread gestoßen. Gibt es eine Möglichkeit festzustellen, daß der DVBViewer eine Sender nicht tunen konnte? Ich lasse den DVBViewer per AutoHotkey-Script EPG und Videotext-Daten speichern. Dazu arbeitet das Script eine Liste mit Sendernummern ab. Wenn gerade kein Transponder frei ist, kann de DVBViewer natürlich nicht den gewünschten Sender einstellen und dann landet z.B. der Videotext von 3Sat im Verzeichnis für Arte. Viele Grüße Webturtle Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.