Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   COM Port verbinden & trennen (https://www.delphipraxis.net/54568-com-port-verbinden-trennen.html)

Pump3r 6. Okt 2005 17:14


COM Port verbinden & trennen
 
Hi hab mal ne Frage,

ich würd gern zu com port 1 verbinden und ihn dann wieder trennen.

Das ganze hat den Sinn das mein Labeldrucker richtig initialisiert wird.

Kann mir wer bei dem Problem helfen?

Danke. :>

chaosben 6. Okt 2005 19:01

Re: COM Port verbinden & trennen
 
Hi Pumpe3r!

Aus meiner VB-Zeit erinnere ich mich noch an ein ActiveX-Steuerelement namens "ComControl" ... aber frag mich mal wo die geblieben ist ... keine Ahnung

Ansonsten sollte es hiermit gehen.

DP-Maintenance 6. Okt 2005 19:05

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Fragen / Anregungen zur DP" nach "Internet / LAN / ASP.NET" verschoben.
Das ist wohl keine Frage zur DP, oder?

TrooperMan 6. Okt 2005 19:09

Re: COM Port verbinden & trennen
 
Eventuell reicht es, mal ein File 'com1' zu öffnen. Darüber hab ich damals mal was gemacht. kA ob es heutzutage noch läuft.
Wäre dann ein Assignfile mit einem Rewrite und Closefile.

Der_Unwissende 6. Okt 2005 19:22

Re: COM Port verbinden & trennen
 
Also total super ist TComPort, und wenn du sehen willst was so über den Port läuft, kannst du bei Sysinternals einen PortMonitor bekommen, beides echt super und oft bewährt!

Pump3r 10. Okt 2005 10:16

Re: COM Port verbinden & trennen
 
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. :wall:

Drucker: TM-L60II von Epson

Pump3r 12. Okt 2005 07:14

Re: COM Port verbinden & trennen
 
So ich habs gelöst, danke an euch alle. :>


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz