Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 07-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Aunque poco mas se puede decir que lo que ya te dijeron, voy a poner un poco de código a la teoría.

Aquí te dejo tres funciones, la primera comprueba si el programa esta registrado, devolviendo TRUE si lo esta, colocala en las partes de tu programa en la que necesites comprobar si el programa esta registrado (al iniciar, al guardar, etc). La siguiente registra el programa pasándole como parámetro el código de registro, y la tercera genera el código de registro, esta evidentemente no la incluirás dentro de tu programa sino en un programa aparte que utilizaras para generar los códigos cuando el cliente pague.

El parámetro Ident que aparece en las tres funciones tiene los siguientes usos. Si es un valor constante todos tus programas tendrán el mismo código de registro, pero puede ser el nombre del usuario o el numero de serie del disco duro, por ejemplo. En el primer caso para cada usuario se generaría un código diferente y en el segundo habría que generar un código diferente cada vez que el programa se instalase en un equipo diferente.

Código Delphi [-]
uses Registry;

const
  Clave = 1978;

function Cifrar(Texto: string; Clave: Longint): string;
var
  i: integer;
begin
  Result:= '';
  RandSeed:= Clave;
  for i:= 1 to Length(Texto) do
    Result:= Result + IntToHex(Byte(Texto[ i ]) xor Byte(Random(256)),2);
end;

function EstaRegistrado(Ident: string): boolean;
begin
  Result:= FALSE;
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey('\SOFTWARE\TuAplicacion',FALSE) then
    begin
      if ValueExists('Reg') then
        if ReadString('Reg') = Cifrar(Ident, Clave) then
          Result:= TRUE;
      CloseKey;
    end;
  finally
    Free;
  end;
end;

function Registrar(Ident: string; Codigo: string): boolean;
begin
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey('\SOFTWARE\TuAplicacion',TRUE) then
    begin
      WriteString('Reg',Codigo);
      CloseKey;
    end;
  finally
    Free;
  end;
  Result:= EstaRegistrado(Ident);
end;

function GenerarCodigo(Ident: string): string;
begin
  Result:= Cifrar(Ident, Clave);
end;

La funcion Cifrar se utiliza como un generador de Hash pero puede sustituirse por cualquier algoritmo mejor, md5 por ejemplo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usb en puerto serie :p D-MO Humor 10 30-06-2006 06:16:45
¿Se puede capturar los datos de un puerto serie de otra aplicación? NPIdea Varios 2 06-06-2006 13:45:19
Puerto serie esquerda21 Varios 2 12-05-2004 23:58:52
Impresoras Serie Fita Impresión 2 03-03-2004 20:21:53
Compartir Impresora por Puerto Serie para Aplicación en DOS sarackganda Windows 0 26-09-2003 15:55:36


La franja horaria es GMT +2. Ahora son las 15:18:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi