Página 1 de 1
EXTRAIR O NÚMERO DE SÉRIE DO HD NO CLIPPER???
Enviado: 13 Mai 2005 09:24
por Darlan
Olá !!
Seguinte galera: alguém sabe como carregar o número de série do HD em uma variável ?
Só que tem que ser no clipper 5.1, no visual e no delphi eu sei que dá, mas eu só manjo de
clipper... (preciso para colocar anti-pirataria no programa). No DOS se você der "LABEL C:"
tá lá o número, mas como o programa pode ler esse número?
Ou então se desse para pegar um número fixo do windows por exemplo, do registro... algum
arquivo TXT ou INI e carregar numa váriavel? Alguém sabe onde verificar o número de série
através do windows? Ou algum outro número que seja fixo a cada instalação do windows?
Preciso de uma luz... desde já agradeço !!!
UM ABRAÇO !!!
Darlan (Mafra-SC)
Enviado: 13 Mai 2005 13:39
por Grings
.
Enviado: 14 Mai 2005 11:11
por Clipper
Prezado Colega
Usar o número de série do volume do DOS para proteção é a maior furada, existem diversos programas e até função em clipper para modificar este número, desta forma bastaria para um espertinho pegar o número da máquina onde está instalado o sistema e duplica-lo em outra.
Até logo.
Marcelo
Rotina de Serie
Enviado: 15 Mai 2005 12:03
por marbio
Ola,
V se te ajuda
Código: Selecionar todos
c_serial()
***************************
function C_SERIAL
***************************
local Local1
Local1:= 0
run VOL >ARQUIVO
texto:= fopen("ARQUIVO", 2)
ntam:= fseek(texto, 0, 2)
fseek(texto, 0, 0)
cvol:= Space(ntam)
if (fread(texto, @cvol, ntam) != ntam)
fclose(texto)
return .F.
endif
npos:= At("volume ‚", cvol)
npos:= npos + 9
cnoserial:= SubStr(cvol, npos, 9)
fclose(texto)
for x:= 1 to 9
letra:= SubStr(cnoserial, x, 1)
Local1:= Local1 + Asc(letra)
next
erase ARQUIVO
if (!file("REGISTRO.DBF"))
tone(400, 3)
tone(400, 3)
clear screen
clear gets
setcursor(0)
set color to gr+*/n
@ 23, 0 say ;
"O Sistema p“de abrir o Arquivo de Registro. Prov vel causa: CàPIA PIRATA!!!"
InKey(0)
setcursor(1)
set color to w/n
clear screen
clear gets
set color to w/n
CLEAR
CLOSE
QUIT
endif
use REGISTRO
registro:= nregistro
if (registro != Local1)
tone(400, 3)
tone(400, 3)
clear screen
clear gets
setcursor(0)
set color to gr+*/n
@ 11,21 clear to 13,58
@ 11,21 to 13,58
@ 12,22 say "Haaahaaaa!!! Copia nao autorizada!!!"
InKey(0)
setcursor(1)
set color to w/n
clear screen
clear gets
set color to w/n
CLEAR
CLOSE
QUIT
endif
Registro
Enviado: 15 Mai 2005 12:13
por marbio
Ola, eu esqueci da funcao de registro.
Grava o numero de serie num DBF com valor diferente, vc vai ver.
t+
Código: Selecionar todos
set scoreboard off
set date british
criadbf()
g_serial()
function CRIADBF
estru:= {}
AAdd(estru, {"NREGISTRO", "N", 5, 0})
dbcreate("REGISTRO", estru)
return 0
function G_SERIAL
local Local1
Local1:= 0
run VOL C: > ARQUIVO
texto:= fopen("ARQUIVO", 2)
ntam:= fseek(texto, 0, 2)
fseek(texto, 0, 0)
cvol:= Space(ntam)
if (fread(texto, @cvol, ntam) != ntam)
fclose(texto)
return .F.
endif
npos:= At("volume ‚", cvol)
npos:= npos + 9
cnoserial:= SubStr(cvol, npos, 9)
fclose(texto)
for x:= 1 to 9
letra:= SubStr(cnoserial, x, 1)
Local1:= Local1 + Asc(letra)
next
use REGISTRO
append blank
replace nregistro with Local1
commit
erase ARQUIVO
@ 23, 0 say [Remova o Arquivo "C:\LIXO"]
return 0
* EOF
Enviado: 15 Mai 2005 23:06
por Darlan
Valeu Marbio !!! Vou tentar...
Obrigado pela ajuda !!
UM ABRAÇO !!!
Re: EXTRAIR O NÚMERO DE SÉRIE DO HD NO CLIPPER???
Enviado: 16 Mai 2005 14:45
por Maligno
Darlan escreveu:No DOS se você der "LABEL C:" tá lá o número, mas como o programa pode ler esse número?
Ler esse número é fácil. Tenho função pronta para ser utilizada dentro do próprio Clipper. Mas, como bem disse o Marcelo, é uma furada. Esse número pode ser modificado de forma relativamente fácil. Sem falar que é uma proteção muito manjada. E tem também o transtorno para o cliente que dependerá de sua intervenção a cada formatação do HD.
Você precisaria de um número único que não possa ser modificado. Se falamos de HD, existe o número de série gravado na fábrica. Não pode ser alterado, mas pode ser lido. Mas não é uma tarefa banal e, pelo Clipper propriamente, não é possível. A não ser por meio de um artifício especial, que pode ou não funcionar, dependendo da idade do HD e da versão do Windows. Se interessar, leia a seguinte
mensagem.
[]'s
Maligno
http://www.buzinello.com/prg