Hallo zusammen,
ich habe ein SmartCard-Reader von Towitoko
und versuche mit Hilfe einer c# Schnittstelle
die Windows-Bootschaften zum empangen und wieder zu entfernen und auch die Ereignisse vom Server (z.B OnCardValid,OnCardLocked ...) zu realisiren.
Unter Delphi kann man wie folgendes realisiren. Aber Unter C# wie kann man diese verwirklichen ? Für Ihre Hilfe wäre ich
sehr dankbar.
type
ESmartCard = Exception;
...
TCardEvent = procedure (Sender: TObject; DeviceIndex: Integer) of object;
TCardLockEvent = procedure (Sender: TObject; DeviceIndex, TaskIndex: Integer) of object;
TSearchEvent = procedure (Sender: TObject; Port, Progress: Integer) of object;
TSmartCard = class(TComponent)
Private
...
FWindowHandle: HWND;
procedure MyWndProc(var Msg: TMessage);
....
Implementation
constructor TSmartCard.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FWindowHandle := AllocateHWnd(MyWndProc);
...
end;
procedure TSmartCard.MyWndProc(var Msg: TMessage);
type Int = {$IFDEF WIN32}ShortInt{$ELSE}Integer{$ENDIF};
var A,B: LongInt;
begin
with Msg do
begin
if Msg <> TDEVMSG then
Result := DefWindowProc(FWindowHandle,
Msg, wParam, lParam);
else if not FEnabled then begin
if WParam = MsgActive then
Comand(cmCard+cmUnlock,nil,0,nil,0);
end else begin
if WParam = MsgActive then begin
SetStatusTyp('CrdReady',['']);
FDevice:=Int(LParam and $FFFF);
if Assigned(FOnCardActive) then begin
try
FOnCardActive(self,FDevice);
finally
if FAutoUnlock then
Comand cmCard+cmUnlock,nil,0,nil,0);
end;
...
end;
end;
ich habe ein SmartCard-Reader von Towitoko
und versuche mit Hilfe einer c# Schnittstelle
die Windows-Bootschaften zum empangen und wieder zu entfernen und auch die Ereignisse vom Server (z.B OnCardValid,OnCardLocked ...) zu realisiren.
Unter Delphi kann man wie folgendes realisiren. Aber Unter C# wie kann man diese verwirklichen ? Für Ihre Hilfe wäre ich
sehr dankbar.
type
ESmartCard = Exception;
...
TCardEvent = procedure (Sender: TObject; DeviceIndex: Integer) of object;
TCardLockEvent = procedure (Sender: TObject; DeviceIndex, TaskIndex: Integer) of object;
TSearchEvent = procedure (Sender: TObject; Port, Progress: Integer) of object;
TSmartCard = class(TComponent)
Private
...
FWindowHandle: HWND;
procedure MyWndProc(var Msg: TMessage);
....
Implementation
constructor TSmartCard.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FWindowHandle := AllocateHWnd(MyWndProc);
...
end;
procedure TSmartCard.MyWndProc(var Msg: TMessage);
type Int = {$IFDEF WIN32}ShortInt{$ELSE}Integer{$ENDIF};
var A,B: LongInt;
begin
with Msg do
begin
if Msg <> TDEVMSG then
Result := DefWindowProc(FWindowHandle,
Msg, wParam, lParam);
else if not FEnabled then begin
if WParam = MsgActive then
Comand(cmCard+cmUnlock,nil,0,nil,0);
end else begin
if WParam = MsgActive then begin
SetStatusTyp('CrdReady',['']);
FDevice:=Int(LParam and $FFFF);
if Assigned(FOnCardActive) then begin
try
FOnCardActive(self,FDevice);
finally
if FAutoUnlock then
Comand cmCard+cmUnlock,nil,0,nil,0);
end;
...
end;
end;
Comment