Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249601 (11037)
  Suchen
 Zurück zur Übersicht
 AutorThema: Binäre Druckausgabe unter Windows
Stefan Schnell
Datum: 28.06.01 17:12 Antwortenals Email verschicken (mail@stschnell.de) 


Hallo Community,
versuche eine binäre Druckausgabe unter Windows zu programmieren, bei einem lokalen Drucker funktioniert dies wunderbar, jedoch im Netzwerk kommt immer die Fehlermeldung "Drucker nicht gefunden". Hat einer von Euch eine Idee, woran es liegen kann?

Anbei der Quelltext meines Versuches:

'*CompilerDirektiven***********************************************************

$P+

'*ExterneFunktionsDefinitionen*************************************************

Def @OpenPrinter(3) !"WINSPOOL.DRV", "OpenPrinterA"
Def @ClosePrinter(1) !"WINSPOOL.DRV", "ClosePrinter"
Def @StartDocPrinter(3) !"WINSPOOL.DRV", "StartDocPrinterA"
Def @EndDocPrinter(1) !"WINSPOOL.DRV", "EndDocPrinter"
Def @StartPagePrinter(1) !"WINSPOOL.DRV", "StartPagePrinter"
Def @EndPagePrinter(1) !"WINSPOOL.DRV", "EndPagePrinter"
Def @WritePrinter(4) !"WINSPOOL.DRV", "WritePrinter"

'*KonstantenDeklaration********************************************************

Def %NULL 0

'*VariablenDeklaration*********************************************************

Declare PrinterName$
Declare PrinterHandle&
Declare FileName$, FileType$
Declare BufferSize&, WrittenBytes&

'*InterneFunktionsDefinitionen*************************************************

Def @ZeroStr(1) @Add$(@$(1), @Chr$(0))

'*Hauptprogramm****************************************************************

Let PrinterName$ = @ZeroStr("SYMANTEC FAX STARTER EDITION")

If @Equ(@OpenPrinter(@Addr(PrinterName$), @Addr(PrinterHandle&), %NULL), 1)

Let FileName$ = @ZeroStr("D:\25397")
Let BufferSize& = @FileSize("D:\25397")
Let FileType$ = @ZeroStr("RAW")

Declare DocInfo#
Struct Doc_Info_1 = DocName&, OutputFile&, DataType&
Dim DocInfo#, Doc_Info_1

With DocInfo#
.DocName& = @Addr(FileName$)
.OutputFile& = %NULL
.DataType& = @Addr(FileType$)
EndWith

If @Gt(@StartDocPrinter(PrinterHandle&, 1, DocInfo#), 0)

@StartPagePrinter(PrinterHandle&)

Declare File#
Dim File#, 4096
ReadText File#, "D:\25397"

@WritePrinter(PrinterHandle&, File#, BufferSize&, @Addr(WrittenBytes&))

Print WrittenBytes&

Dispose File#

@EndPagePrinter(PrinterHandle&)

@EndDocPrinter(PrinterHandle&)

Else

@MessageBox("Kein Dokument zum Spooling!", "Fehler", 48)

EndIf

Dispose DocInfo#

If @Equ(@ClosePrinter(PrinterHandle&), 0)

@MessageBox("Drucker konnte nicht geschlossen werden!", "Fehler", 48)

EndIf

Else

@MessageBox("Drucker konnte nicht geöffnet werden!", "Fehler", 48)

EndIf

'*Ende*************************************************************************

End

Tschüss
Stefan


 Zurück zur Übersicht