ProgDVB - TaskScheduler

Forum für die programmierbare Aufnahmeschnittstelle von TVgenial sowie Fragen & Probleme rund ums Aufnehmen.
dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 22.11.2004, 08:15

ja, richtig :)

nur habe ich in zeile 92 gleich den nächsten fehler: typen unverträglich: "format"
für zeile 93 gilt daselbe :(

ArnF
Beiträge: 3553
Registriert: 16.10.2001, 20:51
Wohnort: Schwaigern, Deutschland

Beitragvon ArnF » 22.11.2004, 16:30

Der erste Fehler war klar, ein ganz normaler Tippfehler. Passiert leider immer wieder.

Mit dem zweiten kann ich aber leider nichts anfangen. Die Befehle sollte korrekt sein. Hab die 3 Zeilen gerade mal in einem Excel-Makro getestet (da wird ja auch VBA verwendet).
Dort wurde startDate2 und startTime2 korrekt berechnet.

Die Meldung sagt auch nichts wirklich darüber aus, was ihm da nicht passt. Wird Format nicht erkannt, wird der Rückgabewert nicht akzeptiert oder will er andere Parameter???
Computer lösen Probleme, die es ohne sie überhaupt nicht geben würde.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 22.11.2004, 16:53

mein googlen hat auch ergeben, daß dort alles korrekt ist.
jemand anderes hatte das problem mit deutschem und englischem datumsformat. könnte dies hier auch zutreffen?

ArnF
Beiträge: 3553
Registriert: 16.10.2001, 20:51
Wohnort: Schwaigern, Deutschland

Beitragvon ArnF » 22.11.2004, 19:23

Jetzt bleibt die Frage, wer die Meldung bringt. Kommt sie während der Ausführung und steht auch die Zeilenangabe drin?

Oder könnte es sein, dass der Fehler erst durch schtasks.exe auftritt. Da könnte es etwas mit dem Datumsformat zu tun haben.
Bei der Funktion sollte man alles benutzerdefiniert übergeben können. Diese Format ist wohl weder das deutsche, noch das englische Datumsformat, aber anscheinend wird es so von schtasks verlangt.

Du kannst mal verschiedene Formate ausprobieren:
"Short Time" oder "Long Time"
"Short Date" oder "Long Date"

Du kannst auch das Format ganz weglassen. Dann wird es aber zu einem Fehler bei schtasks kommen.

Anscheinend braucht schtasks das Format dd/mm/yyyy für das Datum und hh:nn:ss für die Zeit. Wenn man aber nur / und : als Trennzeichen weitergibt, wird das Standardtrennzeichen von Windows verwendet. Deshalb werden diese als Zeichen \/ und \: übergeben. Das Zeichen nach \ wird als Text übergeben.

In manchen Beispielen wird für die Minute mm oder m statt nn oder n übergebenen. In der Doku steht aber n / nn für Minute. Vielleicht probierst du auch mal das Format "hh\:mm\:ss" für die Zeit.
Computer lösen Probleme, die es ohne sie überhaupt nicht geben würde.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 22.11.2004, 19:56

Jetzt bleibt die Frage, wer die Meldung bringt. Kommt sie während der Ausführung und steht auch die Zeilenangabe drin?

beides ja, mit zeilenangabe
zeile 92, zeichen 1, typen unverträglich, format


Du kannst mal verschiedene Formate ausprobieren:
"Short Time" oder "Long Time"
"Short Date" oder "Long Date"

bitte gib mir bitte ein beispiel für diese variation

Du kannst auch das Format ganz weglassen. Dann wird es aber zu einem Fehler bei schtasks kommen.

wenn ich irgendwas in der klammer hinter format verändere ändert sich an der fehlermeldung nichts.
wenn ich format komplett rausnehme, dann wird ohne fehlermeldung der entsprechende task nicht erstellt.

ich hab auch schon per try'n'error in den beiden zeilen rumgespielt. es ist, als wenn er den format befehl nicht versteht :(

wenn nur format steht, dann wird die prozedur akzeptiert, aber kein task erstellt. sobald hinter format irgendwas erschein, gibt es obrige fehlermeldung.

ein kleiner zwischendank an dich :wink:
:wink: :wink:

ArnF
Beiträge: 3553
Registriert: 16.10.2001, 20:51
Wohnort: Schwaigern, Deutschland

Beitragvon ArnF » 22.11.2004, 20:34

Ich wüsste keinen Grund, warum Format nicht genommen werden sollte. Aber es scheint wirklich so zu sein.

Aber es gibt noch Alternativen. Ich hoffe mal, dass diese akzeptiert werden:

startdatetime = ... bleibt gleich (sollte auch bisher gehen)
startDate2 = CStr(Day(startdateTime)) & "/" & CStr(Month(startdateTime)) & "/" & CStr(Year(startdateTime))
startTime2 = CStr(Hour(startdateTime)) & ":" & CStr(Minute(startdateTime)) & ":00"

Hier ist noch das Problem, dass führende Nullen weggelassen werden. Sollte dies notwendig sein, kann man das auch noch einbauen.

Tests in Excel sind bei mir wieder erfolgreich.
Computer lösen Probleme, die es ohne sie überhaupt nicht geben würde.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 22.11.2004, 21:27

so wird kein dritter task erstellt:
----------
' ReaktivierungsTask anlegen, Rechner hochfahren
' ----------------------------------------------------

taskname = "earl....." & var9 & "...................." & taskname
parameters = " "
startProgram = applicationName2 & " " & parameters

cmd = "SCHTASKS /Create /S " & system & " /RU " & system & "\" & userName & " /RP " & userPassword & " /SC EINMAL"
cmd = cmd & " /SD " & startDate2
cmd = cmd & " /ST " & startTime2
cmd = cmd & " /TN " & Chr(34) & taskName & Chr(34)
cmd = cmd & " /TR " & Chr(34) & startProgram & Chr(34)

'msgbox "startProgram: " & startProgram
'msgbox "Command: " & cmd

ReturnCode = WshShell.Run(cmd, 7, True)

' Task nachbearbeiten (mit jt.exe), Task soll den Rechner aufwecken
' (jt.exe muss im Systempfad liegen, z.B. Windows\system32)
' ----------------------------------------------------------------------------

taskFolder = FileSystem.GetSpecialFolder(0) & "\tasks\"

' so geht's natürlich auch...
' cmd = "c:\programme\tvgenial\jt.exe"

cmd = "jt"
cmd = cmd & " /lj"
cmd = cmd & " " & Chr(34) & taskFolder & taskName & ".job" & Chr(34)
cmd = cmd & " /sj"
cmd = cmd & " SystemRequired=1"
cmd = cmd & " DeleteWhenDone=1"

ReturnCode = WshShell.Run(cmd, 7, True)
----------

so wird ein dritter task erstellt, aber natürlich mit falscher zeit

----------
' ReaktivierungsTask anlegen, Rechner hochfahren
' ----------------------------------------------------

taskname = "earl....." & var9 & "...................." & taskname
parameters = " "
startProgram = applicationName2 & " " & parameters

cmd = "SCHTASKS /Create /S " & system & " /RU " & system & "\" & userName & " /RP " & userPassword & " /SC EINMAL"
cmd = cmd & " /SD " & startDate
cmd = cmd & " /ST " & startTime
cmd = cmd & " /TN " & Chr(34) & taskName & Chr(34)
cmd = cmd & " /TR " & Chr(34) & startProgram & Chr(34)

'msgbox "startProgram: " & startProgram
'msgbox "Command: " & cmd

ReturnCode = WshShell.Run(cmd, 7, True)

' Task nachbearbeiten (mit jt.exe), Task soll den Rechner aufwecken
' (jt.exe muss im Systempfad liegen, z.B. Windows\system32)
' ----------------------------------------------------------------------------

taskFolder = FileSystem.GetSpecialFolder(0) & "\tasks\"

' so geht's natürlich auch...
' cmd = "c:\programme\tvgenial\jt.exe"

cmd = "jt"
cmd = cmd & " /lj"
cmd = cmd & " " & Chr(34) & taskFolder & taskName & ".job" & Chr(34)
cmd = cmd & " /sj"
cmd = cmd & " SystemRequired=1"
cmd = cmd & " DeleteWhenDone=1"

ReturnCode = WshShell.Run(cmd, 7, True)


----------


es gibt keine fehlermeldungen mehr
hmm...

ArnF
Beiträge: 3553
Registriert: 16.10.2001, 20:51
Wohnort: Schwaigern, Deutschland

Beitragvon ArnF » 22.11.2004, 21:56

Immerhin kommt jetzt keine Fehlermeldung mehr. Ich vermute mal, das Datum/Uhrzeit wird nicht aktzeptiert, da es nicht im Format mit führenden Nullen ist.

Probier mal das hier. Vielleicht klappts dann endlich:

startDate2 = Right(CStr(100 + Day(startDateTime)), 2) & "/" & Right(CStr(100 + Month(startDateTime)), 2) & "/" & Right(CStr(10000 + Year(startDateTime)), 4)
startTime2 = Right(CStr(100 + Hour(startDateTime)), 2) & ":" & Right(CStr(100 + Minute(startDateTime)), 2) & ":00"
Computer lösen Probleme, die es ohne sie überhaupt nicht geben würde.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 22.11.2004, 22:22

he, das war`s !!!!!

tausend dank !!!!

hier nun das script - für interessierte:

' Parameter, die zu übergeben sind

' -------------------------------------------

' Beginn der Aufnahme ----------------

' var1 = Tag
' var2 = Monat
' var3 = Jahr

' var4 = Stunde
' var5 = Minute

' Ende der Aufnahme ------------------

' var10 = Tag
' var11 = Monat
' var12 = Jahr

' var6 = Stunde
' var7 = Minute

' sonstiges
' var8 = Sender
' var9 = Titel


' Variablendeklaration
' -------------------------------------------

Dim ArgObj
Dim var1, var2, var3, var4, var5, var6, var8, var9, var10, var11, var12
Dim var7
Dim cmd, taskName, sender, startDate, startTime, startProgram, fileName
Dim parameters, applicationName, recordFolder, taskFolder, endTime, endDate
Dim weekDName, weekD
Dim system, userName, userPassword
Dim FileSystem
Dim fileExtension
Dim jtPath
Dim startDate2, startTime2, startDateTime

' Initialisierung
' -------------------------------------------

system = "unknown"
userName = "unknown"
userPassword = "computer"

applicationName = "C:\Programme\ProgDVB\ProgDVB.exe"
applicationName2 = "D:\misc\progdvb_exit_move.exe"
applicationName3 = "D:\misc\progdvb_earl.bat"
recordFolder = "d:\"
fileExtension = "mpg"

' Objekte instantiieren
' -------------------------------------------

Set ArgObj = WScript.Arguments
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FileSystem = CreateObject("Scripting.FileSystemObject")

var1 = ArgObj(0)
var2 = ArgObj(1)
var3 = ArgObj(2)
var4 = ArgObj(3)
var5 = ArgObj(4)
var6 = ArgObj(5)
var7 = ArgObj(6)
var8 = ArgObj(7)
var9 = ArgObj(8)
var10 = ArgObj(9)
var11 = ArgObj(10)
var12 = ArgObj(11)

sender = var8



' Start und Endezeiten zusammenbauen
' --------------------------------------------

startDate = var1 & "/" & var2 & "/" & var3
startTime = var4 & ":" & var5 & ":00"
endDate = var10 & "/" & var11 & "/" & var12
endTime = var6 & ":" & var7 & ":00"

' Startdatum verschieben
' n bedeutet Minute (Sekunde wäre s, Stunde wäre h)
' -1 heißt 1 Minute nach vorne

startDateTime = DateAdd("n", -1, CDate(startDate & " " & startTime))
startDate2 = Right(CStr(100 + Day(startDateTime)), 2) & "/" & Right(CStr(100 + Month(startDateTime)), 2) & "/" & Right(CStr(10000 + Year(startDateTime)), 4)
startTime2 = Right(CStr(100 + Hour(startDateTime)), 2) & ":" & Right(CStr(100 + Minute(startDateTime)), 2) & ":00"

' Tasknamen zusammenbauen
' --------------------------------------------

weekD = Weekday(var1 & "." & var2 & "." & var3 )
weekDName =WeekdayName(weekD)

taskName ="......" & var9 & "..." & var8 & "..."& var4 & "." & var5 & "." & var1 & ".." & var6 & "." & var7 & "..." & "..." & var2 & "." & var3
taskName0 = "Start" & taskName


' Befehl zur Aufnahme zusammenbauen
' --------------------------------------------
fileName = Chr(34) & Chr(34) & Chr(34) & recordFolder & var9 & "..." & var8 & "..."& var4 & "." & var5 & "." & var1 & ".." & var6 & "." & var7 & "..." & "..." & var2 & "." & var3 & "." & fileExtension & Chr(34) & Chr(34) & Chr(34)
parameters = "/CH:" & Chr(34) & Chr(34) & Chr(34) & sender & Chr(34) & Chr(34) & Chr(34) & " /StartRecord:" & fileName & " /Minimize"
startProgram = applicationName & " " & parameters


' StartTask anlegen
' --------------------------------------------

cmd = "SCHTASKS /Create /S " & system & " /RU " & system & "\" & userName & " /RP " & userPassword & " /SC EINMAL"
cmd = cmd & " /SD " & startDate
cmd = cmd & " /ST " & startTime
cmd = cmd & " /TN " & Chr(34) & taskName0 & Chr(34)
cmd = cmd & " /TR " & Chr(34) & startProgram & Chr(34)

'msgbox "startProgram: " & startProgram
'msgbox "Command: " & cmd

ReturnCode = WshShell.Run(cmd, 7, True)


' Task nachbearbeiten (mit jt.exe), Task soll den Rechner aufwecken
' (jt.exe muss im Systempfad liegen, z.B. Windows\system32)
' ----------------------------------------------------------------------------

taskFolder = FileSystem.GetSpecialFolder(0) & "\tasks\"

' so geht's natürlich auch...
' cmd = "c:\programme\tvgenial\jt.exe"

cmd = "jt"
cmd = cmd & " /lj"
cmd = cmd & " " & Chr(34) & taskFolder & taskName0 & ".job" & Chr(34)
cmd = cmd & " /sj"
cmd = cmd & " SystemRequired=1"
cmd = cmd & " DeleteWhenDone=1"

ReturnCode = WshShell.Run(cmd, 7, True)


' EndTask anlegen, Aufnahmeprogramm schließen
' ----------------------------------------------------

taskname2 = "Stop" & taskname
parameters = " "
startProgram = applicationName2 & " " & parameters

cmd = "SCHTASKS /Create /S " & system & " /RU " & system & "\" & userName & " /RP " & userPassword & " /SC EINMAL"
cmd = cmd & " /SD " & endDate
cmd = cmd & " /ST " & endTime
cmd = cmd & " /TN " & Chr(34) & taskName2 & Chr(34)
cmd = cmd & " /TR " & Chr(34) & startProgram & Chr(34)

'msgbox "startProgram: " & startProgram
'msgbox "Command: " & cmd

ReturnCode = WshShell.Run(cmd, 7, True)

' Task nachbearbeiten (mit jt.exe), Task soll den Rechner aufwecken
' (jt.exe muss im Systempfad liegen, z.B. Windows\system32)
' ----------------------------------------------------------------------------

taskFolder = FileSystem.GetSpecialFolder(0) & "\tasks\"

' so geht's natürlich auch...
' cmd = "c:\programme\tvgenial\jt.exe"

cmd = "jt"
cmd = cmd & " /lj"
cmd = cmd & " " & Chr(34) & taskFolder & taskName2 & ".job" & Chr(34)
cmd = cmd & " /sj"
cmd = cmd & " SystemRequired=1"
cmd = cmd & " DeleteWhenDone=1"

ReturnCode = WshShell.Run(cmd, 7, True)

' ReaktivierungsTask anlegen, Rechner hochfahren
' ----------------------------------------------------

taskname = "earl." & taskname
parameters = " "
startProgram = applicationName3 & " " & parameters

cmd = "SCHTASKS /Create /S " & system & " /RU " & system & "\" & userName & " /RP " & userPassword & " /SC EINMAL"
cmd = cmd & " /SD " & startDate2
cmd = cmd & " /ST " & startTime2
cmd = cmd & " /TN " & Chr(34) & taskName & Chr(34)
cmd = cmd & " /TR " & Chr(34) & startProgram & Chr(34)

'msgbox "startProgram: " & startProgram
'msgbox "Command: " & cmd

ReturnCode = WshShell.Run(cmd, 7, True)

' Task nachbearbeiten (mit jt.exe), Task soll den Rechner aufwecken
' (jt.exe muss im Systempfad liegen, z.B. Windows\system32)
' ----------------------------------------------------------------------------

taskFolder = FileSystem.GetSpecialFolder(0) & "\tasks\"

' so geht's natürlich auch...
' cmd = "c:\programme\tvgenial\jt.exe"

cmd = "jt"
cmd = cmd & " /lj"
cmd = cmd & " " & Chr(34) & taskFolder & taskName & ".job" & Chr(34)
cmd = cmd & " /sj"
cmd = cmd & " SystemRequired=1"
cmd = cmd & " DeleteWhenDone=1"

ReturnCode = WshShell.Run(cmd, 7, True)

danke
Zuletzt geändert von dosenfleisch am 24.11.2004, 08:40, insgesamt 1-mal geändert.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 24.11.2004, 08:36

hier noch der entsprechnede code für die DeleteTaskProgdvb.vbs



' Parameter, die zu übergeben sind
' -------------------------------------------

' Beginn der Aufnahme ------------
' var1 = Tag
' var2 = Monat
' var3 = Jahr

' var4 = Stunde
' var5 = Minute

' Ende der Aufnahme ---------------
' var6 = Stunde
' var7 = Minute

' sonstiges ---------------
' var8 = Sender
' var9 = Titel


' Variablendeklaration
' -------------------------------------------

Dim ArgObj
Dim var1, var2, var3, var4, var5, var6, var7, var8, var9
Dim cmd, taskName, weekDName, weekD

Set ArgObj = WScript.Arguments

Set WshShell = WScript.CreateObject("WScript.Shell")

var1 = ArgObj(0)
var2 = ArgObj(1)
var3 = ArgObj(2)
var4 = ArgObj(3)
var5 = ArgObj(4)
var6 = ArgObj(5)
var7 = ArgObj(6)
var8 = ArgObj(7)
var9 = ArgObj(8)


' Task zur Aufnahme löschen
' --------------------------------------------

weekD = Weekday(var1 & "." & var2 & "." & var3 )
weekDName =WeekdayName(weekD)

taskName ="......" & var9 & "..." & var8 & "..."& var4 & "." & var5 & "." & var1 & ".." & var6 & "." & var7 & "..." & "..." & var2 & "." & var3
taskName0 = "Start" & taskName

cmd = "SCHTASKS /Delete /F /TN " & """" & taskName0 & """"

ReturnCode = WshShell.Run(cmd, 7, True)


' Task zum Programmabschluss löschen
' --------------------------------------------

taskname2 = "Stop" & taskname
cmd = "SCHTASKS /Delete /F /TN " & """" & taskName2 & """"

ReturnCode = WshShell.Run(cmd, 7, True)

' Task zur Reaktivierung löschen
' --------------------------------------------

taskname = "earl." & taskname
cmd = "SCHTASKS /Delete /F /TN " & """" & taskName & """"

ReturnCode = WshShell.Run(cmd, 7, True)

jeracom
Beiträge: 7
Registriert: 17.02.2005, 12:54
Wohnort: Lüneburg

PROGDVB TVGenial

Beitragvon jeracom » 17.02.2005, 13:44

Hallo Ihr alle
Ich bin auf das Script Aufmerksam geworden, durch einen Bekannten der dieses auch nutzt.
Ich habe seit einigen Tagen die PCTV Sat und finde das mit deinem Script eine Geniale Sache.

Ich habe aber damit ein Problem, und denke, das wenn Ihr Zeit habt mir weiterhelfen könnt.

In dem Script CreateTaskProgDVB.vbs wird die "SCHTASKS" benutzt
die leider nur laufähig unter XP ist, dann habe ich das ganze abgewandelt in
"JT" das ganze ist beides lauffähig unter XP, habe es hier in der Firma bei mir mal getestet. Die Tasks werden angelegt und auch wieder entfernt.

jt zeigt mir, wenn ich das in der "cmd" ausführe auch andere Parameter als im Script, oder sehe ich da was falsch. Ich bin leider nicht so bewandelt in dem Thema.

Da habe ich gedacht, Prima, läuft ja. :-)
Nun habe ich Win2000 zu hause. Wenn ich nun in TVgenial auf Aufnahme gehe wird das Script wie in WinXP offensichtlich ausgeführt. Im Ordner "Tasks" taucht aber nichts auf und es wird auch kein Task ausgeführt oder ähnlich im Protokoll ist auch nichts zu sehen vom Scheduler.

habt ihr eine Lösung wie das ganze unter W2K auzusehen hat?

Wäre toll wenn Ihr mir weiterhelfen könnt :-)

Gruß Jens

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 17.02.2005, 17:52

mal "Einmal" mit "once" austauschen - vielleicht hilft`s

jeracom
Beiträge: 7
Registriert: 17.02.2005, 12:54
Wohnort: Lüneburg

PROGDVB TVGenial

Beitragvon jeracom » 17.02.2005, 18:25

Nee, war nichts :-(

Gruß Jens

In Win2000 gibts doch anstatt des SCHTASKS den Vorgänger AT
Habe ich von Andyt8, und heute mittag selber schon gesehen, in der Help von Sinnlos 2000.

Ich denke man müsste die Befehle dafür irgendwie anpassen.

Gruß Jens

Ps: Wäre ja auch Interessant für Ziggi, wenn er Zeit hat oder einer für euch, da das ganze dann auch auf Win2000 läuft, man könnte das ja dann auf der IE Seite von Ziggi als ein zusätzlichen Download reinstellen.

:)
Zuletzt geändert von jeracom am 17.02.2005, 18:34, insgesamt 1-mal geändert.

dosenfleisch
Beiträge: 34
Registriert: 09.07.2004, 15:25

Beitragvon dosenfleisch » 17.02.2005, 18:32

und wenn du eine schtasks.exe von winxp nimmst?

jeracom
Beiträge: 7
Registriert: 17.02.2005, 12:54
Wohnort: Lüneburg

Beitragvon jeracom » 17.02.2005, 18:36

Habe ich schon Probiert.
Einfach mal in der CMD aufgerufen, es kommt die Meldung das dieses Programm für XP gemacht wurde ... :(


Zurück zu „TVgenial-Aufnahmeschnittstelle“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste