Neues Script für ProgDVB ,WinTV2k & RitzDVB

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.

BBCode ist ausgeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: Neues Script für ProgDVB ,WinTV2k & RitzDVB

Re: Neues Script für ProgDVB ,WinTV2k & RitzDVB

von ProgDVB-User » 15 Okt 2008, 20:15

Bei einigen Verbesserungsvorschlägen konnte ich mich dazu entschliessen diese umzusetzen. Anbei der neue Code, welcher lediglich in eine Datei, z.B. namens "Aufnahme.BAT" zu kopieren wäre. Alle Einstellungen können nun im TV-Browser vorgenommen werden.
Für eventuelle Fehlermeldungen oder Verbesserungsvorschläge bin ich weiterhin dankbar.

Code: Alles auswählen

@ECHO OFF
REM Für weiterführende Informationen siehe ab Sprungmarke :INFO oder diese Datei einfach starten.
REM Ab hier werden nach und nach die Variablen verarbeitet und ausgewertet, welche TV-Browser an diese BAT-Datei übergibt.
cls
SET AUFGABE=%1%

REM Alle für Dateinamen verbotenen Sonderzeichen "<, >, :, /, \,|" die sich eventuell im Sendungstitel befinden könnten, werden durch Leerzeichen ersetzt.
REM Zuvor wird überprüft, ob überhaupt Parameter übergeben wurden.
SET TASK=%2%
IF %TASK%x == x GOTO INFO
SET TASK=%TASK:<= %
SET TASK=%TASK:>= %
SET TASK=%TASK::= %
SET TASK=%TASK:/= %
SET TASK=%TASK:\= %
SET TASK=%TASK:|= %

REM Anführungszeichen entfernen, Aufteilung in einen START- und einen STOP-Timer
SET TASK=%TASK:~1,-1%
SET SENDUNGSTITEL=%TASK%
SET TASKSTART=%TASK% (TVB START)
SET  TASKSTOP=%TASK% (TVB STOP)

REM Prüfe, ob TV-Browser den Befehl zum Löschen bereits geplanter TASK's gegeben hat
IF "%Aufgabe%"=="STOP" GOTO TASK_Loeschen

REM Schrägstriche aus dem Aufnahmedatum für die Dateibezeichnung in Punkte umwandeln
SET DatumDatei=%4%
SET DatumDatei=%DatumDatei:/=.%

REM aus der Variable SENDER, die Anführungsstriche entfernen, da TV-Browser diese mit übergibt
SET SENDER=%3%
SET SENDER=%SENDER:~1,-1%

REM die Variablen bezüglich der Start- und Endzeiten auswerten, sowie Benutzername und Passwort übergeben
SET DatumStart=%4%
SET ZeitStart=%5%
SET DatumEnde=%6%
SET ZeitEnde=%7%
SET BenutzerName=%8
SET Passwort=%9

REM die Variablen für ProgDVB übernehmen und von deren Anführungszeichen befreien
SHIFT
SHIFT
SET PROGDVB=%8
SET PROGDVB=%PROGDVB:~1,-1%
SET AUFNAHMEVERZEICHNIS=%9
SET AUFNAHMEVERZEICHNIS=%AUFNAHMEVERZEICHNIS:~1,-1%

REM Eine kurze Nachricht ausgeben.
ECHO Am %DatumStart% von %ZeitStart% Uhr bis %ZeitEnde% Uhr wird "%SENDUNGSTITEL%" auf "%SENDER%" aufgenommen.
ECHO.

REM an dieser Stelle wird der START- und der STOP-TASK in den Taskplaner eingetragen
REM Achtung: die Schrägstriche sind wichtig, da innerhalb von Anführungszeichen keine weiteren Anführungszeichen vorkommen dürfen, sondern lediglich \"
SCHTASKS /create /S %ComputerName% /RU %ComputerName%\%BenutzerName% /RP %Passwort% /SC EINMAL /TN "%TASKSTART%" /TR "\"%PROGDVB%\" /CH:\"%SENDER%\" /StartRecord:\"%AUFNAHMEVERZEICHNIS%%SENDUNGSTITEL% %DatumDatei% %ZeitStart%.mpg\" /MUTE /Minimize" /ST %ZeitStart% /SD %DatumStart%
SCHTASKS /create /S %ComputerName% /RU %ComputerName%\%BenutzerName% /RP %Passwort% /SC EINMAL /TN "%TASKSTOP%"  /TR "\"%PROGDVB%\" /StopRecord /Exit" /ST %ZeitEnde% /SD %DatumEnde%
GOTO ENDE


:TASK_Loeschen
REM Aufnahmeplan aus dem Taskplaner loeschen und bei Bedarf den Aufnahmevorgang beenden
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTART%" /F
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTOP%" /F
GOTO ENDE


:INFO
ECHO ======================== ProgDVB-Plugin fuer TV-Browser ========================
ECHO Die angegebenen Parameter waren nicht korrekt!
ECHO Diese Datei darf nur vom TV-Browser gestartet werden.
ECHO.
ECHO Damit diese Datei mit TV-Browser und ProgDVB zusammenarbeitet,
ECHO muss hierfuer folgendes im TV-Browser eingestellt werden:
ECHO * unter Plugins - Aufnahmesteuerung - Geraete ist ein neues
ECHO   "Standard-Treiber-Geraet zu erstellen (der Name ist egal)
ECHO * dieses neue Geraet konfigurieren u. unter Applikation diese BAT-Datei angeben
ECHO   (diese sollte sich entweder im TV-Browser- oder ProgDVB-Verzeichnis befinden)
ECHO * PARAMETER: fuer das "Aufnehmen" folgende Zeilen eintragen:
ECHO.
ECHO START "{concat(title,"_-_",episode)}" "{channel_name}" {concat(leadingZero(start_day,"2"),"/",leadingZero(start_month,"2"),"/",leadingZero(start_year,"2"))} {concat(leadingZero(start_hour,"2"),":",leadingZero(start_minute,"2"),":00")} {concat(leadingZero(end_day,"2"),"/",leadingZero(end_month,"2"),"/",leadingZero(end_year,"2"))} {concat(leadingZero(end_hour,"2"),":",leadingZero(end_minute,"2"),":00")} {device_username} {device_password}
ECHO.
ECHO und fuer das "Loeschen" die folgende kurze Zeile eintragen:
ECHO STOP "{concat(title,"_-_",episode)}"
ECHO                                        Seite 1 von 2 - bitte eine Taste druecken
PAUSE > NUL
cls
ECHO.
ECHO * SENDER: hier sind keine Aenderungen erforderlich, jedoch ist sicherzustellen,
ECHO           dass die Sendernamen in ProgDVB mit denen im TV-Browser
ECHO           uebereinstimmen (Hierzu sind eventuell in ProgDVB und/oder im
ECHO           TV-Browser die Sendernamen zu bearbeiten.)
ECHO * Variablen: hier sind zwei Eintragungen vorzunehmen
ECHO   - unter Variable Nr.1 ist in Zelle WERT der Speicherort von ProgDVB
ECHO     einzutragen, z.B.: C:\Programme\ProgDVB.EXE
ECHO   - unter Variable Nr.2 ist in Zelle WERT der Speicherort fuer die Aufnahmen
ECHO     einzutragen, z.B.: C:\ oder C:\Aufnahme\
ECHO     (der Eintrag ist unbedingt mit einem Schraegstrich abzuschliessen)
ECHO * Einstellungen: 
ECHO   - der Benutzername mit zugehoerigem Passwort ist einzutragen
ECHO     (unter diesem erfolgt die Aufzeichung aus dem Taskplaner heraus)
ECHO   - weiterhin ist es sinnvoll die Sendung eine Minute vor Beginn aufzuzeichnen,
ECHO     sowie mindestens 10 Minuten laenger aufzuzeichnen als das offizielle Ende
ECHO     (Thomas Gottschalk laesst gruessen ;-).
ECHO.
ECHO                                        Seite 2 von 2 - bitte eine Taste druecken
pause
:ENDE

Re: Neues Script für ProgDVB ,WinTV2k & RitzDVB

von fingerhut » 15 Okt 2008, 06:44

REM alle verbotenen Sonderzeichen "<, >, :, /, \,|", die sich eventuell im Sendungstitel befinden, durch ein Leerzeichen ersetzen
macht in der Aufnahmesteuerung ein clean /cleanless -> Sonderzeichen im Titel, werden deine Prameter so nicht mehr übergeben. (Zuordnung stimmt nicht mehr)

REM Da SCHTASKS zweistellige Zeitangaben verlangt, muss bei einstelligen Angaben (Zahlen > 10) die Null vorangestellt werden
Macht leadingZero

wenn ich ehrlich bin kannst du alles in der Aufnahmesteuerung machen was du in deinem script machst.
gut bis auf die Leerzeichen im Titel nur so was kann wie ich Obengeschrieben habe auch dazuführen das das ganze nicht mehr geht.

Bsp. wie die Funktionen in der Aufnahmesteuerung gehen.

Dateiname:

Code: Alles auswählen

{maxlength(cleanLess(concat(title,testparam(episode,"-",testparam(original_title,"-")),testparam(episode,testparam(episode_number,concat(leadingZero(episode_number,"3"),"_",episode),episode),original_title),testparam(original_episode,"-"),original_episode)),"200")}
Taskname:

Code: Alles auswählen

{maxlength(cleanLess(concat(title,testparam(episode,"-",testparam(original_title,"-")),testparam(episode,testparam(episode_number,concat(leadingZero(episode_number,"3"),"_",episode),episode),original_title),testparam(original_episode,"-"),original_episode)),"200")}
Schrieb deine Anwendungen nur in der Aufnahmestellung und benutze für die Pfade variable so das jeder diese einfach konfigurieren kann. ;-)

Re: Neues Script für ProgDVB

von ProgDVB-User » 15 Okt 2008, 02:05

Hallo Leute,

da ich ProgDVB v4.xx und TV-Browser gern als portable Version benutze, wollte ich nicht gern irgendwelche Programme installieren,
welche - zwecks Aufzeichnung einer ausgewählten Sendung - die Kommunikation zwischen beiden Programmen ermöglichen.
Daher kam ich auf die Idee eine "portable" BAT-Datei zu schreiben, welche als ProgDVB-Plugin fungiert und leicht an unterschiedlichste PC-Konstellationen angepasst werden kann.
Die BAT-Datei schreibt in den Windows-Taskplaner einen entsprechenden START und STOP-Befehl für die Aufnahme.
Daher kann der TV-Browser zum Zeitpunkt der Aufnahme geschlossen sein und man muß nicht am PC angemeldet sein.
In der Hoffnung, dass der Ein- oder Andere diesen Code auch gern nutzen würde, stelle ich diesen hier einfach mal ein.
Bitteschön:

Code: Alles auswählen

@ECHO OFF
REM Am Besten diese Datei "Aufnahme mit ProgDVB.BAT" nennen und entweder ins TV-Browser- oder ins ProgDVB-Verzeichnis legen.
REM Damit diese Datei mit TV-Browser funktioniert, muss noch einiges eingestellt und beachtet werden:
REM Zuerst mal unter Plugins => Aufnahmesteuerung => Geräte ein neues "Standard-Treiber-Gerät erstellen (der Name ist egal).
REM Dieses "Gerät" nun konfigurieren und unter Applikation diese BAT-Datei angeben.
REM bei PARAMETER für das Aufnehmen folgendes eintragen:
REM START "{title}" "{channel_name}" {start_day} {start_month} {start_year} {start_hour} {start_minute} {end_day} {end_month} {end_year} {end_hour} {end_minute}
REM und bei PARAMETER für das Löschen bzw. Anhalten bzw. Aufnahmestopp:
REM STOP "{title}"
REM unter SENDER und Variablen ist nichts einzustellen, jedoch ist zu beachten, dass die Sendernamen in ProgDVB und im TV-Browser identisch sein müssen
REM (notfalls in beiden Programmen einfach die Sendernamen bearbeiten)
REM bei den Einstellungen ist es sinnvoll, die Sendung etwa 3 Minuten vor Beginn schon aufzuzeichnen,
REM sowie mindestens 10 Minuten länger als das offizielle Ende.
REM Ansonsten: Angabe des Ortes, wo sich ProgDVB befindet und wohin die Aufnahme gespeichert werden soll (unbedingt mit einem Schrägstrich abschliessen)
SET PROGDVB=C:\Programme\ProgDVB\ProgDVB.exe
SET AUFNAHMEVERZEICHNIS=C:\
SET ComputerName=...
SET Benutzer=...
SET Passwort=...

REM Beschreibung des Codes:
REM hier werden erstmal nach und nach die ganzen Variablen verarbeitet und ausgewertet, welche TV-Browser an diese BAT-Datei übergab
SET AUFGABE=%1%

REM alle verbotenen Sonderzeichen "<, >, :, /, \,|", die sich eventuell im Sendungstitel befinden, durch ein Leerzeichen ersetzen
SET TASK=%2%
set TASK=%TASK:<= %
set TASK=%TASK:>= %
set TASK=%TASK::= %
set TASK=%TASK:/= %
set TASK=%TASK:\= %
set TASK=%TASK:|= %
SET TASKSTART=%TASK%
SET  TASKSTOP=%TASK%
SET SENDUNGSTITEL=%TASK%

REM Anführungszeichen entfernen
SET TASKSTART=%TASKSTART:~1,-1%
SET TASKSTOP=%TASKSTOP:~1,-1%

REM aufspalten in einen START- und einen STOP-Timer
SET TASKSTART=%TASKSTART% (TVB START)
SET  TASKSTOP=%TASKSTOP% (TVB STOP)

REM Prüfe, ob TV-Browser den Befehl zum Löschen bereits geplanter TASK's gegeben hat
IF "%Aufgabe%"=="STOP" GOTO TASK_Loeschen


REM aus der Variable AUFGABE bzw. Sendungstitel, sowie SENDER, die Anführungsstriche entfernen, da TV-Browser diese mit übergibt
SET SENDUNGSTITEL=%SENDUNGSTITEL:~1,-1%
SET SENDER=%3%
SET SENDER=%SENDER:~1,-1%

REM die restlichen Variablen bezüglich der Start- bzw. Endzeiten auswerten,
REM der SHIFT-Befehl ist notwendig da nur 10 (%0....%9) Befehlsparameter gleichzeitig direkt angesprochen werden können.
SET TAG=%4%
SET MONAT=%5%
SET JAHR=%6%
SET STUNDE=%7%
SET MINUTE=%8%
SET END_TAG=%9
shift
SET END_MONAT=%9
shift
SET END_Jahr=%9
shift
SET END_STUNDE=%9
shift
SET END_MINUTE=%9


REM Da SCHTASKS zweistellige Zeitangaben verlangt, muss bei einstelligen Angaben (Zahlen > 10) die Null vorangestellt werden 
SET VERGLEICH=10
IF %TAG% LSS %VERGLEICH% SET TAG=0%TAG%
IF %END_TAG% LSS %VERGLEICH% SET END_TAG=0%END_TAG%
IF %MONAT% LSS %VERGLEICH% SET MONAT=0%MONAT%
IF %END_MONAT% LSS %VERGLEICH% SET END_MONAT=0%END_MONAT%
IF %STUNDE% LSS %VERGLEICH% SET Stunde=0%Stunde%
IF %END_STUNDE% LSS %VERGLEICH% SET END_Stunde=0%END_Stunde%
IF %MINUTE% LSS %VERGLEICH% SET MINUTE=0%MINUTE%
IF %END_MINUTE% LSS %VERGLEICH% SET END_MINUTE=0%END_MINUTE%

REM Eine kurze Nachricht ausgeben.
ECHO Vom %TAG%.%MONAT%.%JAHR% %STUNDE%:%MINUTE% Uhr bis %END_TAG%.%END_MONAT%.%END_JAHR% %END_STUNDE%:%END_MINUTE% Uhr wird %SENDUNGSTITEL% auf %SENDER% aufgenommen.

REM an dieser Stelle kann der START- und der STOP-TASK endlich in den Taskmanager eingetragen werden
REM Achtung: die Schrägstriche sind wichtig, da innerhalb von Anführungszeichen keine weiteren Anführungszeichen sein können, sondern nur \"
SCHTASKS /create /S %ComputerName% /RU %Computername%\%Benutzer% /RP %Passwort% /SC EINMAL /TN "%TASKSTART%" /TR "\"%PROGDVB%\" /CH:\"%SENDER%\" /StartRecord:\"%AUFNAHMEVERZEICHNIS%%SENDUNGSTITEL% %JAHR%-%MONAT%-%TAG% %STUNDE%-%MINUTE%.mpg\" /MUTE /Minimize" /ST %STUNDE%:%MINUTE%:00 /SD %TAG%/%MONAT%/%JAHR%
SCHTASKS /create /S %ComputerName% /RU %Computername%\%Benutzer% /RP %Passwort% /SC EINMAL /TN "%TASKSTOP%"  /TR "\"%PROGDVB%\" /StopRecord /Exit" /ST %END_STUNDE%:%END_MINUTE%:00 /SD %END_TAG%/%END_MONAT%/%END_JAHR%
GOTO ENDE


:TASK_Loeschen
REM Aufnahme stoppen, beenden und aus dem Taskplaner loeschen
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTART%" /F
SCHTASKS /DELETE /S %ComputerName% /TN "%TASKSTOP%" /F


:ENDE
Cu Fireball.

von dasJons » 24 Okt 2007, 12:53

Eigentlich nicht, ich denke ein 3GHz Pentium ist ausreichend.
Aber vielleicht ist der Tuner meines TV-Sticks einfach nur zu langsam oder wahrscheinlicher: Ich hab zu viel Krämpel installiert, der meine Kiste pöse ausbremst ^^

von fingerhut » 24 Okt 2007, 10:22

mh

hast du einen langsamen Rechner?

Problem mit ProgDVB

von dasJons » 24 Okt 2007, 00:34

Tach zusammen,

ich hatte das Problem, dass ProgDVB nur die erste der Kommandozeilen-Parameter akzeptiert hat und dadurch die Aufnahme nie gestartet wurde, sondern nur das Programm.

Da ich hier im Forum leider nicht fündig wurde, habe ich mich der Sache selbst angenommen und war sogar noch erfolgreich 8)

Ist nicht gerade die eleganteste Lösung, aber wer das selbe Problem hat und zu faul ist für weiteres Suchen oder gar eine eigene Lösung, der möge weiterlesen ^^:

in der Datei "capture.vbs" einfach die Zeilen

Code: Alles auswählen

 IF Instr(LCase(strChannelMode),"min" ) > 0 Then 
   strRunProg = strProgramm1 &" /stoprecord /ch:" & intChannelNr & " /startrecord:" & strFileName &" /MINIMIZE"
 Else 
   strRunProg = strProgramm1 &" /stoprecord /ch:" & intChannelNr & " /startrecord:" & strFileName 
 End If 
 
 WScript.StdOut.WriteLine vbNewLine & strRunProg 
 objShell.run(strRunProg),1,False
durch die Zeilen

Code: Alles auswählen

 strRunProg = strProgramm1
 WScript.StdOut.WriteLine vbNewLine & strRunProg 
 objShell.run(strRunProg),1,False
 wscript.sleep 7000
 strRunProg = strProgramm1 & " /stoprecord"
 WScript.StdOut.WriteLine vbNewLine & strRunProg 
 objShell.run(strRunProg),1,False
 wscript.sleep 900
 strRunProg = strProgramm1 & " /ch:" & intChannelNr
 WScript.StdOut.WriteLine vbNewLine & strRunProg 
 objShell.run(strRunProg),1,False
 wscript.sleep 1200
 strRunProg = strProgramm1 & " /startrecord:" & strFileName
 WScript.StdOut.WriteLine vbNewLine & strRunProg 
 objShell.run(strRunProg),1,False
 wscript.sleep 900
 IF Instr(LCase(strChannelMode),"min" ) > 0 Then 
   strRunProg = strProgramm1 & " /MINIMIZE"
   WScript.StdOut.WriteLine vbNewLine & strRunProg 
   objShell.run(strRunProg),1,False
 End If 
ersetzen.

Die Zahlen hinter den sleeps müssten eventuell noch an den eigenen Rechner angepasst werden. Ich hab sie nur so durch ausprobieren gewählt ... wie gesagt: nicht die eleganteste Lösung. Wenn man sie größer macht, beginnt die Aufnahme später, macht man sie kleiner erhöht sich die Wahrscheinlichkeit, dass einer der Befehle wieder "geschluckt" wird und die Aufnahme nicht startet oder der Kanal der falsche ist.
Achja, der auszutauschende Code ist irgendwo bei Zeile 450 zu finden.

Viel Erfolg, ich hoffe ich konnte helfen.

MfG
dasJons

von Siggi » 13 Apr 2007, 08:25

Na das wär doch mal was, was man beheben könnte, oder?

Danke.

PS: Warum kam man denn auf dieses Idee? Warum werden diese Markierungen nur 1 Tag angezeigt (Ach ja, dann werden die Daten ja gelöscht :-) )?

von fingerhut » 12 Apr 2007, 20:43

? Die wird ja normal nur noch einen Tag lang angezeigt.
Aber du kannst natürlich die Aufnahme löschen kommt dann zwar eine Fehlermeldung aber es geht.

von Siggi » 12 Apr 2007, 19:44

Hallo,

ich nehme nun gelegentlich was auf und habe dabei eine Frage.

Der TVBrowser kennzeichnet ja eine aufzunehmende oder aufgezeichnete Sendung.

Wenn nun alles aufgenommen ist, der Task gelöscht und die aufgenommene Datei auch verschoben ist, dann möchte ich auch die Markierung der aufgenommenen Sendung löschen.

Wie bekomme ich die Markierung weg?

Ich hab da immer irgendwie Probleme.

Bis dann.

von fingerhut » 08 Apr 2007, 19:41

Ist es nicht möglich, den Haken bei "Nur wenn der User angemeldet ist" zu setzten?
Ich habe es mir noch einmal überlegt.
Da man das script mit oder auch ohne Passwort benutzen kann sehe ich keine Notwendigkeit dafür.

1. Man kann auch mit Passwort ein automatisches Login machen.
2. Es geht ohne Passwort
3. Das script ist nicht notwendig es eröffnet nur neue Möglichkeiten und zeigt dem User Konfigurationsfehler an. (wöchentliche / tägliche Aufnahmen mit Start- oder einem Enddatum, keine Stop-Task notwendig, Überprüfung auf Überscheidungen, ect.)
-> siehe [wiki]CapturePlugin - ProgDVB (Win98)[/wiki] (Erstellen einer Aufnahme nur mit der jt.exe)

von fingerhut » 07 Apr 2007, 19:14

siehe
[wiki]CapturePlugin_-_ProgDVB#Anmerkungen[/wiki] ;-)

von ds10 » 07 Apr 2007, 14:12

Siggi hat geschrieben:Aber du sagst, dass der Rechner auch aus sein kann.
Kannst du das mal erklären, wie das funktioniert und was man einstellen muss.
Du musst dafür den Rechner nur in den Ruhezustand versetzen, dann startet der Rechner automatisch, wenn eine programmierte Aufnahme ansteht.

von Siggi » 07 Apr 2007, 13:02

Jo, jetzt verstehe ich das.

Ich muss also nur diesen Registry Eintrag aus dem Wiki setzen?

Dann sollte alles gehen?

Mal schauen.


EDIT:
Habe es mit dem Registry Eintrag getestet und läuft super.

Aber du sagst, dass der Rechner auch aus sein kann.
Kannst du das mal erklären, wie das funktioniert und was man einstellen muss.

Bis dann.

von fingerhut » 07 Apr 2007, 12:49

da müsste ich das timer script erweitern mal schauen. ;-)

dir ist dann schon klar, dass dann der Rechner immer an sein muss?

PS wenn du das per Hand in den geplanten Task machst geht die Erkennung der Zeitüberschneidung im Script nicht mehr.

von Siggi » 07 Apr 2007, 12:31

Hallo,

naja, ich werde das mal testen, was an ProgDVB übergeben wird.

Zur Z.t macht das passwort noch Probleme.

Ist es nicht möglich, den Haken bei "Nur wenn der User angemeldet ist" zu setzten?

Es wäre schön wenn das gehen würde. Dann wäre das Problem behoben.

Bis dann.

Nach oben