directPRINT/Service
Windows Hot Directory Service
Spezifikation
| Betriebssysteme: | Windows NT 4.0, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows Server 2000, Server 2003, Server 2008 |
| Softwaregattung: | Hot Directory Service als Windows Dienst oder Windows Applikation |
| Dateisysteme: | NTFS, FAT und Netzwerklaufwerke |
| Überwachung: | Mehrstufige Überwachung des Dateistatus:
|
| Verzeichnisse: | Gleichzeitige Überwachung mehrerer Verzeichnisse ohne Einbußen in der Performance. Für jedes Verzeichnis können abhängig vom Dateityp unterschiedliche Programme aufgerufen werden. |
| Aktionen: | Abhängig vom Rückgabewert des Programmes können die verarbeiteten Dateien gelöscht werden. Optional können bei Rückgabe eines Fehlercodes die betroffenen Dateien in ein Fehlerverzeichnis zur weiteren Untersuchung durch den Operator kopiert werden. |
| Ereignisprotokoll: | Alle Fehlerzustände werden im Windows - Ereignisprotokoll vermerkt. Es werden keine Fehlerdialoge geöffnet. Das Fehlerprotokoll kann administrativ über das Netzwerk mit der Windows - Anwendung "eventvwr.exe" eingesehen werden. |
Steuerung durch die Kommandozeile
Das Programm dcp32.exe besitzt folgende Parameter in der Kommandozeile:
dcp32 [/START | /STOP | /RESET | /INSTALL | /UNINSTALL]
| Parameter | Beschreibung |
| /START | Startet die Überwachung. Wurde die Überwachung als Windows-Dienst konfiguriert, wird der Dienst gestartet und das Programm beendet. Wurde die Überwachung als Windows-Applikation definiert, wird die Überwachung gestartet. Die gestartete Applikation wird jedoch nicht beendet, solange die Überwachung durchgeführt wird. Im Windows Tray (neben der Uhr in der Startleiste) wird ein Symbol angezeigt. |
| /STOP | Beendet die Überwachung, falls diese als Dienst gestartet wurde. Eine Überwachung als Applikation kann derzeit nicht über die Kommandozeile gestoppt werden. Falls die Überwachung als Dienst konfiguriert wurde, wird das Programm beendet. |
| /RESET | Löscht alle gespeicherten Daten der Indexdatei. Dateien, deren Dateistatus zuvor in der Indexdatei enthalten waren, werden neu bearbeitet. |
| /INSTALL | Installiert den Windows - Dienst erneut. Diese Option kann verwendet werden, falls wärend der Installation ein Fehler aufgetreten ist und der Windows - Dienst nicht gestartet werden kann. |
| /UNINSTALL | Deinstalliert den Windows - Dienst. Nach der Deinstallation kann der gleiche Dienst für einen gewissen Zeitraum nicht erneut installiert werden. |
Aufbau der Konfigurationsdatei
Die Konfiguration wird vollständig in einer ASCII-Datei vorgenommen. Die Datei verwendet das bekannte INI-Format und kann z.B. mit Notepad.exe editiert werden. Die Datei ist in verschiedene Abschnitte (Sektionen) unterteilt.
Um die Konfigurationsdatei zu öffnen:
- Starten Sie directPRINT Service
- Wählen Sie "Datei - Einstellungen..."
Sie erhalten Notepad mit der geladenen Konfigurationsdatei.
Der Abschnitt [SETUP]
Diese Sektion enthält globale Parameter, die für alle Überwachungspunkte gelten.
| Parameter | Beschreibung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| LOGLEVEL = <enum> | Filtert die Fehlermeldungen die in das Windows- Systemlog
geschrieben werden. Sie können hiermit steuern, wie genau der
Programmstatus im Fehlerlog angegeben werden soll. Gültige Werte für
<enum> sind:
|
||||||||
| EXTRASCANTIME = # | Der Intervall in Sekunden in der die Verzeichnisse nach übersehenden Dateien abgesucht werden sollen. Dies ist ein integriertes Sicherungssystem, dass bekannte Probleme des Windows - internen Dateisysteme abfängt. Bei hoher Systemlast oder inkompatiblen Netzwerklaufwerken (z.B. Samba) können u.U. Dateiänderungen übersehen werden. Die überwachten Verzeichnisse werden deshalb zusätzlich in einem Intervall nach Änderungen durchsucht. Beachten Sie, dass ein kürzerer Intervall die Netzwerklast signifikant erhöht. |
Der Abschnitt [ENVIRONMENT]
Diese Sektion enthält eine Reihe frei definierbarer Parameter, die in den folgenden Definitionen als Textbausteine verwendet werden können. Alle Zeilen haben das Format:
| Parameter | Beschreibung |
|---|---|
| NAME = WERT | Die Parameter des Environments können bei allen Pfad- und Programmangaben der folgenden Sektionen mit %NAME% verwendet werden. Der String %NAME% % wird dann durch WERT ersetzt. Verwenden Sie das Environment z.B., um Basisverzeichnisse für Anwendungen und Pfade anzugeben. |
Der Abschnitt [WATCHPOINTS]
Geben Sie in dieser Sektion die zu überwachenden Verzeichnisse an. Jede Zeile besitzt das Format:
| Parameter | Beschreibung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| WPSECTION = PATH,ACTIONSECTION,... |
Beispiel: WatchPoint1 = c:\MySpooler\HotDir1,Action1 |
Der Abschnitt [WPSECTION]
Der Name WPSECTION dieser Sektion ist ein Platzhalter und frei wählbar. Er muss einem Sektionsnamen in der Sektion [WATCHPOINTS] entsprechen. Diese Sektion legt fest, wie Verzeichnis zu überwachen ist.
| Parameter | Beschreibung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| DELETEFILES = <number> | Steuert wie die Dateien im überwachten Verzeichnis nach der
Bearbeitung gelöscht werden sollen. Sollen die Dateien nach der
Verarbeitung nicht gelöscht werden und langfristig im überwachten
Verzeichnis verbleiben, so sollte die Option FileHistory=1 aktiviert
werden.
|
||||||||
| ERRORFILES = <path> | Geben Sie diesen Parameter an, falls Dateien in ein Verzeichnis verschoben
oder kopiert werden sollen, sobald das aufgerufene Programm mit einem
Fehlercode beendet Ersetzen Sie <path> durch ein gültiges lokales Verzeichnis. Haben Sie die Option DeleteFiles (s.o.) aktiviert, werden fehlerhaft bearbeitete Dateien in das Verzeichnis verschoben. Haben Sie die Option DeleteFiles nicht aktiviert, werden fehlerhaft bearbeitete Dateien in das Verzeichnis kopiert. Die originale Datei bleibt in jedem Fall erhalten. Wird der Parameter ErrorFiles nicht angegeben, wird die Datei im Fehlerfall nicht verschoben bzw. kopiert. Beispiel: ErrorFiles = c:\MySpooler\Errors |
||||||||
| WRITEDELAY = <number> | Verzögert die Bearbeitung von neuen Dateien um die in <number> angegebenen Millisekunden (ms). Jeder erneute Schreibzugriff auf die Datei verlängert das Warteintervall. Einige Anwendungen wie der Microsoft IIS FTP-Dienst schließen und öffnen Dateien bei der Erstellung mehrfach. Über das Warteintervall kann die Weiterverarbeitung verzögert werden. Wird die Option FileHistory verwendet, sollte als WriteDelay ein Wert >= 1000 angegeben werden. | ||||||||
| SUBDIRECTORIES=<bool> | Gibt an, ob die Überwachung nur für das angegebene Verzeichnis
oder auch rekursiv für jedes Unterverzeichnis erfolgen soll.
|
||||||||
| FILEHISTORY=<bool> | Aktiviert die permanente Speicherung des Dateistatus in einer Indexdatei.
Verwenden Sie diese Option, wenn die Dateien im überwachten Verzeichnis
nach der Verarbeitung nicht gelöscht und langfristig im Verzeichnis
verbleiben sollen. Sinnvollerweise sollte die Option DeleteFiles=0
angegeben werden. Bei aktivierter Option wird das letzte Schreibdatum und die
letzte Dateigröße jeder gefundenen Datei in einer permanenten
Indexdatei vorgehalten. So wird z.B. bei einem Neustart des Dienstes vermieden,
dass bereits bearbeitete Dateien erneut bearbeitet werden. Wird die Datei
verändert, so wird die konfigurierte Verarbeitungsroutine erneut
aufgerufen. Da bei einer großen Anzahl Dateien der Zugriff auf die Indexdatei etwas Zeit benötigt, sollte in der Option "WriteDelay=1000" oder mehr angegeben werden. Die Indexdateien "filehistory.dat" und "filehistory.idx" werden automatisch bei erster Verwendung der Option im Programmverzeichnis erzeugt. Werden die Indexdateien gelöscht, werden alle im überwachten Verzeichnis enthaltenen Dateien erneut verarbeitet. Die Indexdateien können mit dem Befehl "dcp32 /RESET" gelöscht werden. |
Der Abschnitt [ACTIONSECTION]
Der Name der ACTIONSECTION dieser Sektion ist ein Platzhalter und frei wählbar. Er muss einem Sektionsnamen in der Sektion [WATCHPOINTS] entsprechen. Diese Sektion legt fest, was bei einer gefundenen neuen Datei geschehen soll (Aktion).
| Parameter | Beschreibung | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DESCRIPTION = <text> | Legt eine Beschreibung für die Aktion fest. Ersetzen Sie <text>
durch Ihre Beschreibung. Der Text wird bei Fehlermeldungen im Ereignisprotoll
verwendet. Beispiel: Description = Grafikdateien drucken |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| FILESPEC = <spec>,... | Legt die Dateiendungen fest, die die aufgerufene Anwendung unterstützt. Ersetzten Sie <spec> durch eine Dateispezifikation ähnlich den DOS-Wildcards. Es können die Suchzeichen * und ? verwendet werden. Mehrere Spezifikationen können durch das Komma getrennt angegeben werden. Beispiel: FileSpec=*.tif,*.pcx,*.gif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WORKDIR = <path> | Legt das aktuelle Laufwerk und Verzeichnis fest, in dem die Anwendung
ausgeführt wird. Ersetzen Sie <path> durch einen gültigen Pfad
ohne abschließendes Backslash. Beispiel: WorkDir = c:\temp\long path |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| APPLICATION = <path> | Legt die aufgerufene Applikation fest. Ersetzen Sie <path> durch den
Dateinamen und Pfad der aufgerufenen Anwendung. Sie können die im
Environment angegebenen Platzhalter verwenden. Beispiel: Application = c:\programme\directtools\directprint.exe |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PARAMETERS = <params> | Legt die Aufrufparameter (Kommandozeile) der gestarteten Anwendung fest. Im
Aufrufparameter <params> können Platzhalter verwendet werden, um den
Dateiname der im überwachten Verzeichnis gefundenen Datei zu
übergeben.Folgende Platzhalter sind möglich:
Kurze Dateinamen: Falls Sie kurze Dateinamen zum Kopieren von Dateien verwenden, beachten Sie bitte, dass ein kurzer Dateiname ohne Pfad die Datei in einem anderen Verzeichnis oder Laufwerk nicht mehr eindeutig bezeichnet. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SCRIPT = <section> | Gibt optional den Sektionsnamen mit einem Script an. Das Script wird vor dem Programmaufruf ausgeführt und kann dazu verwendet werden, die Aufrufparameter anzupassen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SHOWSTATE = <number> | Legt die Anzeige des aufgerufenen Programmes auf dem Desktop fest.
|
Skripte ausführen
Scripte werden vor jedem Programmaufruf ausgeführt und können Parameter im Environment verändert und neu setzen. Das Environment ist der Namensraum der %NAME% - Variablen, aus denen ein Programmaufruf zusammengesetzt werden kann.
Skripte bieten Ihnen somit die Möglichkeit, komplexe Parameter zu extrahieren und an die folgende Anwendung zu übergeben.
Das Script wird in einer eigenen Sektion mit beliebigen Namen erstellt. Der Sektionsname wird im Parameter SCRIPT einer Aktion in der Sektion [ACTIONSECTION] zugeordnet. Scripte, die nicht zugeordnet sind, werden auch nicht ausgeführt. Ein Script wird immer zeilenweise von oben nach unten ausgeführt.
Bei der Auswertung von Texten können komplexe Such- und Ersetzungsmuster, sogenannte Reguläre Ausdrücke verwendet werden.
Syntax Extract - Befehl
EXTRACT <name> = <value>,<match>,<regexpr>
| Parameter | Beschreibung |
|---|---|
| <name> | Name einer Environment - Variablen, in der das Ergebnis abgelegt wird. |
| <value> | Der durchsuchender String. Befinden sich in <value> Parameter, so werden diese durch den aktuellen Parameterwert im Environment ersetzt. |
| <match> | Index des gefundenen Teilausdruckes in <regexpr>. Ein Teilausdruck im Regulären Ausdruck wird durch eine runde Klammerung (...) definiert. <match> gibt also die von 1 aufwärts zählende Klammerung an. Wird 0 angegeben, wird der gesamte gefundene Ausdruck zurückgegeben. |
| <regexpr> | Ein Reguläre Ausdruck. Verwenden Sie das Programm "RexTutor.exe", um Ihren Regulären Ausdruck vorher zu testen. |
Beispiel:
Aus einem Dateinamen soll der mit einem Punkt separierte Teilstring vor der Dateiextension extrahiert werden. Der Dateiname steht in der Variable %1 zur Verfügung. Der Dateiname lautet z.B. "c:\pfad\langer pfad\afilename.searched-string.prn". Um den Text "searched-string" in die Variable "astring" zu übernehmen:
EXTRACT astring = %1,1,.*\.(.*)\.prn$
Syntax Zuweisung =
<name> = <value>
Weist der Environment - Variable mit Namen <name> den neuen Wert <value> zu. Befinden sich in <value> Parameter (%NAME%), so werden diese durch den aktuellen Parameterwert im Environment ersetzt.
Syntax IFMATCH - Befehl
IFMATCH <value> = <regexpr>
Sucht in <value> den ersten Teilausdruck (die erste runde Klammer). Falls der Suchausdruck zutreffend ist, wird der erste Teilausdruck der Variable <value> zugewiesen. Trifft der Suchausdruck nicht zu, wird <value> nicht verändert. Im <regexpr> muss mindestens ein Teilausdruck (runde Klammern) enthalten sein. Vor dem IFMATCH - Befehl sollte ein EXTRACT - Befehl oder eine Zuweisung (=) angegeben werden.
Minimale Installation, Einbindung in Applikationen
Die Installation von directPRINT/Service erfordert das Kopieren der folgenden Programmdateien in ein beliebiges Verzeichnis:
- "dcp32.exe" - die Programmdatei
- "dcpsvr.exe" - der Windows - Dienst
- "dcp32.chm" - die Hilfe-Datei
- "dcpsvr.ini" - die Konfigurationsdatei
Zur Registration des Dienstes muss einmalig der folgende Aufruf erfolgen: "dcp32.exe /INSTALL".





