Quantcast
Channel: FiveTech Software tech support forums
Viewing all articles
Browse latest Browse all 26219

lectura de un DLL -

$
0
0
EJEMPLO EN DELFI Te puedo dar una idea con algo del código en Delphi, para que veas si puedes adaptarlo. hDLL := LoadLibrary("WINSCARD.DLL") //En los ejemplos uso varias constantes para mayor claridad, cuyos valores son los siguientes: Const MAXIMUM_SMARTCARD_READERS = 10; SCARD_SCOPE_USER = 0; SCARD_S_SUCCESS = 0; Var RetVar : cardinal; ReaderList : string; ReaderListSize : integer; v : array[0..MAXIMUM_SMARTCARD_READERS] of string; i : integer; //Establecer el contexto para un usuario y guardarlo en FContext RetVar := SCardEstablishContext(SCARD_SCOPE_USER, nil, nil, @FContext) if RetVar = SCARD_S_SUCCESS then begin RetVar := SCardListReadersA(FContext, nil, nil, ReaderListSize); if RetVar = SCARD_S_SUCCESS then begin SetLength(ReaderList, ReaderListSize); SCardListReadersA(FContext, nil, Pointer(ReaderList), ReaderListSize); for i := 0 to MAXIMUM_SMARTCARD_READERS do if v[i] <> '' then // Aquí debes almacenar en alguna lista los nombres de los lectores de tarjetas disponibles, que en este caso vienen reportados en la matriz v[] End; End; //Lo que sigue es generalmente manejado en un thread aparte para no bloquear el interfase de usuario, pero puedes hacerlo como tu quieras. //Hay que consultar el contexto para ver si algo ha cambiado function CardWatcherThread(PContext: pointer): integer; var RetVar : cardinal; RContext : cardinal; RStates : array[0..1] of SCARD_READERSTATEA; begin try RContext := cardinal(PContext^); FillChar(RStates,SizeOf(RStates),#0); RStates[0].szReader := SelectedReader; //Es un puntero al nombre del lector que hayas seleccionado RStates[0].pvUserData := nil; RStates[0].dwEventState := ActReaderState; while ReaderOpen do begin RStates[0].dwCurrentState := RStates[0].dwEventState; RetVar := SCardGetStatusChangeA(RContext, -1, RStates, 1); ActReaderState := RStates[0].dwEventState; PostMessage(NotifyHandle, WM_CARDSTATE, RetVar, 0); end; finally Result := 0; end; end;

Viewing all articles
Browse latest Browse all 26219

Trending Articles