FoxPro/Visual FoxPro - Codigo que no Entiendo

   
Vista:

Codigo que no Entiendo

Publicado por ismael silva (3 intervenciones) el 19/08/2016 22:14:50
Buenas tardes, estoy haciendo una migración de un código de foxpro, hay un estructura de código que no me permite avanzar por que no la entiendo, en el código se asan dos cadenas a un .vcx llamado armsec (padre: armadillo) y llaman a una función INSTALKEY que por mas que trato de leerla y la depuro no la entiendo, no se si esta clase es propia del programador en su momento o algo propio de fox, les dejo el código anexo para ver si me ayudan, mil gracias. Tiene que ver con una autorización de red, eso me dijeron, pro no se :(



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
** Created 11/23/03 09:51:20 AM
** Copyright Avian Management Services 2003
** Checked 27/11/03 DLM - OK
#If .F.
TEXT
********************************
*   HELP BUILDER COMMENT BLOCK *
********************************
*:Help Documentation
*:Purpose:
Checks a name/key pair, and (if valid and not already expired) stores it as the new key.
 
*:Keywords:
InstallKey
 
*:Parameters:
tcName, tcKey
 
*:Returns:
Returns non-zero if the code is valid.
 
*:Remarks:
Note: an expired key is still valid!
You must check the EXPIRED environment variable, or the value returned by
the GetLastError() function, to see if it's expired or not.
 
*:Example:
_screen.oArmSec.InstallKey('FRED', '12334-5678')
*:EndHelp
ENDTEXT
#Endif
 
Lparameters tcName,tcKey
Local llRetVal, lnRetVal
Store .T. To llRetVal
 
 
If Vartype(tcName) <> 'C'
	This.errorhandler('INSTALLKEY','tcName must be type C')
	llRetVal = .F.
Endif
 
If Vartype(tcKey) <> 'C'
	This.errorhandler('INSTALLKEY','tcName must be type C')
	llRetVal = .F.
Endif
 
If llRetVal = .T.
	lnRetVal = InstallKey(tcName,tcKey)
Endif
 
If lnRetVal = 0
	llRetVal = .F.
Endif
 
If llRetVal = .F.
	This.errorhandler('INSTALLKEY','Unable to Install key.  UserName / Key - ' + tcName + ' / ' + tcKey)
	This.getlastError('INSTALLKEY')
Endif
Return llRetVal



Estoy mas pedido que LOST....
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

Codigo que no Entiendo

Publicado por wences (30 intervenciones) el 22/08/2016 11:57:52
Este código recibe 2 parametros (usuario y clave) ... comprueba que son caracter los 2 (no admite otra cosa) y hace una llamada a la funcion (procedure , programa o lo que sea) llamada Installkey a la que pasa los 2 parametros que recibio (vamos es un puente nada mas) ...

1
InstallKey(tcName,tcKey)

El tema es donde está esa función Installkey , eso es lo que tienes que encontrar ... la función debe devolver un valor distinto de 0 para que funcione correctamente... si lo que quieres es saltarte el control solo tienes que poner una linea en el lugar donde pone

1
2
3
If lnRetVal = 0
	llRetVal = .F.
Endif

solo tienes que comentarlo y poner llRetval=.T. y listo te saltaste el control de usuario y clave ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Codigo que no Entiendo

Publicado por ismael silva (1 intervención) el 23/08/2016 17:43:20
Hola gracias por responder, si veo q es una funcion, pero no la consigo en los fuentes , ya estoy al borde, y no puedo comentar la linea ya que la validacion es necesaria :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio Antonio

Codigo que no Entiendo

Publicado por Mauricio Antonio (1367 intervenciones) el 23/08/2016 23:38:34
PORQUE ES NECESARIA???????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Codigo que no Entiendo

Publicado por ismael (1 intervención) el 26/08/2016 03:31:44
Es necesaria por que el cliente lo usa para autenticar el producto.
BUeno estuve indagando y veo que el código donde hace el InstallKey es una invocación a una dll que se llama ArmAccess.dll le llaman Armadillo alli hay una función que se llama InstallKey, pero el cliente no tiene la documentación de la dll, lo que s es que recibe dos parámetros.
Pense en programar una dll nueva y simular el proceso, pero no se que hay dentro de la dl
Adjunto dll.l
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar