Número serial do HD - Anti cópia

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Número serial do HD - Anti cópia

Mensagem por frazato »

Bom dia! uso para controle de licensa de programa um pendriver com se fosse um proteq, igual a que muitas empresas usam para evitar copias do mesmo da seguinte maneira:

1 - Tenho um rotina q valida o uso do sistema checando a existencia do pendriver e liberando o acesso ou não.

2 - Nos terminais que acessam o servidor e gerado um solicitacao para o servidor que responde ao terminal.

3 - Estou terminando o processo de pegar esta atualizacao do pendriver na remoto, igual a varios exemplos de atualizacao online.


Frazato
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Número serial do HD - Anti cópia

Mensagem por Abel »

ola, sygecom,

tentei usar a rotina serial_hd, mas nao deu certo, deu erro de compilacao.
o meu harbour nao entendeu os comandos dllcall, loadlibrary e nem freelibrary.

qual lib tenho que anexar na compilacao ?

uso harbour 3.1 nighty

abracos,
ABEL
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Número serial do HD - Anti cópia

Mensagem por Abel »

asimoes, coloquei a sua function para pegar a serial da placa mae,
mas retornou uma string vazia.

tem algum ajuste para fazer , algum parametro ?

Estou utilizando harbour nighty 3.1

Abracos,
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Número serial do HD - Anti cópia

Mensagem por asimoes »

Abel,

Para compilar o exemplo do sygecom use a lib hbwin

As funções dllcall, loadlibrary e freelibrary.

loadlibrary Use: WAPI_LOADLIBRARY("DiskSerial.dll")
freelibrary Use: WAPI_FREELIBRARY( TDLL )
dllcall Use: HB_DYNCALL(TDLL,32,"GetSerialNumber",0,@lpBuffer )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Número serial do HD - Anti cópia

Mensagem por Abel »

asimoes, agora compilou usando os comandos q vc passou,
mas ao executar e chegar na linha RETPORTA1:=HB_DYNCALL(TDLL,32,"GetSerialNumber",0,@lpBuffer )
ele simplesmente fecha o programa.
o conteudo na variavel Tdll apos colocar wapi_loadlibrary ficou 0x10000000

Abel
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Número serial do HD - Anti cópia

Mensagem por sygecom »

Olá Abel, veja abaixo como uso no Harbour:

Código: Selecionar todos

#include "hbdyn.ch"

******************
FUNCTION SERIAL_HD
******************
Local TDLL, RETPORTA1, lpBuffer:=SPACE(512)

setmode(25,80)

TDLL:=hb_libLoad("DiskSerial.dll")

? TDLL

IF EMPTY(TDLL)
   ALERT('ERRO')
   HB_LIBFREE( TDLL )
ENDIF

RETPORTA1:=hb_dynCall({"GetModelNumber",TDLL, HB_DYN_CALLCONV_STDCALL },0,@lpBuffer )
? RETPORTA1
? lpBuffer

lpBuffer:=SPACE(512)
RETPORTA1:=hb_dynCall({"GetRevisionNumber",TDLL, HB_DYN_CALLCONV_STDCALL },0,@lpBuffer )
? RETPORTA1
? lpBuffer

lpBuffer:=SPACE(512)
RETPORTA1:=hb_dynCall({"GetSerialNumber",TDLL, HB_DYN_CALLCONV_STDCALL },0,@lpBuffer )
? RETPORTA1
? lpBuffer

//  ? hb_dynCall( { "SystemParametersInfo", "user32.dll", HB_DYN_CALLCONV_STDCALL }, SPI_SETDRAGFULLWINDOWS, 1, 0, 0 )
//  HB_DYNCALL( { <cFunction>, <cLibrary> | <pLibrary> [, <nFuncFlags> [, <nArgFlags1>, ..., <nArgFlagsn> ]] }, ... ) -> <xResult>


HB_LIBFREE( TDLL )
RETURN(lpBuffer)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Número serial do HD - Anti cópia

Mensagem por Abel »

Valeu Leonardo, agora deu certinho.

agradeco pelas dicas...
Valeu, Abracos.
ABEL
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Número serial do HD - Anti cópia

Mensagem por Toledo »

Leonardo, vamos imaginar que meu sistema está no drive local (C:), mas eu queria estas informações (GetSerialNumber) do servidor, que está compartilhado como drive K:, tem como?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Número serial do HD - Anti cópia

Mensagem por sygecom »

Olá Toledo,
Nunca testei em rede mapeado, não sei de da certo, sempre usei por terminal que vai usar o sistema, independente se é servidor ou estação.
Tem o parâmetro do numero do HD que da para fazer um teste enviando 1,2,3 em vez de 0(zero), onde estou agora não tem rede e não consigo simular.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

Número serial do HD - Anti cópia

Mensagem por Abel »

asimoes,
estava fazendo um teste na function getserialplacamae() e esta funcionando normalmente,

quando tentei em duas maquinas asus i3, que tenho, ele sempre retorna uma string em branco.

o que pode ser ?
uma das maquinas tem win7 32 bits e a outra tem win2003 server.

Abel
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Número serial do HD - Anti cópia

Mensagem por Adalberto »

Frazato

Caro amigo, estou vivamente interessado em saber mais sobre como detectar um pendrive, pose compartilhar essa experiência?

Agradeço desde já sua vontade, Deus abençoa você e seus queridos.

[] Adalberto
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Número serial do HD - Anti cópia

Mensagem por Hasse »

Boa noite Leonardo.

Testei várias rotinas usando o DiskSerial.dll.

Tenho 2 HD's no meu DeskTop.
Percebi que, mesmo gravando o executável e a DLL em discos diferentes sempre obtenho o mesmo resultado.

O primeiro HD está particionado em C: e E: (ST3250820AS)
O segundo HD está sob F: (SAMSUNG HD502HI)

Tanto rodando no Drive C: quanto no E: ou ainda no F:, sempre obtenho o mesmo resultado (ST3250820AS)

Testei o DiskChange( "C:" ), DiskChange( "E:" ) e DiskChange( "F:" ). Também não modificou o resultado.

Somente trocando de computador o aplicativo retorna valores diferentes.

Estou supondo que o DiskSerial.dll sempre lê o drive onde o Windows está instalado (C:). Mesmo que o aplicativo seja executado em outro HD (F:), ele lê o C:.

A minha suposição está correta ?
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Número serial do HD - Anti cópia

Mensagem por sygecom »

Olá Hasse,
Você está certo, ele sempre pega o primeiro HD instalado na: IDE 0 ou: SATA 0, se é C:\ ou D:\ não faz diferença mas o resultado no mesmo micro sempre será o mesmo, pode formatar o HD que será o mesmo, se mudar o HD da IDE 0 ou SATA 0 vai mudar o resultado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Número serial do HD - Anti cópia

Mensagem por Hasse »

Olá Leonardo.

Obrigado pela informação. Era o que eu suspeitava.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Número serial do HD - Anti cópia

Mensagem por lucimauro »

Alguem pode disponibilizar o link para baixar essa DLL?


Desde ja agradeço.
Responder