Einzelnen Beitrag anzeigen

Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: COM Port verbinden & trennen

  Alt 10. Okt 2005, 11:16
Mein Problem konnte ich leider noch net damit lösen.

Delphi-Quellcode:
var

DeviceName: PChar;
ComFile: THandle;
DruckText: String;
BytesWritten: dword;

procedure TForm1.Button4Click(Sender: TObject);

begin
 //Drucken ->

  //StrPCopy(DeviceName, 'COM1:');
  DeviceName := 'COM1:';
  ComFile := CreateFile(pchar(DeviceName),GENERIC_WRITE, 0, Nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

  //-----------------------------------------------------------------------

  DruckText := chr(27)+ chr(64); // ESC @ -> Drucker initialisieren.
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(27)+ chr(116)+ chr(0); // ESC t 0 -> Select character code table.
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(27) + 'a' + chr(1); //ESC a 1 -> Zentrieren der Daten.
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(29)+chr(66)+ '0'; // GS B n -> 1 = schwarz hinterlegt ,0 = normal
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := 'PC-Seriennummer:'+ chr(0); //SERIAL := 'Beschreibung_2' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := '044436101556'+ chr(0); //SERIAL := '044436101556' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

  DruckText := chr(29)+ chr(104)+ chr(30); // Set heigt (GS h 120)
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(29)+ chr(119)+ chr(1); // Set width (GS w 30)
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(29) + 'k' + chr(4); //+ chr(0); //GS k 4
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := '044436101556'+ chr(0); //SERIAL := '044436101556' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := 'MAC-Adresse:'+ chr(0); //SERIAL := 'Beschreibung_1' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := '00-02-2d-66-f2-57' + chr(0); //MAC := '00-02-2d-66-f2-57' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(10);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

  DruckText := chr(29)+ chr(104)+ chr(30); // Set heigt (GS h 120)
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(29)+ chr(119)+ chr(1); // Set width (GS w 30)
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := chr(29) + 'k' + chr(4); //+ chr(0); //GS k 4
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  DruckText := AnsiUpperCase('00-02-2d-66-f2-57')+ chr(0); //MAC := '00-02-2d-66-f2-57' + chr(0);
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

  DruckText := chr(29) + chr(12); // Etikettenvorschub
  WriteFile(ComFile, PChar(DruckText)^, Length(DruckText), BytesWritten, NIL);

  //-----------------------------------------------------------------------

 CloseHandle(ComFile);
end;
Das ist der Code.

Aber das Initialisieren des Druckers geht nicht.

Wenn ich drucken will, muss ich mit einem anderen Tool den Port connecten und wieder trennen, dann druckt er ohne Probleme bis zum nächsten reboot.

Drucker: TM-L60II von Epson
Christian Hermann
  Mit Zitat antworten Zitat