La Web del Programador: Comunidad de Programadores
 
    Pregunta:  372 - NUMERO DE SERIE
Autor:  Ferreira Leandro
¿ Tiene algun comando de proteccion para las copias de los programas escritos en clipper ?
¿ tiene algun comando en clipper que dé el numero de serie de disco duro o disco 3 1/4 ?
Gracias

  Respuesta:  Antonio Gil Mateos
Tengo un sistema de proteccion basado en el núm. de serie del disco
que al mismo tiempo trabaja con claves, superando el problema que se planteaba cuando se reinstalaba el sistema o se formateaba el disco.

  Respuesta:  Hipolito Padron
Amigo, si estas pensando en proteger tu programa usando el serial del disco duro donde se instala, para evitar que luego alguien lo copie y corrar en otra maquina, te indico lo siguiente que sucederia si alguien decide forfmatear el disco e instalar el sistema operativo nuevamente, aun teniendo un respaldoe xtaco del disco o del sistema, este no correra, si eso es lo que quieres hacer, te recomiendo que pienses en grande, si tu aplicación es realmente buena, solo protege el cambio del nombre de la empresa o tu cliente, cuando los demas quieran tener tu sistema y necesiten cambir el nombre ellos lo haran.
A proposito otra forma de leer el serial del volumen es

?dir>vol.txt
x:=fopen(vol.txt)
?fread(x,1,50 o mas)
luego depura la linea y eso es todo

es mejor que usar un libreria de bajo nivel, de esa manera evitas problemas de memeoria o comptibilidad con sistemas operativos

  Respuesta:  Gerardo A. Mendoza
Hola:
Para tu desfortuna clipper no cuenta con ninguna de las funciones que requieres, para eso te puedes apoyar en librerías de terceros como: CA-Tools, Fast, SuperLib, Funcky, Nanfor y demás. En los siguientes sitios puedes encontrar algunas rutinas interesantes que te pueden ayudar:
ftp://www.abits.com.mx/
http://www.iag.net/~philb/
http://www.freewarehome.com/
http://www.geocities.com/SiliconValley/4231/
Suerte!
Saludos :-)

  Respuesta:  Juan Carlos Spichiger
Efectivamente hay una funcion que puede leer el número de serie del disco duro.
Lo que tienes que hacer para que no te pirateen tu programa es al principio de tu programa comparar el numero de serie del disco duro con el que originalmente pusiste en tu codigo del programa.
Entonces cuando alguien trate de copiar tu software a otro computador, tu programa hara la comparación y se dará cuenta de que los numeros de serie son distintos, dando el mensaje respectivo de que se trata de una copia no autorizada y Listo!!!!!!!

Ojo: Hay otras formas más profesionales de hacer esto, pero esta es la más simple. Nos vemos. Suerte!!!


  Respuesta:  [email protected]
Existen varias instrucciones, ponte en contacto conmigo y te mandaré un programa de ejemplo.
Un saludo

  Respuesta:  Rafa
No conozco comandos de protección para las copias de los programas en Clipper, tienes que montártelo con ficheros ocultos u otras técnicas.
Para saber el número de serie de un disco duro o un disquete puedes usar la función VOLSERIAL() de la librería CATOOLS. La información que te da la guía Norton (en Clipper 5.3) es esta:
VOLSERIAL()
Determines the DOS disk serial number
Syntax
VOLSERIAL([]) --> nVolSerial
Argument
Designates the drive whose volume serial number is queried.  The default is the current disk drive.
Returns
VOLSERIAL() returns the volume serial number of the DOS  disk, hard disk, or a 0, when you are not dealing with a DOS 4.0 or higher disk (see Notes).  When the current drive is unavailable, it returns -1.
Description
VOLUME SERIAL NUMBER
Beginning with DOS version 4.0, every floppy or hard disk receives a volume serial number during formatting.This is a 32-bit number is created by DOS using the date, clock time, and a counter.
Notes
_ Incompatibilities are possible.
_ The function always returns a value from the disk parameter block of a floppy or hard disk.  Based on the Microsoft recommendation for DOS versions prior to 4.0, a value of 0 is returned.
Example
Query the volume serial number:
? VOLSERIAL() // 0, when no DOS 4.x disk
Espero que te sirva compañero.

  Respuesta:  Pau Hernandez
Contesto a la segunda parte de la pregunta:
Comando para el numero de serie del disco duro o de 3 1/4.
Sí, existe uno, en las CA-Tools que es ´Volserial()´
Se utiliza así:
nserie := volserial(´c:´)
Entre paréntesis debe ponerse el nombre de la unidad de la que se desea saber el número de serie.

  Respuesta:  Fale Gómez
Te puedo decir que existe una librería para clipper FASTLIB que incluye la función DISKSERNUM(). la cuál te devuelve el nº de serie del volumen que especifiques, si no recuerdo mal creo que por números o sea 1=A, 2=B, 3=C..etc.
Espero haberte solucionado el problema. Yo mismo llevo muchos años utilizando esta función para evitar copias piratas de mis programas vendidos.