Aufruf externer Programme

Der VCR.NET Recording Service kann dazu eingerichtet werden, in gewissen Situationen externe Programme zu aktivieren:

  • Beim Übergang in den Schlafzustand: ist es dem VCR.NET Recording Service gestattet, den Rechner in den Schlafzustand zu versetzen, so wird vor einem solchen Übergang geprüft, ob externe Programme registriert sind. Ist das der Fall, so werden diese aktiviert und VCR.NET unternimmt keine weiteren Schritte.
  • Mit dem Starten einer Aufzeichnung: dabei werden auch Testaufzeichnungen, das Sammeln von Daten für die Programmzeitschrift, der Sendersuchlauf sowie der LIVE Modus berücksichtigt.
  • Nach dem Beenden einer Aufzeichnung.

Der Aufruf der Programme erfolgt asynchron, VCR.NET wartet ausser beim Übergang in den Schlafzustand nicht auf deren Terminierung. Gerade beim Starten und Beenden von Aufzeichnungen kann es theoretisch dazu kommen, dass die tatsächlich Ausführung bedingt durch Entscheidungen des Betriebssystems Windows in einer scheinbar falschen Reihenfolge erfolgt - es wird der Beginn einer zweiten Aufzeichnung beendet, bevor das Ende der ersten erkannt wurde. Externe Programme müssen dies berücksichtigen. Man beachte ferner, dass alle vom VCR.NET aufgerufenen Programme in dessen Kontext (insbesondere unter dem lokalen Systemkonto) laufen und keinen Zugriff auf den Desktop von Windows haben.

Der VCR.NET Recording Service ermittelt zu jeder der beschriebenen Situationen, welche Erweiterungen für die jeweilige Situation bekannt sind. Erweiterungen sind erst einmal Windows BAT Dateien in Unterverzeichnissen des Server Extensions Verzeichnisses im Installationsverzeichnis vom VCR.NET Recording Service - Dateien mit anderen Endungen sowie Unterverzeichnisse werden gänzlich ignoriert. Folgende Unterverzeichnisse werden erkannt:

  • HibernateWhenUserIsLoggedOn: VCR.NET möchte in den Schlafzustand übergehen, kann dies aber nicht, weil noch ein Anwender am System angemeldet ist. Ohne Erweiterung würde in diesem Fall höchstens ein Eintrag im Ereignisprotokoll von Windows vorgenommen. Ist mindestens eine Erweiterung registriert, so entfällt dieser Eintrag.
  • Hibernate: wird verwendet, wenn tatsächlich der Übergang in den Schlafzustand stattfinden würde. Ist mindestens eine Erweiterung vorhanden, so unternimmt VCR.NET selbst keine weiteren Schritte
  • RecordingStarted: wird unmittelbar nach dem Start einer Aufzeichnung ausgewertet.
  • RecordingFinished: wird ausgewertet, wenn eine Aufzeichnung beendet wurde.

Ist eine Aufzeichnung betroffen, so überträgt der VCR.NET Recording Service alle bekannten Daten dazu in die Environmentvariablen des extern aufgerufenen Programms. Dabei handelt es sich erst einmal um genau die Einträge, die auch im Dateimuster für Aufzeichnungen verwendet werden können - Namen der Aufzeichnung und des Auftrags, Sender und so weiter. Dazu kommen noch die eindeutigen Kennungen von Auftrag (JobIdentifier) und Aufzeichnung (ScheduleIdentifier) sowie beim Beenden einer Aufzeichnungen die Information, ob die Aufzeichnung abgebrochen (Aborted=1) oder regulär beendet wurde (Aborted=0) und die Liste aller Aufzeichnungsdateien. Darüber hinaus werden alle Aufzeichnungsdateien aufgeführt, sowohl die ursprünglich geplanten (PlannedFiles mit der Anzahl, PlannedFile1, ... mit dem vollen Pfad) als auch die tatsächlich erzeugten (RecordedFiles, RecordedFile1, ...) - diese Sätze können sich etwa bei der Aufzeichnung von Regionalfenstern unterscheiden, wenn für eine Aufzeichnung mehrere Dateien angelegt werden.

BuiltWithNOF