licença de sofware

Delphi

22/01/2004

Estou precisado desenvolver uma rotina
de licença de sofware ....

Queria algo do tipo:

Quando o meu sistema fosse executado pela primeira vez
ele gerasse um número de identifição ID

E esse número fosse único para cada computador
Por Exemplo Serial do HD ( O ideal é que fosse o que vem
impresso na Etiqueta do Próprio HD.
para evitar que essa ID seja invalidada quando o HD for
formatado, pois ele passa a ter um outro serial

Gerasse um arquivo ou entrada no registro
Contendo Data_Inícial e Data_Final para
controle da qtde de dias de uso (Máximo 30 dias)
Após o término do periodo de avaliação.

Uma tela fosse exibida com a ID do computador
Que seria enviada a mim, para que eu de posse
do ´Gerador de Licença´ (programa criado para gera Licença)
gerasse um número de Licença de acordo com a ID do computador
que seria enviada de volta ao cliente para registrar o produto.


Resumo: Rotina para criar ID
Rotina para gerar Licença

[]´Guialberto


Guialberto

Guialberto

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

22/01/2004

Colega,

Qual é a dúvida então?


GOSTEI 0
Guialberto

Guialberto

22/01/2004

Primeiramente necessito de uma rotina que me forneça o serial
do HD (Número Impresso na etiqueta do próprio HD)

[]´Guialberto


GOSTEI 0
Essistemas

Essistemas

22/01/2004

Função que pega o serial do HD.
Boa sorte !!

Function InformarSerialHD( Drive : String ) : String ;
Var Serial : DWord;
       DirLen, Flags : DWord;
       DLabel : Array[0..11] of Char;
begin
  GetVolumeInformation(PChar(Drive+´:\´),dLabel,12,@Serial,DirLen,Flags,nil,0);
  Result := IntToHex(Serial,8);
end;


[color=blue:a927a24690]Editado pelo Moderador para facilitar a leitura do código.[/color:a927a24690]


GOSTEI 0
Nigro

Nigro

22/01/2004

A fução que o colega essistemas colocou pega o serial lógico do hd, quanto aos outros controle você vai precisar de:
1º) Uma rotina de criptografia
2º) Saber trtabalhar com componentes Indy, que diga-se de passagem a Borland pisou na bola ao retirar exemplos dessa paleta no D7.
3º) Fazer todo o gerenciamento de liberação e serial no banco de dados, eu estou desenvolvendo uma rotina para ler o serial físico do hd, creio que termine hoje, passe seu e-mail, que eu mando, por enquanto apenas o executável, mas para confirmar como você mesmo disse é preciso para fazer um teste 100¬ da minha rotina que o micro seja formatado e verificar novamente o serial e sinceramente não tenho a minima vontade de formatar o micro, então se alguém estiver disposto e formatar e testar com diferentes S.O. eu mando o executável.
Pela rotina que foi colocada aqui no fórum eu contatei que no NT, 2000 e XP essa função em alguns casos retorna apenas um caracter.


GOSTEI 0
Vinicius2k

Vinicius2k

22/01/2004

Função que pega o serial do HD. Boa sorte !!
Function InformarSerialHD( Drive : String ) : String ;
Var Serial : DWord;
       DirLen, Flags : DWord;
       DLabel : Array[0..11] of Char;
begin
  GetVolumeInformation(PChar(Drive+´:\´),dLabel,12,@Serial,DirLen,Flags,nil,0);
  Result := IntToHex(Serial,8);
end;


a função GetVolumeInformation utilizada na rotina acima retorna o número do volume e este muda quando o HD é formatado... não é o número de série do fabricante do HD... desconheço qualquer função capaz de retornar este número, a não ser que vc desca um pouco o nível procure por algum código em Assembler ou C, talvez seja possível essa leitura...

nunca aconteceu comigo, mas já ouvi relatos do que o colega Nigro se referiu sobre o retorno incorreto da função nas versões do Windows que trabalham com NTFS...


GOSTEI 0
Guialberto

Guialberto

22/01/2004

Ok Nigro ....

O meu E-mail: guialberto.soares@ig.com.br

Se me mandar o código eu me desponho a fazer o teste neste
final de semana e te retornar o resultado
Possuo dois HD´s instalados e posso formatar UM para testar.
Quanto a ao S.O. Posso testar com (Windows 98 se) e (Windows XP)
Pois constatimente vivo alternando estre os dois sistemas

[]´Guialberto


GOSTEI 0
Guialberto

Guialberto

22/01/2004

Amigo, não entendi nada !!!

[]´Guialberto


GOSTEI 0
Guialberto

Guialberto

22/01/2004

Ok Nigro ....

estamos aguardando ...
Eu me disponho a testar

[]´Guialberto


GOSTEI 0
Guialberto

Guialberto

22/01/2004

Ok Nigro ....

Desistiu de enviar ?

[]´Guialberto


GOSTEI 0
POSTAR