CapturePlugin - ProgDVB

Aus TV-Browser Wiki
Version vom 31. Mai 2005, 07:17 Uhr von Fingerhut⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽Suche

Aufnahme aus dem Standby für XP

Diese Seite ist neu und muss noch getestet werden!!!
Bitte um Rückmeldung im Forum unter http://forum.tvbrowser.org/viewtopic.php?p=10166#10166


Anmerkung vorab.

Dieser Beschreibung geht davon aus, dass
die Skripte (VB-Skripte) in -> c:\progdvb ,
schtasks.exe und waketask.exe in -> %systemroot%\system32\ (Normal in c:\windows\system32\) und
Progdvb in -> c:\progdvb\ gespeichert sind.
Wenn diesen nicht der Fall ist bitte die Pfade anpassen.
Die Geplanten Task werden in der Systemsteuerung unter Geplante Tasks gespeichert.


Zusätzlich werden diese zwei Programme benötigt:
schtasks.exe und waketask.exe http://www.huebert.info/waketask/


!! wichtig !! keine Leerzeichen, Sonderzeichen oder Umlaute in den Pfaden, Benutzername oder Passwort verwenden!!!
(und natürlich diese Anpassen, Ausnahmen siehe Anleitung).

So und jetzt zum tvbrowser den wir bei www.tvbrowser.org downloaden können. incl. aktuellem capture-plugin

( http://tvbrowser.org/index.php )
( http://tvbrowser.org/download_tvbrowser.php )
( http://tvbrowser.org/plugins.php )


Legt ein neues Gerät mit einem Standard-Treiber an.

Folgendes müßt Ihr eingeben, damit die Aufnahme mit ProgDVB funktioniert:

Unter Applikation:

C:\Windows\System32\cscript.exe

Unter Parameter:

Aufnahme-Parameter:

 //Nologo c:\progdvb\timer.vbs %SH %SMI %SD %SMO %SY %EH %EMI %ED %EMO %EY %CNU %UP %UN %T2 %LM %CNB

Löschen-Parameter:

 //Nologo c:\progdvb\deltimer.vbs %SH %SMI %SD %SMO %SY %EH %EMI %ED %EMO %EY %CNU %T2 %LM %CNB

Unter Einstellungen:

Minuten früher starten : 2 bis 11 min je nach Sender und Tageszeit
Minuten später stoppen : 8 bis 20 min je nach Sender und Tageszeit
(Diese Werte sind reine Erfahrungswerte bitte selber testen)

Benutzername  : "euer Benutzername von Windows"
Passwort  : "euer Passwort von Windows"
Wenn der Benutzername oder das Passwort ein Leerzeichen enthaltet, diese bitte mit " am Anfang und Ende angeben.

Anmerkung:
(Passwort und Benutzername müssen angegeben werden, falls ihr noch keinen Benutzernamen angelegt habt,
kann das unter Systemsteuerung und Benutzerkonten nachgeholt werden!
Unbedingt notwendig! Falls ihr beim Windowsstartbildschirm keine Benutzerabfrage wollt,
kann das mit dem Programm tweakui von den "powertoys for windows xp" geändert werden.
Unter Logon und Auto Logon einfach den Haken bei "logon autom... usw" setzen
und Benutzerdamen/Kennwort eingeben. Domain ist euer computername.
Falls ihr euren Computernamen nicht mehr wisst. Unter Systemsteuerung und System
(bzw. Systemsteuerung/Leistung und Wartung/System)dann auf Computername klicken und abzulesen,
bei vollständiger Computername (ohne den Punkt eingeben).


Unter Kanäle

Bei den Programmen die Kanäle wie im Programm progdvb angegeben eingeben z.b. "ard"
Kanalnummer 1 und "zdf" Kanalnummer 2 usw..
Bei progdvb kann man das mit Rechtsklick in der Kanalliste auf des jeweilige Programm dann auf
"channel property" und bei ch# die entsprechende Zahl eingeben.


Die Skripte

timer.vbs

 Set ArgObj = WScript.Arguments

v_starthh = ArgObj(0) v_startmin = ArgObj(1) v_startday = ArgObj(2) v_startmonth = ArgObj(3) v_startyear = ArgObj(4)
v_endhh = ArgObj(5) v_endmin = ArgObj(6) v_endday = ArgObj(7) v_endmonth = ArgObj(8) v_endyear = ArgObj(9)
v_channelnr = ArgObj(10) v_password = ArgObj(11) v_user = ArgObj(12) v_telecast = ArgObj(13) '~taskname v_minutes = ArgObj(14) v_channelname = ArgObj(15)

if 100 > v_minutes Then v_minutes = 0 & v_minutes END IF
v_taskname_rec = """"& v_startmonth & "," & v_startday & " " & v_starthh & v_startmin & "-" & v_endhh & v_endmin & " " & v_minutes & " " & v_channelnr & " " & v_channelname & " " & v_telecast &"""" v_taskname_stop = """"& v_endmonth & "," & v_endday & " " & v_endhh & v_endmin & "- Stop " & v_telecast & """" ' v_taskname* kann nach Anleitung geändert werden
v_user = """"& v_user & """" v_password = """" & v_password & """"
v_startdate = v_startday & "/" & v_startmonth & "/" & v_startyear v_starttime = v_starthh & ":" & v_startmin & ":00" v_stopdate = v_endday & "/" & v_endmonth & "/" & v_endyear v_stoptime = v_endhh & ":" & v_endmin & ":00"
v_path_schtasks = "%systemroot%\system32\schtasks.exe" v_path_waketask = "%systemroot%\System32\waketask.exe" v_path_record = "C:\Windows\System32\cscript.exe c:\progdvb\record.vbs c:\progdvb\progdvb.exe" v_path_stop = "c:\progdvb\progdvb.exe"
v_startprog = """"& v_path_record &" "& v_channelnr &" "& v_telecast &" "& v_channelname & """" v_stopprog = """"& v_path_stop & " /stoprecord /exit"""
set task = wscript.CreateObject("wscript.Shell") task.run("" & v_path_schtasks &" /create /sc EINMAL /st " & v_starttime & " /sd " & v_startdate & " /ru " & v_user & " /rp " & v_password & " /tn " & v_taskname_rec & " /tr "& v_startprog ),1,True task.run("" & v_path_schtasks &" /create /sc EINMAL /st " & v_stoptime & " /sd " & v_stopdate & " /ru " & v_user & " /rp " & v_password & " /tn " & v_taskname_stop & " /tr "& v_stopprog ),1,True task.run("" & v_path_waketask &" 1 " & v_taskname_rec ),1,True


deltimer.vbs

Set ArgObj = WScript.Arguments

v_starthh = ArgObj(0) v_startmin = ArgObj(1) v_startday = ArgObj(2) v_startmonth = ArgObj(3) v_startyear = ArgObj(4)
v_endhh = ArgObj(5) v_endmin = ArgObj(6) v_endday = ArgObj(7) v_endmonth = ArgObj(8) v_endyear = ArgObj(9)
v_channelnr = ArgObj(10) v_telecast = ArgObj(11) '~taskname v_minutes = ArgObj(12) v_channelname = ArgObj(13)

if 100 > v_minutes Then v_minutes = 0 & v_minutes END IF
v_taskname_rec = """"& v_startmonth & "," & v_startday & " " & v_starthh & v_startmin & "-" & v_endhh & v_endmin & " " & v_minutes & " " & v_channelnr & " " & v_channelname & " " & v_telecast &"""" v_taskname_stop = """"& v_endmonth & "," & v_endday & " " & v_endhh & v_endmin & "- Stop " & v_telecast & """" ' v_taskname* kann nach Anleitung geändert werden
v_path_schtasks = "%systemroot%\system32\schtasks.exe"
set task = wscript.CreateObject("wscript.Shell") task.run ("" & v_path_schtasks & " /delete /tn "& v_taskname_rec &" /F"),1 task.run ("" & v_path_schtasks & " /delete /tn "& v_taskname_stop &" /F"),1



record.vbs

Set ArgObj = WScript.Arguments

v_path_progdvd = ArgObj(0) v_channelnr = ArgObj(1) v_telecast = ArgObj(2) v_channelname = ArgObj(3)
Wscript.Echo "ProgDVD: starte Aufnahme "& v_telecast &" "& v_channelname wscript.sleep 2000
v_time = Now v_year = DatePart("yyyy" , v_time) v_month = DatePart("m" , v_time) v_day = DatePart("d" , v_time) v_hour = Hour(v_time) v_min = Minute(v_time)
IF 10 > v_month Then v_month = 0 & v_month END IF
IF 10 > v_day Then v_day = 0 & v_day END IF
IF 10 > v_hour Then v_hour = 0 & v_hour END IF
IF 10 > v_min Then v_min = 0 & v_min END IF
v_currenttime = v_year &","& v_month &","& v_day &"_"&v_hour & v_min v_file = v_telecast &"_"& v_currenttime &"_"& v_channelname &".mpg" 'nach Belieben anpassen nur keine Leerzeichen verwenden !!!
v_startprog = ""& v_path_progdvd &" /stoprecord /ch:" & v_channelnr & " /startrecord:" & v_file &""
set task = wscript.CreateObject("wscript.Shell") task.run(v_startprog),1



Sie können den Tasknamen (v_taskname) ändern, er muss nur im timer.vbs und deltimer.vbs gleich sein. Wenn sie am Ende oder Anfang keine Variable benützen, dann reichten drei """ ohne &.



Log Datei hier zB. als Anhang in der record.vbs
(die txt Datei muss schon bestehen)

wscript.sleep 5000

v_aufnahme = v_telecast & " " & v_channelname
Set objFSO = wscript.CreateObject("Scripting.FileSystemObject")
v_strPath = "G:\video2\8_log" v_datei = "record.txt" v_strFullName = objFSO.BuildPath( v_strPath , v_datei)
Set objFile = objFSO.OpenTextFile(v_strFullName ,8 ) objFile.WriteLine "" & Now & " : "& v_aufnahme &"" objFile.Close


Aufnahme aus dem Standby für Win2k und XP

Es existiert die Möglichkeit per Kommandozeilen-Tool einzustellen ob der Rechner automatisch hochgefahren werden soll. Dafür müßte allerdings ein kleines VB-Skript geschreiben werden. ( Für Win2k & XP)
Zusätzlich wird dieses Programme benötigt:
jt.exe ftp://ftp.microsoft.com/reskit/win2000/jt.zip (der Server ist öfters Überlastet)
alternativ http://ftp.se.kde.org/pub/vendor/microsoft/ResKit/win2000/
Für das System gelten die gleichen Vorraussetungen wie für schtasks.exe.
!! wichtig !! keine Leerzeichen, Sonderzeichen oder Umlaute in den Pfaden, Benutzername oder Passwort verwenden!!! (und natürlich diese Anpassen).

Es sind genau die gleichen Einstellungen wie für XP.

Die Skripte'

http://skripte.wannawork.de/ProgDVB_W2k_XP_jt_1,0_2.zip


Anmerkung zu den Skripten


Wer sich die älteren Versionen angeschaut hat, stellt sicher fest das es am Anfang das Skript record.vbs nicht gab. Diese ist hinzugekommen aus zwei Gründen.

1. Das Skript (record.vbs) benützt die Systemzeit zur Namensgebung dadurch sind wöchentliche bzw. sogar tägliche Aufnahmen mit korreckter Bezeichnung möglich.
2. Beim Starten aus dem Standby wird dem System 2 Sekunden Zeit gegeben bevor die Aufnahme startet.

Wenn sie Win2k benützen benützen sie jt.exe siehe WinTV (Die Skripte sind gleich aufgebaut).

Die Skripte sind nicht in Stein gemeisselt und können natürlich geändert werden.

Anregungen:
Ist einmal der Anhang mit der Log Datei.
und folgendes: Ein Beispiel für Manipulation an der Zeit

Die Aufgabe bestand dabei, aus einer Datumsvariable (Now) die einzele Parameter herauszulessen, in der Form, wie sie auch vom Capture Plugin übergeben werden. Dann diese wieder zu einer Datumsvariable zusammen zu setzen und ein Minute davon abzuziehen.


test.vbs

'C:\Windows\System32\cscript.exe c:\progdvb\test.vbs 

v_time = Now v_year = DatePart("yyyy" , v_time) v_month = DatePart("m" , v_time) v_day = DatePart("d" , v_time) v_hour = Hour(v_time) v_min = Minute(v_time)
Wscript.Echo Now
IF 10 > v_month Then v_month = 0 & v_month END IF
IF 10 > v_day Then v_day = 0 & v_day END IF
IF 10 > v_hour Then v_hour = 0 & v_hour END IF
IF 10 > v_min Then v_min = 0 & v_min END IF
v_currenttime = v_day &"/"& v_month &"/"& v_year &" "& v_hour &":"& v_min &":00"
If IsDate(v_currenttime) = 0 Then Wscript.Echo v_currenttime & " v_currenttime ist kein gültiges Datum." Else Wscript.Echo v_currenttime & " ist ein gültiges Datum." v_newtime = DateAdd("n", -1, v_currenttime) Wscript.Echo v_newtime End If


(Das Orginal dieser Skripte wurde in http://www.dvbcube.org/index.php?board=15;action=display;threadid=6228 gepostet.)