Visual Basic - llave hasp usb

Life is soft - evento anual de software empresarial
 
Vista:

llave hasp usb

Publicado por governador (21 intervenciones) el 27/03/2006 22:13:52
Hola, necesito implementar este código de delphi a visual basic 6, es para leer una llave hasp usb, para proteger aplicaciones.
Agradecería la ayuda asi como este código es valido y puede ayudar a usuarios de delphi

Gracias de antemano



interface
uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons,
StdCtrls, ExtCtrls, SysUtils, Dialogs, func_loc;

Function ChequeaLlaveHasp : Boolean;

const
IS_HASP = 1;
GET_HASP_CODE = 2;
LPT_IBM_ALL_HASP25 = 0;
LPT_IBM_ALL_HASP36 = 50;
LPT_NEC_ALL_HASP36 = 60;

var
LptNum ,SeedCode : longint;
Pass1 : longint;
Pass2 : longint;
p1,p2,p3,p4 : longint;
Service : longint;

function HDDInstall(InstallMode :DWORD):DWORD;stdcall; external 'HINSTD.dll';

implementation
uses Unirest;

procedure hasp (Service, SeedCode, LptNum, Pass1, Pass2 : longint;
var p1,p2,p3,p4 : longint);external;

{$L hasp32b.obj}

Function ChequeaLlaveHasp : Boolean;
begin
Result := True;
glo.TipoHasp := HASP_NO;

GrabaLog(' ');GrabaLog(' ');

Service := IS_HASP;
LptNum := LPT_IBM_ALL_HASP25;
SeedCode := 300;
Pass1 := 32076;
Pass2 := 20836;
p1 := 0;

hasp ( Service, SeedCode, LptNum, Pass1, Pass2, p1, p2, p3, p4 );
if p1 = 0 then begin
//---- Es posible que no esté instalado el driver de la Llave ---
HDDInstall(1);
hasp ( Service, SeedCode, LptNum, Pass1, Pass2, p1, p2, p3, p4 );
end;

if p1 <> 0 then begin
//-- desconocida ---------------------------
glo.TipoHasp := HASP_qq;

//-- Ver si es una HASP -----------------------------------------------
Service := GET_HASP_CODE;

Pass1 := 32076;
Pass2 := 20836;
hasp ( Service, SeedCode, LptNum, Pass1, Pass2, p1, p2, p3, p4 );

if (p1 <> 807) OR (p2 <> 46153) OR (p3 <> 31738) OR (p4 <> 6446) then Begin
//-- VerTE----------------------------------------------
Pass1 := 3606;
Pass2 := 20508;
hasp ( Service, SeedCode, LptNum, Pass1, Pass2, p1, p2, p3, p4 );
if (p1 = 323) AND (p2 = 18944) AND (p3 = 33818) AND (p4 = 8336) then
glo.TipoHasp := HASP_TEQID;
end
else glo.TipoHasp := HASP_TARTI;
end;

if glo.TipoHasp = HASP_NO then BEGIN
Mensaje('¡¡ Sistema NO AUTORIZADO !!'+#13+#13+' (Necesita Acceso)',2);
GrabaLog(' ------- SIN LLAVE HASP --------');
END;

if glo.TipoHasp = HASP_ALIEN then begin
Mensaje('** Error en Llave de Acceso **'+#13+
INTTOSTR(Service)+'-'+
INTTOSTR(SeedCode)+'-'+INTTOSTR(LptNum)+'-'+
INTTOSTR(P1)+'-'+INTTOSTR(P2)+'-'+INTTOSTR(P3)+'-'+INTTOSTR(P4)+#13+#13+
'Existe una llave pero no es la CORRECTA para este programa',2);
GrabaLog(' ** HASP_ALIEN : '+INTTOSTR(Service)+'-'+INTTOSTR(SeedCode)+'-'+INTTOSTR(LptNum));
GrabaLog(' '+INTTOSTR(P1)+'-'+INTTOSTR(P2)+'-'+INTTOSTR(P3)+'-'+INTTOSTR(P4));
end;

if glo.TipoHasp = HASP_TEQID then GrabaLog(' TE');
if glo.TipoHasp = HASP_TARTI then GrabaLog(' TI');

glo.respuesta := 0;

Result := (glo.TipoHasp = HASP_T) OR (glo.TipoHasp = HASP_T);

end;

end.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder