Página 2 de 4
Número serial do HD - Anti cópia
Enviado: 10 Jul 2012 09:43
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
Número serial do HD - Anti cópia
Enviado: 11 Jul 2012 19:36
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
Número serial do HD - Anti cópia
Enviado: 11 Jul 2012 19:42
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,
Número serial do HD - Anti cópia
Enviado: 12 Jul 2012 09:31
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 )
Número serial do HD - Anti cópia
Enviado: 12 Jul 2012 15:33
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
Número serial do HD - Anti cópia
Enviado: 12 Jul 2012 16:32
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)
Número serial do HD - Anti cópia
Enviado: 14 Jul 2012 01:12
por Abel
Valeu Leonardo, agora deu certinho.
agradeco pelas dicas...
Valeu, Abracos.
ABEL
Número serial do HD - Anti cópia
Enviado: 14 Jul 2012 10:21
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,
Número serial do HD - Anti cópia
Enviado: 14 Jul 2012 15:56
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.
Número serial do HD - Anti cópia
Enviado: 14 Jul 2012 17:36
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
Número serial do HD - Anti cópia
Enviado: 15 Jul 2012 15:55
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
Número serial do HD - Anti cópia
Enviado: 06 Ago 2012 22:34
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 ?
Número serial do HD - Anti cópia
Enviado: 06 Ago 2012 22:38
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.
Número serial do HD - Anti cópia
Enviado: 07 Ago 2012 22:19
por Hasse
Olá Leonardo.
Obrigado pela informação. Era o que eu suspeitava.
Número serial do HD - Anti cópia
Enviado: 29 Mar 2013 09:53
por lucimauro
Alguem pode disponibilizar o link para baixar essa DLL?
Desde ja agradeço.