Delphi-PRAXiS
Seite 1 von 7  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Smartcard auslesen, Kommandos senden (https://www.delphipraxis.net/164316-smartcard-auslesen-kommandos-senden.html)

newuser01 8. Nov 2011 07:35

Smartcard auslesen, Kommandos senden
 
Hallo,

ich möchte ein kleines Tool schreiben, um eine Smartcard auszulesen. Es solln also einfach nur Kommandos zur Karte gesendet werden und dann wird das "Answer" der Karte ausgewertet. Die Kommandos hab ich und wie ich die Antworten der Karte auswerte weis ich auch. Mir fehlen aber infos wie ich das in Delphi realisieren könnte. Vielleicht gibt es ja Free Komponenten die auf den (Comport, Cardreader) zugreifen, sich also verbinden können und dann sowas wie SerialPort1.Write(kommando) oder der gleichen machen.

Ich will also nicht direkt auf die Karte schreiben sondern nur Kommandos senden und das Answer anzeigen lassen, mehr nicht.

Vielleicht könnt Ihr ja weiterhelfen.

DeddyH 8. Nov 2011 07:49

AW: Smartcard auslesen, Kommandos senden
 
Schau mal bei TComPort oder ASYNC PRO.

mquadrat 8. Nov 2011 11:07

AW: Smartcard auslesen, Kommandos senden
 
Google sagt:

http://www.vclcomponents.com/Delphi/...nent-info.html

newuser01 8. Nov 2011 16:24

AW: Smartcard auslesen, Kommandos senden
 
Ok thx, also ich versuch mich dann mal an die Kompo "TComPort" und stoß schon auf das erste Problem :-D Naja bin halt Hobby Programmierer und lang lang ist her, wo ich mal was gemacht habe :-D

Also die Eigenschaften von ComPort bei BaudRate im Objektinpektor sind mit (br9600, br115200) usw. angegeben. Wenn ich jetzt also versuche mit:

Code:
ComPort.BaudRate := 'br'+combo_baudrate.Text;
zu übergeben, kommt die Meldung "Inkompatible Typen: TBaudRate und TCaption"

Kann ich da irgendwie Konvertieren? Auch wenn ich direkt die BaudRate setzen will mit:

Code:
ComPort.BaudRate := br9600;
kommt die Meldung, "Undefinierter Bezeichner br9600"

DeddyH 8. Nov 2011 16:28

AW: Smartcard auslesen, Kommandos senden
 
Es ist zwar eine blöde Frage, aber die Unit CPort ist eingebunden? Eigentlich muss sie das ja sein, sonst könntest Du auf TComPort ja auch nicht zugreifen.

newuser01 8. Nov 2011 16:43

AW: Smartcard auslesen, Kommandos senden
 
Ich habe gerade herrausgefunden das man mit

Code:
ComPort.ShowSetupDialog
einen Setup Dialog aufruft, wo alle Einstellungen gesetzt werden können, nur möchte ich das so nicht sondern selbst eine Settings Form machen wo ich dann die Settings in einer Ini speicher. Das hab ich ja schon alles fertig und die Werte werden ja dann zb. aus der INI wie oben zu sehen in "combo_baudrate" geladen, müssen halt nur noch übergeben werden. Aber scheinbar kann man nur über diesen "ShowSetupDialog" Einstellungen tätigen.

mquadrat 8. Nov 2011 16:46

AW: Smartcard auslesen, Kommandos senden
 
Alles was du im Objektinspektor setzen kannst, kannst du auch im Code setzen

DeddyH 8. Nov 2011 16:46

AW: Smartcard auslesen, Kommandos senden
 
Das kann aber nicht sein.
Zitat:

Delphi-Quellcode:
property BaudRate: TBaudRate read FBaudRate write SetBaudRate;

Das ist eine ganz normale Property mit Setter, der auch nichts wirklich Außergewöhnliches tut. Der Fehler muss woanders liegen.

newuser01 8. Nov 2011 16:49

AW: Smartcard auslesen, Kommandos senden
 
Code:
ComPort.Port := 'COM1';
kann ich setzen aber die anderen Sachen nicht oder ich mach fehler dabei

DeddyH 8. Nov 2011 16:54

AW: Smartcard auslesen, Kommandos senden
 
Anscheinend Letzteres, bei mir klappt das (getestet unter Delphi 7 Pro) ohne Probleme.

[edit] Hier meine komplette Unit (ich habe die Komponente nicht installiert, sondern erzeuge sie dynamisch):
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CPort;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FComPort: TComPort;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FComPort := TComPort.Create(self);
  FComPort.BaudRate := br9600;
  FComPort.Port := 'COM1';
end;

end.
Ich bekomme lediglich eine Warnung, dass Win32Check plattformspezifisch ist, ansonsten lässt sich das Programm ohne Weiteres starten. [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.
Seite 1 von 7  1 23     Letzte »    

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