Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249686 (11122)

| Suchen
| Zurück zur Übersicht

Autor | Thema: OpenPrinter aus WinAPI Aufruf
Stefan Schnell
| Datum:26.05.01 10:57 (mail@stschnell.de) |
Hallo Community, habe mal folgende Frage. Definiere die Funktion Def @OpenPrinter(3) !"WINSPOOL.DRV", "OpenPrinterA" und dazu folgende Variablen Declare PrinterName$, PrinterHandle%, OpenPrinterResult% und dann den Aufruf Let PrinterName$ = @Add$("WINFAX", @Chr$(0)) Let OpenPrinterResult% = @OpenPrinter(@Addr(PrinterName$), @Addr(PrinterHandle%), 0) Leider liefert OpenPrinterResult% immer nur 0 zurück, d. h. Funktion nicht erfolgreich ausgeführt. GetLastError ermittelt einen nicht korrekten Aufruf der Funktion, obwohl ein PrinterHandle% ermittelt wird. Wo mache ich einen Fehler? Danke und Tschüss Stefan
Thorsten
| Datum:26.05.01 14:10 (galaxy@mrk-soft.de) |
Hi, hier mal ein Code, wo es funktioniert, Rückgabewert ist hier 1 bei Winfax. Getestet mit Profan 7.0, sollte aber auch mit 5. 0 oder 6.0 funktionieren. cls Def OpenPrinter(3) !"WINSPOOL.DRV", "OpenPrinterA" Def ClosePrinter(1) !"WINSPOOL.DRV", "ClosePrinter" declare prthandle&, prthandle#, prtname# dim prtname#,255 dim prthandle#,4 string prtname#,0="winfax" 'name des printers print OpenPrinter(prtname#,prthandle#,0) '1 = ok, 0 = fehler prthandle& = long(prthandle#,0) 'rückgabewert des handles für object dispose prtname# dispose prthandle# ClosePrinter(prthandle&) waitkey
Roland G. Hülsmann
| Datum: 27.05.01 11:10 (rgh-soft@t-online.de) |
Du mußt anstelle der Integervariablen (%) die LongInt-Variablen (&) benutzen dann geht es. (Das gilt im übrigen für ALLE API-Funktionen.) Folgender Code gibt bei mir zunächst eine "1" und dann das Printerhandle aus:
    Def @OpenPrinter(3) !"WINSPOOL.DRV", "OpenPrinterA"

    Declare PrinterName$, PrinterHandle&, OpenPrinterResult&

    CLS

    Let PrinterName$ = @Add$("HP OfficeJet Serie 600 Drucker", @Chr$(0))

    Let OpenPrinterResult& = @OpenPrinter(@Addr(PrinterName$), @Addr(PrinterHandle&), 0)

    Print OpenPrinterResult&
    Print PrinterHandle&

    WaitInput

    End

| Zurück zur Übersicht