LPT unter Windows 10 Verion 1511

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: LPT unter Windows 10 Verion 1511

Beitrag von AUGE_OHR »

ad 1511
https://www.startech.com/faq/parallel_g ... ting_issue
When I send jobs to my parallel port in Windows 10, it does not print. What do I do?

This issue was the result of a Windows update that has recently been fixed in the KB3140743 update.
If you are still experiencing this issue, download the latest Windows update.



You can also temporarily resolve the issue by completing the following:

Press the Windows key + X.
Click Device Manager.
Expand the section for Ports (COM & LPT).
Right-click on the LPT port that is experiencing the issue.
Click Properties.
Click the Port Settings tab.
Under Filter Resource Method, select an option that is not currently selected.
Click OK.
also bitte auf die aktuelle Windows Version upgraden ... oder geht das bei deiner CPU ( Cherry Tail) nicht :?:
gruss by OHR
Jimmy
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo, ich habe die aktuelle win10 Version. Alles was fehlt ist der Seitenauswurf.....
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von Koverhage »

Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

Ich meine dass das letzte
Set printer to
Den Druck abschließen müsste.

Was für ein Drucker ist es denn. Reiner GDI oder HP kompatibel?
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo, meinst du die doszip?

Danke
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Dell laser, aber bei Print auf PDF oder XPS habe ich dasselbe Problem, ich überlege immer noch, ob ich einen Programmierfehler mache, der das abschließen des Drucks verhindert....
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

Das ist seltsam, ich dachte das folgende Programm müsste drucken wie gewünscht,
aber mit Win7 und diesem Programm druckt der Drucker nichts.

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"
#include "inkey.ch"
#pragma Library( "XppUI2.lib" )

PROCEDURE Main
   local oDlg, oPrn

   oDlg := XbpPrintDialog():new()
   oDlg:create()

   // Obtain configured printer object
   oPrn := oDlg:display()
   ? oPrn:devname
   oDlg:destroy()

   if oPrn <> NIL
      SET PRINTER TO OBJECT oPRN
      SET PRINTER ON
      SET CONSOLE OFF

      ? "Hallo Welt"

      SET PRINTER OFF
      SET CONSOLE ON
      SET PRINTER TO
   endif

   oPrn:destroy()

RETURN
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

das druckt perfekt

Code: Alles auswählen

PROCEDURE Main
   LOCAL oPS
   // Create presentation space for default printer
   oPS := PrinterPS("Brother MFC-7820N USB Printer")

   // Activate spooling
   oPS:device():startDoc()

   // Spool graphic output
   GraBox( oPS, {10,10}, {400,100} )
   GraStringAt( oPS, {20,50}, "Hallo Welt !")

   // End spooling
   oPS:device():endDoc()

   DestroyDevice( oPS )

RETURN

   // Create presentation space and link to
   // device context for printer. The coordinate
   // system unit is 1/10 millimeter.
   //
   FUNCTION PrinterPS( cPrinterObjectName )
      LOCAL oPS, oDC := XbpPrinter():New()
      LOCAL aSize

      oDC:Create( cPrinterObjectName )

      oPS := XbpPresSpace():New()
      aSize := oDC:paperSize()

      // Size of printable region on paper
      aSize := { aSize[5] - aSize[3], ;
                 aSize[6] - aSize[4]  }
      oPS:Create( oDC, aSize, GRA_PU_LOMETRIC )
   RETURN oPS

   PROCEDURE DestroyDevice( oPS )
      LOCAL oDC := oPS:device()

      IF oDC <> NIL
         oPS:configure()
         oDC:destroy()
      ENDIF
   RETURN
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo Hubert,
danke für Deine Mühe!

Das genau ist mein Problem. Ich route das unter Win10 auf PDF: Die Datei wird erzeugt, ist aber leer (0 Byte) und korrupt. Ich kämpfe seit 4 TAgen damit - offensichtlich mache ich nichts falsch. Zum Verzweifeln...... :angry1: - dabei will ich nur ein paar Zeilen drucken :oops:
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo, hast Du eine 1.9 oder 2.0 ?

Danke, Oliver
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

