Registriert seit: 6. Okt 2005
175 Beiträge
Delphi 7 Enterprise
|
Re: COM Port verbinden & trennen
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
|