Compañeros:
Intento evitar las copias piratas de mi sistema mediante la lectura del nº de serie del PC. Lo he intentado con 2 metodos distintos:
a) nSerialHD( "C:" ) --> funcion de FWH
b) mediante oDisk := TDiskInfo():New( "C:" )
nserie:=oDisk:NumSerie() //Numero de Serie
En _, me devuelve un numero pero SIEMPRE es el mismo probandolo incluso en distintos PC.... Deberia ser distintos, no? ¿ Como es posible ???
Alguna solución ??
Mil gracias.
LORENZO
Seguridad antipirateria
Re: Seguridad antipirateria
Buen día para todos...
oDisk := TDiskInfo():New( "C:" ) // Lo creas
oDisk:NumSerie() //Numero de Serie de C:\
oDisk:Drive( "D:" ) // colocas la nueva unidad
oDisk:NumSerial() // muestras el serial de D:\ el cual acabas de asignar.
Si necesitas utilizar una unidad diferente a C:\ puedes crearlo en método new directo, ya que por defecto se utiliza la unidad C:\. Ejemplo
oDisk := TDiskInfo():New() // Toma la unidad C:\ por defecto
oDisk := TDiskInfo():New( "D:" ) // Así o
oDisk := TDiskInfo():New( "E:" ) // Así
Nota: Estoy trabajando en unas mejoras en la clase TDiskInfo y al final de esta semana la público para que todos la puedan utilizar
Que tal Lorenzo, puedes mostrar por favor el código que utilizas para crear y utilizar el objeto oDisk de TDiskInfo, ya que cuando creas y utilizas el objeto debes hacerlo de esta forma:Loren wrote:Compañeros:
Intento evitar las copias piratas de mi sistema mediante la lectura del nº de serie del PC. Lo he intentado con 2 metodos distintos:
a) nSerialHD( "C:" ) --> funcion de FWH
b) mediante oDisk := TDiskInfo():New( "C:" )
nserie:=oDisk:NumSerie() //Numero de Serie
En _, me devuelve un numero pero SIEMPRE es el mismo probandolo incluso en distintos PC.... Deberia ser distintos, no? ¿ Como es posible ???
Alguna solución ??
Mil gracias.
LORENZO
oDisk := TDiskInfo():New( "C:" ) // Lo creas
oDisk:NumSerie() //Numero de Serie de C:\
oDisk:Drive( "D:" ) // colocas la nueva unidad
oDisk:NumSerial() // muestras el serial de D:\ el cual acabas de asignar.
Si necesitas utilizar una unidad diferente a C:\ puedes crearlo en método new directo, ya que por defecto se utiliza la unidad C:\. Ejemplo
oDisk := TDiskInfo():New() // Toma la unidad C:\ por defecto
oDisk := TDiskInfo():New( "D:" ) // Así o
oDisk := TDiskInfo():New( "E:" ) // Así
Nota: Estoy trabajando en unas mejoras en la clase TDiskInfo y al final de esta semana la público para que todos la puedan utilizar
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
LOREN
Puedes usar la opcion de busqueda en este mismo foro, ahi obtendras todas las respuestas a tus dudas.
( prueba a usar diferentes palabras al tema que buscas y seguro lo encontraras )
Hay varios post de un metodo que anuncio Antonio hace poco en el cual se usa una memoria USB como dispositivo de proteccion e incluye codigo listo para usare.
En mi caso, llevo mucho tiempo usando unas llaves USB de la cia Aladdin con muy buenos resultados.
Saludos
Puedes usar la opcion de busqueda en este mismo foro, ahi obtendras todas las respuestas a tus dudas.
( prueba a usar diferentes palabras al tema que buscas y seguro lo encontraras )
Hay varios post de un metodo que anuncio Antonio hace poco en el cual se usa una memoria USB como dispositivo de proteccion e incluye codigo listo para usare.
En mi caso, llevo mucho tiempo usando unas llaves USB de la cia Aladdin con muy buenos resultados.
Saludos
FWH 10.6 + xHarbour + Borland 582
-
- Posts: 330
- Joined: Fri May 25, 2007 9:06 pm
Amigo:
Yo uso esto, nserie:=Str(nSerialHD()) y luego la encripto.
Este es mi codigo:
Saludos,
Antonio
Function Chequea()
Local Nserie,cEncriptado
nserie:=Str(nSerialHD())
if !Uso_red((Memvar->c_empre ),97,.f.,,,)
Tone(3000,1);Tone(4000,1);Tone(5000,1)
MsgInfo("Error ESTE SISTEMA ES UNA COPIA")
Return (.F.)
Endif
Go top
if eof().or.(Memvar->c_empre)->Fon_emp=spac(30)
MsgStop(" NO EXISTE DATOS DEFINIDOS, POSIBLE COPIA ")
close all
Return .f.
Endif
cEncriptado := Cript((nSerie),(Memvar->var_enc))
If cEncriptado#trim((Memvar->c_empre)->Fon_emp)
MsgStop(" ERROR: ESTE SISTEMA ES UNA COPIA ")
close all
Return .f.
endif
Dbclosearea()
Return .t.
Yo uso esto, nserie:=Str(nSerialHD()) y luego la encripto.
Este es mi codigo:
Saludos,
Antonio
Function Chequea()
Local Nserie,cEncriptado
nserie:=Str(nSerialHD())
if !Uso_red((Memvar->c_empre ),97,.f.,,,)
Tone(3000,1);Tone(4000,1);Tone(5000,1)
MsgInfo("Error ESTE SISTEMA ES UNA COPIA")
Return (.F.)
Endif
Go top
if eof().or.(Memvar->c_empre)->Fon_emp=spac(30)
MsgStop(" NO EXISTE DATOS DEFINIDOS, POSIBLE COPIA ")
close all
Return .f.
Endif
cEncriptado := Cript((nSerie),(Memvar->var_enc))
If cEncriptado#trim((Memvar->c_empre)->Fon_emp)
MsgStop(" ERROR: ESTE SISTEMA ES UNA COPIA ")
close all
Return .f.
endif
Dbclosearea()
Return .t.