ich habe es mit beiden ausprobiert, egal wie viel chr(12) ich rein haue oder Ausdrucke hintereinander ... am Ende wird alles gedruckt.
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hi, jetzt doch oder bei der grafischen Version? Mit ?/?? klappt der Druck nicht, oder?
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: LPT unter Windows 10 Verion 1511

Beitrag von mini990 »

Guten Morgen,
wenn ich richtig verstabnden habe schickst Du Deine Druckaufträge direkt an LPT1.
Wenn dem so ist bitte folgendes überprüfen:
Gerätemanager -> Anschlüsse -> LPT1 -> Anschlusseinstellungen
Ist der Haken bei Legacyerkennung gesetzt? (Muss gesetzt sein)
Danach sollte es funktionieren.

Gruß Stefan
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Moin, nee, von LPT bin ich jetzt auch weg. Ich sende direct an den korrekten Druckername oder über \\server\drucker, dort kommt es laut Spooler auch an, aber nicht raus...

Danke, Olly
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

saab-olly hat geschrieben: So, 18. Mär 2018 21:06 Hi, jetzt doch oder bei der grafischen Version? Mit ?/?? klappt der Druck nicht, oder?
Die graphische Druckausgabe wie oben angezeigt funktioniert immer.

Bei der set printer to object oXbpPrinterObjekt Methode wird am Drucker angezeigt, dass "Restdaten" vorhanden sind.
Wenn ich dann auf dem Brother Drucker "Druck abbrechen" drücke (ein Button), dann werden alle Seiten gedruckt, die ich auch per ? übergeben hatte.

Ich habe mit 1.90.355 und 2.00.906 probiert, mein OS war Win 7

Ich selbst drucke nicht mehr so, daher hatte ich keine Erfahrungen mit dem Befehl set printer to object oXbp.

Mit Win10 habe ich dann nicht mehr probiert.
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Ok, vielen Dank, Hubert!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

ich habe eine LinePrinter Funktion geschrieben, die die Umsetzung solcher Listen vereinfachen soll, gedruckt wird ausschließlich (wenn auch intern) über XbpPrinter() und GraStringAt().
set printer to wird nicht benötigt und muss entfernt werden. Somit müssten alle Probleme von set printer to ... erledigt sein. :D

Wichtig, da sowohl die Erstellung der Objekte (oPRN, oPS) als auch Start und Ende des Druckjobs außerhalb gesteuert werden, kann man mehrere Ausgaben mischen.
Und im eigenen Quellcode muss man nur VOR und NACH dem alten Quellcode wenige Zeilen einfügen / löschen.
Natürlich funktioniert der Ausdruck auch auf PDF oder andere Datei-Druckertreiber, sowie auf allen Druckern, die Windows selbst verwenden kann.

Für Verbesserungen bin ich offen und wenn es stabil ist (aktuell unterscheide ich noch nicht die Einstellung Top Left / Bottom Left) stelle ich es in die Wissensdatenbank.
Gleiches habe ich mit PDF (HBPrintPDF, etc.) vor...

Code: Alles auswählen

// Schriftart etc. wird vorher festgelegt

oPrn:startDoc("Test von LinePrinter") // bestimmt Dateinamen bei PDF Druckertreibern.

// init the LinePrinter function
QPRN( { oPS, nLineFeed, nFirstLine, nLinesPerPage, nLeftMargin } )
// the old Report stye ...
.... ? ...
// End of Printing
QPRN()

oPrn:endDoc()

Meine Funktion, kann auch über #translate auf ? umgeleitet werden, allerdings sollten man dann die Warnung ignorieren, dass evt. ein NIL zuviel übergeben wird, das habe ich nicht weg bekommen.

* Syntax der Funktion:

Erster Aufruf: QPRN( { oPS, nLineFeed, nFirstLine, nLinesPerPage, nLeftMargin } ) // nLeftMargin = Blanks left of text

hierbei werden die nötigen Infos als Array übergeben:
  • oPS (XbpPresentationSpace des XbpPrinters)
  • Zeilenvorschub (Zeilenhöhe)
  • Position der ersten Zeile (0,0 ist ja links unten, also etwa 2900)
  • Zeilen pro Seite
  • Blanks für linken Rand
Aufrufe für die Druckzeilen:

QPRN( "LF", .... ) => entspricht qout(...) oder ? ...
QPRN( "NO", .... ) => entspricht qout(...) oder ? ... "NO" kann auch NIL sein.
QPRN( "FF" ) => entspricht EJECT
QPRN( ) => setzt die Funktion zurück, wobei der Druckjob noch nicht geschlossen ist.

Das kann man mit #translate auch so umsetzen, dass die eigentlichen alten Reportzeilen nicht geändert werden müssen:

#command ? [<list,...>] => QPRN( "LF", <list> )
#command ?? [<list,...>] => QPRN( "NO", <list> )
#command EJECT => QPRN( "FF" )

Mein Testprogramm sieht so aus:

Code: Alles auswählen

#include "Gra.ch"
#include "Xbp.ch"
#include "Common.ch"

#pragma Library( "XppUI2.lib" )

// TO DO --- Vorschub automatisch bestimmen und Top Left berücksichtigen.

/*
#command  ?  [<list,...>]  =>  oSheet:Q( <list> )
#command  ?? [<list,...>]  =>  oSheet:QQ( <list> )
*/

#define PRINTERAUSWAHL .t.

// LinePrinter mit XbpPrinter() Objekt

// einfacher und zuverlässiger als SET PRINTER TO OBJECT ...

/* Syntax:

   INIT:    QPRN( { oPS, nLineFeed, nFirstLine, nLinesPerPage, nLeftMargin } ) // nLeftMargin = Blanks left of text

   QOUT():  QPRN( "LF", .... )
   QQOUT(): QPRN( "NO", .... )
   EJECT:   QPRN( "FF" )
   ?        QPRN( "LF" )
   END      QPRN( )


#command  ?  [<list,...>]  =>  QPRN( "LF", <list> )
#command  ?? [<list,...>]  =>  QPRN( "NO", <list> )
#command  EJECT            =>  QPRN( "FF" )

* Standard ist in Xbp.CH !

#ifndef __XWB__
#command  ?  [<list,...>]  =>  QOUT( <list> )
#command  ?? [<list,...>]  =>  QQOUT( <list> )
#else
#command  ?  [[<foo1> [,<fooN>]]  =>  Var2LChar(<foo1>)[+" "+Var2LChar(<fooN>)]
#command  ?? [[<foo1> [,<fooN>]]  =>  Var2LChar(<foo1>)[+" "+Var2LChar(<fooN>)]
#endif
#command  EJECT            => _Eject()

*/

PROCEDURE Main
   LOCAL oPrn, oPS, oDlg, oFont, aSize
   LOCAL nFirstLine, nLinesPerPage, nLineFeed, nLeftMargin

   set charset to ansi

   if PRINTERAUSWAHL

      oDlg := XbpPrintDialog():new()
      oDlg:create()

      // Obtain configured printer object
      oPrn := oDlg:display()
      oDlg:destroy()

   else

      oPrn := XbpPrinter():new():create()


   endif

   IF oPrn <> NIL
      // Create a new presentation space
      oPS   := XbpPresSpace():new()

      // Size of printable region on paper
      aSize := oPrn:paperSize()
      aSize := { aSize[5] - aSize[3], aSize[6] - aSize[4]  }

      oPS:create( oPrn, aSize, GRA_PU_LOMETRIC )

      // Font setzen ...

      oFont := XbpFont():new(oPS)     // Font for printer
      if .t.
         oFont:familyName := "Arial"
         oFont:height     := 0           // use nominalPointSize
         oFont:width      := 0           // use nominalPointSize
         oFont:nominalPointSize := 10    // for Arial etc.
      else
         oFont:familyName := "Courier"
         oFont:height     := 16
         oFont:width      :=  8
      endif
      oFont:create()                        // Create font

      oPS:setFont(oFont)

      // Zeilenanzahl berechnen oder festlegen !
      // you can calculate the line parameter or just define what you want.

      nLineFeed      := -40
      nFirstLine     := aSize[2] + (nLineFeed * 1)
      nLinesPerPage  :=  60
      nLeftMargin    :=   5

      oPrn:startDoc("Test von LinePrinter")

      // init the LinePrinter function

      QPRN( { oPS, nLineFeed, nFirstLine, nLinesPerPage, nLeftMargin } )

      // the old Report stye ...

#command  ?  [<list,...>]  =>  QPRN( "LF", <list> )
#command  ?? [<list,...>]  =>  QPRN( "NO", <list> )
#command  EJECT            =>  QPRN( "FF" )

      ? "Test 1",34,date(),time(),111.22
      ? "Test 2",35,date(),time(),112.22
      ? "Test 3",36,date(),time(),113.22
      ?
      EJECT
      ? "New Page"
      ? ""
      ? "Text-"
      ?? "Ende"

#ifndef __XWB__
#command  ?  [<list,...>]  =>  QOUT( <list> )
#command  ?? [<list,...>]  =>  QQOUT( <list> )
#else
#command  ?  [[<foo1> [,<fooN>]]  =>  Var2LChar(<foo1>)[+" "+Var2LChar(<fooN>)]
#command  ?? [[<foo1> [,<fooN>]]  =>  Var2LChar(<foo1>)[+" "+Var2LChar(<fooN>)]
#endif
#command  EJECT            => _Eject()

      // End of Printing
      QPRN()

      oPrn:endDoc()

      oFont:destroy()
      oPrn:destroy()
      oPS:destroy()

   ENDIF


return

procedure QPRN( xCommand )
  STATIC oPrn, oPS, nLineFeed, nFirstLine, nLinesPerPage, nPosX, nPosY, nLine, cLM
  LOCAL i, nParams, cTxt, uValue, aInfo, nTxtLen
  nParams := PCount()
  IF nParams = 0
     // end of Printing
     oPrn          := NIL
     oPS           := NIL
     nLine         := 0
     nLineFeed     := 0
     nFirstLine    := 0
     nLinesPerPage := 0
     nPosX         := 0
     nPosY         := 0
     cLM           := ""
  else
     // xCommand ...
     DEFAULT xCommand TO "NO"
     do case
        case oPrn = NIL .and. valtype( xCommand ) # "A"
             alert("QPRN wurde nicht initialisiert")
             quit
        case valtype( xCommand ) == "A"
             // INIT:    QPRN( { oPS, nLineFeed, nFirstLine, nLinesPerPagen, LeftMargin } )
             oPS           := xCommand[1]      // XbpPresentationSpace
             oPRN          := oPS:device()     // XbpPrinter
             nLineFeed     := xCommand[2]
             nFirstLine    := xCommand[3]
             nLinesPerPage := xCommand[4]
             if ! empty(xCommand[5])
                cLM        := space(xCommand[5])
             endif
             nLine         := 1
             nPosX         := 0
             nPosY         := nFirstLine + nLineFeed
        case valtype( xCommand ) == "C"
             do case
                case xCommand == "LF"
                     nPosX := 0
                     if nLine > 0
                        nPosY += nLineFeed
                     endif
                     nLine++
                     if nLine > nLinesPerPage
                        oPrn:newPage()
                        nPosX := 0
                        nPosY := nFirstLine + nLineFeed
                     endif
                case xCommand == "FF"
                     oPrn:newPage()
                     nLine := 1
                     nPosX := 0
                     nPosY := nFirstLine + nLineFeed
                case xCommand == "NO"
                     // OK
                otherwise
                     alert("QPRN unbekanntes Kommando: '"+xCommand+"'")
                     quit
             end

             cTxt := cLM

             for i := 2 to PCount()
                 uValue := PValue(i)
                 if i>2
                    cTxt += " "
                 endif
                 do case
                    case uValue = NIL
                         // nothing
                    case valtype(uValue) = "C"
                         cTxt += uValue
                    case valtype(uValue) = "N"
                         cTxt += alltrim(str(uValue))
                    case valtype(uValue) = "D"
                         cTxt += dtoc(uValue)
                    case valtype(uValue) = "L"
                         cTxt += iif(uValue,"J","N")
                    otherwise
                         cTxt += var2char(uValue)
                 end

             next

             aInfo   := GraQueryTextBox(oPS, cTxt)
             nTxtLen := aInfo[3,1] - aInfo[2,1]

             GraStringAt( oPS, {nPosX,nPosY}, cTxt )

             nPosX += nTxtLen


             cTxt := ""

        otherwise
             alert("QPRN unbekanntes Kommando: '"+var2char(xCommand)+"'")
             quit

     end

  endif

return


Dateianhänge
LinePrinter.zip
(5.15 KiB) 396-mal heruntergeladen
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo Hubert, das ist der Hammer. Schaue ich mir am Wochenende an, das könnte mir viel Arbeit und Zeit sparen. Danke schonmal....

Ciao Olli
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

HAllo Hubert,

ich habe den ersten Report meiner App nun mit lineprinter umgesetzt, funktioniert prima, vielen Dank nochmal!!

Ich habe noch eine Frage, ein Problemchen:

Nachdem der User sich entschieden hat auf dem Drucker zu drucken (statt Bildschirm), setze ich in diesem IF-Konstrukt die BEfehle um:
#command ? [<list,...>] => QPRN( "LF", <list> )
#command ?? [<list,...>] => QPRN( "NO", <list> )
#command EJECT => QPRN( "FF" )
.... jetzt Drucken it dem alten ?/??
....
... und nach dem Drucken wieder zurück.
.....
IF ziel= "D"
// End of Printing
QPRN()
oPrn:endDoc()
#command ? [<list,...>] => QOUT( <list> )
#command ?? [<list,...>] => QQOUT( <list> )
#command EJECT => _Eject()
ELSE // nur auf dem Bildschirm angesehen
WAIT "Taste drücken..."
ENDIF

Problem:
auch wenn das IF oben garnicht durchlaufen wird, ich also von ANfang an Bildschrim wähle, werden die ?/?? BEfehle an QPRN gesendet, dass natürlich nicht initialisiert wurde. Ich kenne mich mit den #command-Direktiven nicht sonderlich aus, habe aber verstanden, dass man sie innerhalb des laufenden Pogrammes, wie in Deinem Bsp. wieder umbiegen kann.

Hast Du ev. eine Idee?

Danke und schöne Ostern - Oliver
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

die #command Befehle werden vor dem Compiler umgesetzt, damit dieser den so entstehenden Code compilieren kann.
Dein IF zur Laufzeit ist ja viel später, darum kann das nicht funktionieren !

Die Vorgabe war eine Druckliste auf den Drucker zu bringen.
Gleichzeitig auf dem Monitor geht so nicht.

Da bleibt nur die Anfrage bei Alaska warum das mit dem Set Printer To Object bei uns nicht geht.
Gruß
Hubert
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hallo,

die Ausgabe soll ja nocht gleichzeitig sondern irgendwann später drucken. In Deinem Bsp-Programm setzt Du das doch auch zurück auf QOUT..... :?:
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

Nochmal !!! denke an die Zeit.

Compiliere einmal mit /P Schalter und du siehst wie der Quellcode zur Runtime der EXE aussieht.

Du kannst 2 Funktionen machen, einmal MIT dem #command und einmal ohne,
die eine heißt dann Vorschau(), die andere Drucken() ... der Teil mit den Druckausgaben ist identisch (eventuell über #INCLUDE zusammen laden).
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: LPT unter Windows 10 Verion 1511

Beitrag von brandelh »

Man könnte meine Funktion auch so abwandeln, dass sie je nach Inhalt einer Public/Private Variablen einmal ? und ein anderes mal die Druck Ansteuerung nutzt.
Aber alles was mit #COMMAND oder #IF/#ENDIF oder #TRANSLATE eingebaut wird, kann man zur Laufzeit nicht ins Original zurücksetzen.

Das wird alles zur Compilier-Zeit gesetzt !
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: LPT unter Windows 10 Verion 1511

Beitrag von AUGE_OHR »

da ich keinen Drucker mehr am PP Port habe die Frage : funktoniert

Code: Alles auswählen

COPY xyz.TXT > LPT1: 
noch unter Windows 10 :?:

wenn ja würde ich den ganzen "Druck" z.b. mit

Code: Alles auswählen

SET ALTERNATE TO FILE.TXT
umleiten und dann mit dem COPY Befehl an den Drucker schicken.
gruss by OHR
Jimmy
saab-olly
Rookie
Rookie
Beiträge: 18
Registriert: Sa, 17. Mär 2018 18:13

Re: LPT unter Windows 10 Verion 1511

Beitrag von saab-olly »

Hi,

kann leider nicht helfen, da ich keinen LPT mehr habe :-(

Die App von Hubert hat mir super geholfen, nachdem ich nun auch die Gültigkeit von Precompiler-Direktiven kapiert habe :-)

ciao Olly
Antworten