Wolle Posted October 25, 2006 Share Posted October 25, 2006 (edited) Hallo ich habe in VB6 ein Progrämmchen erstellt, das "nachschaut" ob der DVBViewer läuft und gerade eine Aufnahme aktiv ist. Das Ergebnis wird dann per errorlevel an das aufrufende Programm zurückgegeben. Wenn ich es von Hand starte klappt es auch wunderbar. Nur leider nicht wenn ich es vom SQL-Server per EXEC @result = master..xp_cmdshell 'dvbcontrol.exe' starte. Im Taskamanger ist es als aktiv (Besitzer: Administrator) zu sehen. Als ich dann testweise das Programm per at job /interactive gestartet hatte konnte ich endlich die Fehlermeldung sehen Hintergrund der Geschichte ist folgender (falls interessant) Ich habe auf den SQL-Server folgenden Job (ab 22:30 bis 05:00 alle 30 Min): 1. Nachschauen ob bestimmte Client im Netz aktiv, Wenn alle aus dann weiter (anpingen mit pping.exe -> Ergebnis als errorlevel erhalten ) 2. Server einschaltzeit ermitteln (steht in ner Config Tabelle, genial wäre hier das BIOS auszulesen) 3. feststellen ob Aufnahmen anstehen während der down Zeit (timers.xml) 4. feststellen ob aktuell eine Aufnahme aktiv ist (wenn Aufnahme aktiv dann aus Prozedur aussteigen) Wenn alles zur Zufriedenheit ist dann DVBViewer beenden(ansonsten zerschießt er die timers.xml) und per shutdown die Maschine runterfahren. Besonders verwirrt mich, dass direkt gestartet alles funktioniert nur per SQL-Aufruf nicht obwohl der Processeigentümer Administrator ist Hat jemand vielleicht eine Idee?? Wenns läuft werde ich wahrscheinlich alles auf VB bringen, SQL-Server war aber erstmal einfacher (google bringt alles mögliche aber nur im Zusammenhang mit nicht korrekt registrierten dlls) schonmal vielen Dank Wolle Tja, heute habe ich eine Ergänzung: Ich habe das ganze per SQL DTS Packet (kann ja auch VBS) versucht. Lokal kein Problem per SQL-Zeitplaner aber doch Dann habe ich das VB-Programm per Windows-Taskplaner ausführen lassen Es funktioniert !! Also kann das Programm, gestartet so wie oben beschrieben nur nicht erkennen, dass der DVBViewer aktiv ist, obwohl alle Prozesse unter dem Kontext Administrator laufen. Also wenn keiner eine Idee hat werde ich mein SQL Script wohl komplett auf VB schreiben, schade war so einfach Edited October 26, 2006 by Wolle Quote Link to comment
Wolle Posted October 30, 2006 Author Share Posted October 30, 2006 So, jetzt funktioniert es. Ich habe alles in VB umgesetzt. Ich war wohl etwas SQL versessen, wahrscheinlich weil ich gerade beruflich viel damit gemacht hatte. Ich weiß zwar, dass ich auch per DVBViewer die Maschine herunterfahren kann, aber ich, bzw. meine Frau, möchte nicht jedesmal überlegen müssen, ob das nun für heute die letzte Aufnahme ist oder nicht. Außerdem ist die Kombination überwachung auf aktive Rechner (bzw. Showcenter) + anstehende Aufnahmen interessant. Also falls jemand interesse hat, das kleine prog hat folgende Funktionen: (INI-datei Anpassen (zu Überwachende Rechner, Pfade, Logfile)) Programm per Taskplaner starten (z.B. von 21:00 Uhr bis 06:00Uhr alle 20 Minuten) Programmfunktion: Überprüfen der, in der ini, angegebenen Rechner Überprüfen ob eine Aufnahme während der Down-Zeit ansteht Überprüfen auf laufende Aufnahme Beenden DVBViewer (läuft bei mir immer da die erste Aufnahme immer fehlschlägt Dateigröße ist dann immer 1KB) Herunterfahren System Das einzige Problem, was noch da ist: Ich habe den Eindruck das die Timers.xml beim QUIT nicht aktualisiert wird, so dass die Aufnahme des Folgetages fehlschlägt, die Einträge im DVBViewer sind dann immer in rot dargestellt ????? Quote Link to comment
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.