Batch-Dateien im Capture-Plugin übergeben ?
Batch-Dateien im Capture-Plugin übergeben ?
Moin.
Ich habe eine Batchdatei geschrieben die auch funktioniert wenn ich sie aus einer Kommandoaufforderung starte, aber wenn ich diese als auszuführende Datei im Capture-Plugin eintrage dann funktioniert sie nicht (Meldung: Applikation meldet sich nicht zurück.)
Die Batch sieht so aus:
REM ### Hauptroutine
echo Parameter %1 = Dateiname
echo Parameter %2 = Stunde
echo Parameter %3 = Minute
echo Parameter %4 = Tag
echo Parameter %5 = Monat
echo Parameter %6 = Jahr
echo Parameter %7 = Username
echo Parameter %8 = Passwort
schtasks.exe /create /SC EINMAL /TN %1 /TR "C:\Programme\WinTV\WinTV2K.EXE" /ST %2:%3:00 /SD %4/%5/20%6 /ru %7 /rp %8
Wenn ich diese mit dem Befehl "start PVR-create.bat" starte (als Applikation im Capture-Plugin eingetragen) dann kommt immer die Fehlermeldung:
Probleme bei dem Starten der Applikation
----- Start of stacktrace -----
java.io.IOException: CreateProcess: start c:\batch\pvr-create.bat In_Concert_Country_Oldies_BR_21_02_2005_0000 00 00 21 02 2005 Michael amiga error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at captureplugin.drivers.defaultdriver.CaptureExecute.executeApplication(CaptureExecute.java:212)
at captureplugin.drivers.defaultdriver.CaptureExecute.execute(CaptureExecute.java:139)
at captureplugin.drivers.defaultdriver.CaptureExecute.addProgram(CaptureExecute.java:97)
at captureplugin.drivers.defaultdriver.DefaultDevice.add(DefaultDevice.java:195)
at captureplugin.DeviceSelector$1.actionPerformed(DeviceSelector.java:112)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
----- End of stacktrace -----
Was läuft da falsch ?
Ich habe eine Batchdatei geschrieben die auch funktioniert wenn ich sie aus einer Kommandoaufforderung starte, aber wenn ich diese als auszuführende Datei im Capture-Plugin eintrage dann funktioniert sie nicht (Meldung: Applikation meldet sich nicht zurück.)
Die Batch sieht so aus:
REM ### Hauptroutine
echo Parameter %1 = Dateiname
echo Parameter %2 = Stunde
echo Parameter %3 = Minute
echo Parameter %4 = Tag
echo Parameter %5 = Monat
echo Parameter %6 = Jahr
echo Parameter %7 = Username
echo Parameter %8 = Passwort
schtasks.exe /create /SC EINMAL /TN %1 /TR "C:\Programme\WinTV\WinTV2K.EXE" /ST %2:%3:00 /SD %4/%5/20%6 /ru %7 /rp %8
Wenn ich diese mit dem Befehl "start PVR-create.bat" starte (als Applikation im Capture-Plugin eingetragen) dann kommt immer die Fehlermeldung:
Probleme bei dem Starten der Applikation
----- Start of stacktrace -----
java.io.IOException: CreateProcess: start c:\batch\pvr-create.bat In_Concert_Country_Oldies_BR_21_02_2005_0000 00 00 21 02 2005 Michael amiga error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at captureplugin.drivers.defaultdriver.CaptureExecute.executeApplication(CaptureExecute.java:212)
at captureplugin.drivers.defaultdriver.CaptureExecute.execute(CaptureExecute.java:139)
at captureplugin.drivers.defaultdriver.CaptureExecute.addProgram(CaptureExecute.java:97)
at captureplugin.drivers.defaultdriver.DefaultDevice.add(DefaultDevice.java:195)
at captureplugin.DeviceSelector$1.actionPerformed(DeviceSelector.java:112)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
----- End of stacktrace -----
Was läuft da falsch ?
Die Batch-Datei direkt eintragen ist richtig, aber die Meldung sagt mir das die Batch-Datei nicht innerhalb von einigen Sekunden abläuft. Entweder erwartet das schtask weitere eingaben oder dauert einfach zu lange.
Hast du schonmal das Skript hier:
http://wiki.tvbrowser.org/index.php/Cap ... in_-_WinTV
probiert?
Hast du schonmal das Skript hier:
http://wiki.tvbrowser.org/index.php/Cap ... in_-_WinTV
probiert?
Ich arbeite hier mit dem PVR von Mainconcept.bodo hat geschrieben:Die Batch-Datei direkt eintragen ist richtig, aber die Meldung sagt mir das die Batch-Datei nicht innerhalb von einigen Sekunden abläuft. Entweder erwartet das schtask weitere eingaben oder dauert einfach zu lange.
Hast du schonmal das Skript hier:
http://wiki.tvbrowser.org/index.php/Cap ... in_-_WinTV
probiert?
Aber in dem Captureplugin is eine feste Zeitspanne einprogammiert in der er möchte daß er sich zurückmeldet ? ich habe es dnan mit
start batch.bat
Versucht. Sollte doch funktionieren, oder ? Start koppelt sich ab und öffnet einen eigenen CMD Thread.
Funktioniert aber auch nicht.
Habe hier WinXp Prof. SP2 mit java 1.5 falls dir das weiterhilft ...
Jup, der erwartet, das sich das Programm zurückmeldet. In der nächsten Version (die erst in einigen Monaten rauskommt), ist dieses Verhalten einstellbar.
Hab hier nur Linux...aber versuch mal, die Batch-Datei als Parameter anzugeben. Und dann am besten auch den kompletten Pfad zu start oder cmd angeben...vielleicht funktioniert das ja?!
Hab hier nur Linux...aber versuch mal, die Batch-Datei als Parameter anzugeben. Und dann am besten auch den kompletten Pfad zu start oder cmd angeben...vielleicht funktioniert das ja?!
.... und woher kommt der Parameter "error=2" welcher dem Batch übergeben wird ? Eingetragen habe ich dieses natürlich nicht, den dichtet er sich immer selber hinzu.bodo hat geschrieben:Die Batch-Datei direkt eintragen ist richtig, aber die Meldung sagt mir das die Batch-Datei nicht innerhalb von einigen Sekunden abläuft. Entweder erwartet das schtask weitere eingaben oder dauert einfach zu lange.
Hast du schonmal das Skript hier:
http://wiki.tvbrowser.org/index.php/Cap ... in_-_WinTV
probiert?
Den Pfad kannst du irgendwo in den Windows-Einstellungen machen...in den Umgebungsvariablen gibt es einen PATH, da packst du den Pfad hinzu.
Der dichtet Parameter hinzu?! Dieses verhalten hab ich noch nie gesehen . Bist du dir sicher, das dieser Parameter vom TV-Browser kommt? Hier unter Linux macht der das nämlich nich
Der dichtet Parameter hinzu?! Dieses verhalten hab ich noch nie gesehen . Bist du dir sicher, das dieser Parameter vom TV-Browser kommt? Hier unter Linux macht der das nämlich nich
Wenn ich die Batch-Datei mit "start batch.bat" aufrufe dann meldet er zurück:bodo hat geschrieben:Den Pfad kannst du irgendwo in den Windows-Einstellungen machen...in den Umgebungsvariablen gibt es einen PATH, da packst du den Pfad hinzu.
Der dichtet Parameter hinzu?! Dieses verhalten hab ich noch nie gesehen . Bist du dir sicher, das dieser Parameter vom TV-Browser kommt? Hier unter Linux macht der das nämlich nich
Probleme bei dem Starten der Applikation
----- Start of stacktrace -----
java.io.IOException: CreateProcess: start C:\Batch\PVR-create.bat Sprechende_Pflanzen_Urmel error=2
Die "Sprechende_Pflanzen_Urmel" ist jetzt mal testweise nur der eine Parameter der übergeben wurde. Und das "error=2" ? Kommt das vom Java-Interpreter oder wurde dieser vom Capture-Plugin hinzugefügt ?
Jetzt hab ichs.bodo hat geschrieben:Ich schätze, das wird vom java hinzugedichtet. Aber hast du jetzt schonmal versucht start.exe inkl. Verzeichniss (ich glaub c:\winnt\start.exe oder so) anzugeben und dann die batch-Datei in die Parameter zu schreiben, damit die Batch-Datei auch wirklich als Parameter übergeben wird?
Ich muß die Batchdatei mit "start" (ohne den expliziten Pfad dahin) und auch die Befehle die ich im Batchfile angebe per "start" starten, dann gehts. Sonst hängt der aus welchen Gründen auch immer.
Eine andere Frage:
Ich will per "echo" eine Datei erstellen aber dort ist das Zeichen "&" enthalten was er als Steuerzeichen in der Befehlszeile interpretiert. Wie bekommen ich das "&" doch noch in die Datei rein ?
Beispiel:
echo >c:\test.txt abc&def
(Da meint er "def" wäre ein neues Kommando, ich will daß er dieses Zeichen nicht als Kommando interpretiert.)
Ich kann zwar ein:
echo >c:\test.txt "abc&def"
machen aber dann packt er auch die Anführungszeichen in die Datei mit rein, was ich nun überhaupt nicht gebrauchen kann.
Gruß
Michael
Keine Ahnung, da kann ich nich helfen, aber könntest du bitte deine Bat-Datei hier posten oder im Wiki hier:
http://wiki.tvbrowser.org/index.php/Cap ... gurationen
eine neue Seite machen ?
Danke!
http://wiki.tvbrowser.org/index.php/Cap ... gurationen
eine neue Seite machen ?
Danke!
Werde ich wohl dann machen wenn es bei mir funktioniert. Trotzdem reicht eine Batch-datei alleine nicht, da sind noch eine Reihe andere Dateien zu erstellen. Für jeden Sender eine eigene Definitionsdatei, die man aus dembodo hat geschrieben:Keine Ahnung, da kann ich nich helfen, aber könntest du bitte deine Bat-Datei hier posten oder im Wiki hier:
http://wiki.tvbrowser.org/index.php/Cap ... gurationen
eine neue Seite machen ?
Danke!
vom PVR erstellten Konfigurationen herausschneiden muß. (Zeitplan für RTL erstellen - den erstellten Task in den Editor laden und einige Zeilen da herausschneiden und als RTL.task abspeichern usw., das für jeden Sender.
Das liegt daran weil dort eine "ID" zu finden ist welcher der PVR braucht um zu wissen welchen Sender er einstellen muß von der ich aber keine Ahnung habe wie ich sie generieren könnte.)
Soll heißen: Funktion ist zwar vorhanden, aber die Sache ist ziemlich unflexibel (ändern der Sender im PVR heißt neue Dateien erstellen) und es macht Arbeit.
Ich hoffe außerdem daß die Leute vom Mainconcept mal eine Parameterübergabe an ihr Prg zulassen bzw. einbauen. Ihre Reaktion auf eine diesbezüglich war aber eher lau.
Es könnte alles viel einfacher vor sich gehen aber was soll man machen wenn man keine Unterstützung bekommt ? Dann muß so herumgehackt werden.
Gruß
Michael
Wer es sich trotzdem hinbasteln will und vielleicht 2 Stunden Zeit hat (je mehr Sender Mensch empfängt desto mehr Arbeit) der bekommt das also auch mit der jetzigen PVR Version zum laufen.bodo hat geschrieben:Schade eigentlich
*böse mainconcept anschau*
Bei mir funktioniert es jetzt auch. (Ohne irgendwelche Fehlerabfragen usw.)
Hinzuaddieren und löschen vom TVBrowser aus.
Ich poste mal das Batch-Script (schlecht gemacht nehme ich mal an, ich bin aber auch nicht so der Programmierer.)
@echo off
setlocal
echo Parameter %1 = Dateiname
echo Parameter %2 = Stunde
echo Parameter %3 = Minute
echo Parameter %4 = Tag/Monat/Jahr
echo Parameter %5 = Username
echo Parameter %6 = Passwort
echo Parameter %7 = Aufnahmedauer in Sekunden
echo Parameter %8 = Sender
if %1==delete start schtasks.exe /delete /TN %2 /F
if %1==delete del C:\Programme\Mainconcept\PVR\config\Tasks\%2.task
if %1==delete goto exit
REM *** Create new event ***
start schtasks.exe /create /SC EINMAL /TN %1 /TR "C:\Programme\Mainconcept\PVR\Pvr.exe /task:C:\Programme\Mainconcept\PVR\config\Tasks\%1" /ST %2:%3:00 /SD %4 /ru %5 /rp %6
REM *** calculate recording duration
set /A duration=%7*60+%10
REM *** create new .task file***
copy c:\batch\Part1.task z:\%1.task
echo>>z:\%1.task Duration=%7
echo>>z:\%1.task FileName=F:\Eigene_Dateien\PVR\films\Film Archive\Captured video\%1.mpeg
echo>>z:\%1.task Folder=
echo>>z:\%1.task GeneralMute=1
echo>>z:\%1.task NeedPreview=0
echo>>z:\%1.task ShutdownMode=3
echo>>z:\%1.task MpegType=2
if %8==3SAT type c:\batch\3sat.task >>z:\%1.task
if %8==ARD type c:\batch\ard.task >>z:\%1.task
if %8==ARTE type c:\batch\arte.task >>z:\%1.task
if %8==BR type c:\batch\br.task >>z:\%1.task
if %8==DSF type c:\batch\dsf.task >>z:\%1.task
if %8==KABEL1 type c:\batch\kabel1.task >>z:\%1.task
if %8==KIKA type c:\batch\kika.task >>z:\%1.task
if %8==MDR type c:\batch\mdr.task >>z:\%1.task
if %8==N24 type c:\batch\n24.task >>z:\%1.task
if %8==NDR type c:\batch\ndr.task >>z:\%1.task
if %8==PHOENIX type c:\batch\phoenix.task >>z:\%1.task
if %8==PRO7 type c:\batch\pro7.task >>z:\%1.task
if %8==RTL type c:\batch\rtl.task >>z:\%1.task
if %8==RTL2 type c:\batch\rtl2.task >>z:\%1.task
if %8==SAT1 type c:\batch\sat1.task >>z:\%1.task
if %8==SUPERRTL type c:\batch\superrtl.task >>z:\%1.task
if %8==VOX type c:\batch\vox.task >>z:\%1.task
if %8==WDR type c:\batch\wdr.task >>z:\%1.task
if %8==ZDF type c:\batch\zdf.task >>z:\%1.task
type c:\batch\Part2.task >>z:\%1.task
REM *** copy .task to PVR folder ***
copy z:\%1.task C:\Programme\Mainconcept\PVR\config\Tasks
:exit
------
Aufruf über das Capture-Modul mit:
(Aufnehmen)
start PVR.bat %T2_%CNB_%SD_%SMO_%SY_%SH%SMI %SH %SMI %SD/%SMO/%SY %UN %UP %LS %CNV
(Löschen)
startPVR.bat delete %T2_%CNB_%SD_%SMO_%SY_%SH%SMI
(Alle Pfade im Script sind Systemspezifisch und können so nicht übernommen werden. Dann braucht man noch das Tool "schtasks"
und die gehackten ".task" Dateien wie oben beschrieben.
Bis dann....
Michael
(Trotz allem war und ist es also machbar, im Gegensatz zu WinDVR3, da
habe ich mir die Zähne ausgebissen , beim Versuch dieses irgendwie per TVBrowser zu programmieren.)
Jetzt habe ich doch noch ne Datei gefunden aus der ich die benötigten Daten herausziehen kann, aber ich weiß mal wieder nicht wie das per DOS/Shell gehen soll.bodo hat geschrieben:Schade eigentlich
*böse mainconcept anschau*
Vielleicht kann mir da einer helfen ?
Die Datei sieht so aus:
---
[channel000]
Value=0
Type=3
Brightness=50
Contrast=50
Hue=50
Saturation=50
avStandart=16
Id=-1270284288
Caption=VOX
Category=
[channel001]
Value=1
Type=3
Brightness=50
Contrast=50
Hue=50
Saturation=50
avStandart=16
Id=-1270284287
Caption=ARD
Category=
[channel002]
Value=1
Type=0
Brightness=50
Contrast=50
Hue=50
Saturation=50
avStandart=16
Id=-1396113367
Caption=RTL
Category=
---
Und jetzt kann ich ja per :
findstr /I /N "caption=ard" "Datei"
suchen und die Zeilennummer in der Datei finden.
Und jetzt brauche ich eben die Daten in der Zeile "Zeilennummer-1"
Wie komme ich da ran ? (Mit WinXP Standart-Sellbefehlen ?)
Keine Ahnung ...
(Habe mir ein Buch darüber bestellt aber das ist noch nicht da.)
Gruß
Michael