AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi ExtEscape Unterschied Windows XP und WinDows 7
Thema durchsuchen
Ansicht
Themen-Optionen

ExtEscape Unterschied Windows XP und WinDows 7

Ein Thema von Pro_RJ · begonnen am 3. Dez 2013 · letzter Beitrag vom 3. Dez 2013
Antwort Antwort
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#1

ExtEscape Unterschied Windows XP und WinDows 7

  Alt 3. Dez 2013, 14:29
Halli hallo,
Ich habe eine Kassenschublade an einem Bondrucker (BIXOLON SRP-350plusII) angeschlossen.
jetzt möchte ich die ESC-Squenz zum öffnen an den Drucker senden.
Dafür habe ich mir (mit Hilfe aus dem Forum ) ein kleines Testtool geschrieben mit dem das auch fast perfekt geht.


Delphi-Quellcode:
procedure TForm10.Button4Click(Sender: TObject);
type
  TPassThroughData = record
    nLen : Integer;
    Data : array[0..4] of byte;
  end;

  procedure DirectPrint(s:String);
  var PTBlock : TPassThroughData;
      res : Integer;
  begin
    PTBlock.nLen := length(s);
// Showmessage(Inttostr(length(s)));
// Setlength(PTBlock.data,PTBlock.nLen);
// Move(S[0],PTBlock.data[0],PTBlock.nLen);
// StrPCopy(@PTBlock.Data, s);
    Fillchar(PTBlock.Data[0],Sizeof(PTBlock.Data),#0);
    PTBlock.nLen := 5;
    PTBlock.Data[0] := $1B;
    PTBlock.Data[1] := $70;
    PTBlock.Data[2] := $0;
    PTBlock.Data[3] := $32;
    PTBlock.Data[4] := $32;

// res := Escape(Printer.Handle, PASSTHROUGH, sizeof(TPassThroughData), @PTBlock, nil);
    res := ExtEscape(Printer.Handle,
              PASSTHROUGH,
              sizeof(TPassThroughData),
              @PTBlock,
              0,
              nil);
    case res of
      SP_ERROR : Showmessage('SP_ERROR');
    end;
// showmessage(Inttostr(res));
  end;
var res : Integer;
begin
  Printer.PrinterIndex := CBDrucker.ItemIndex; // PrinterIndex auf Standardwert setzen
  Printer.BeginDoc;
// DirectPrint(#27 + 'p' + #0 + #50 + #50);
// DirectPrint([$1B,$70,$0,$32,$32]);
  DirectPrint('');
  Printer.EndDoc;
  res := GetLastError;
  Showmessage('Error : ' + Inttostr(Res) + #13#10+SysErrorMessage(res));
  
end;
der Ablauf ist der, ich drücke auf einen Button und die Schublade soll auf gehen.
Schließe ich den Drucker an einem Windows XP(Prof. 32 Bit SP3) Rechner an geht die Schublade auf.
Schließe ich aber den gleichen Drucker an einen Windows 7(Prof. 32 Bit ) Rechner reagiert zwar der Drucker aber die Schublade geht nicht auf, obwohl ja exakt das gleiche gemacht wird.

Normale Text-Ausdrucke werden ordentlich ohne Probleme ausgedruckt.
Der Drucker ist per USB angeschlossen

Das Ergebnis von ExtEscape(). ist auf beiden Rechnern „5“
GetLastError ist auf beiden Rechnern immer „0“
Ich habe es auch schon mit Escape() versucht. Ist aber genau das gleiche Ergebnis.
Die Sequenz die gesendet wird ist auch ok, sonst würde die Schublade ja auch dem XP-Rechner auch nicht aufgehen.
An was kann es noch liegen, warum es auf dem XP geht und auf dem Windows 7 nicht.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: ExtEscape Unterschied Windows XP und WinDows 7

  Alt 3. Dez 2013, 17:15
Schau dir mal diese Unit in der Code-Library an.
http://www.delphipraxis.net/23387-da...er-senden.html
Hierbei wird der Druckertreiber umgangen und nur der Spooler angesprochen.
Das funktioniert zuverlässig mit allen Druckerports (LPT, USB, Netzwerk,...).
fork me on Github
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz