Avanti-cl mit Delphi - ???

Sibylle Koczian Sibylle.Koczian at bibliothek.uni-augsburg.de
Mi Mai 29 14:27:06 CEST 2002


Lieber Herr Schmid, liebe Liste,

bei mir funktioniert nicht einmal der Versuch, in einem Delphi-Programm 
avanti-cl seinen Job aus einer Datei beziehen und das Ergebnis in eine 
andere Datei schreiben zu lassen.

Verfahren bisher:

1) Mit CreateFile zwei Dateien oeffnen. Eine enthaelt den Job und wird mit 
"GENERIC_READ" und "OPEN_EXISTING" geoeffnet. Die andere wird mit 
"GENERIC_WRITE" und "CREATE_ALWAYS" geoeffnet und soll das Ergebnis aufnehmen.

2) Eine StartupInfo-Struktur fuer CreateProcess mit den noetigen Werten 
belegen:

dwFlags = STARTF_USESTDHANDLES,
StartInf.hStdInput := InHdl;
StartInf.hStdOutput := OutHdl;  // InHdl und OutHdl wurden von den beiden 
CreateFile-Aufrufen zurueckgegeben

3) CreateProcess aufrufen mit dem Programmnamen, dem Startverzeichnis und 
der eben belegten StartupInfo-Struktur.

4) Mit WaitForSingleObject warten, bis der Prozess beendet ist, und dann 
sein Handle schliessen.

5) Die Handles InHdl und OutHdl schliessen.

Es gibt keine Fehlermeldung, aber die Ausgabedatei bleibt leer. Es liegt 
nicht am Job ('help available'), in der DOS-Box kann ich die gleiche 
Jobdatei mit Erfolg benutzen.

Ich habe die SECURITY_ATTRIBUTES ueberall auf NULL gesetzt, weil ich 
dachte, es muessen hier keine Handles _vererbt_ werden, es werden welche 
explizit uebergeben. Ist das vielleicht verkehrt?

Mit Pipes kriege ich schon gar nichts auf die Reihe, deshalb wollte ich es 
zuerst so versuchen und von da aus weitermachen.

Was mache ich falsch?

Danke und beste Gruesse, Koczian

P.S. Mit Python funktioniert es wunderbar - aber ich moechte lieber doch 
mehr ueber API-Funktionen in Delphi als ueber GUI-Programmierung mit Python 
lernen ... Und uebrigens: die Nicht-Korrektur von Registereintraegen, s. 
meine Mail vom 27.5., passiert mit avanti-cl genau so. Aber das war zu 
erwarten, es arbeitet Jobs ja wohl nicht anders ab als procav.exe?


Dr. Sibylle Koczian
Universitaetsbibliothek , Abt. Naturwiss.
D-86135 Augsburg

Tel.: (0821) 598-2400, Fax : (0821) 598-2410
e-mail : Sibylle.Koczian at Bibliothek.Uni-Augsburg.DE





Mehr Informationen über die Mailingliste Allegro