Número serial do HD - Anti cópia
Moderador: Moderadores
Número serial do HD - Anti cópia
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
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
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
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
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,
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
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 )
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)
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)
Número serial do HD - Anti cópia
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
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
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Número serial do HD - Anti cópia
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
xHarbour.org + Hwgui + PostgreSql
Número serial do HD - Anti cópia
Valeu Leonardo, agora deu certinho.
agradeco pelas dicas...
Valeu, Abracos.
ABEL
agradeco pelas dicas...
Valeu, Abracos.
ABEL
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Número serial do HD - Anti cópia
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,
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
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
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Número serial do HD - Anti cópia
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.
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
xHarbour.org + Hwgui + PostgreSql
Número serial do HD - Anti cópia
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
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

- 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
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
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

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Número serial do HD - Anti cópia
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 ?
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)
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)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Número serial do HD - Anti cópia
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.
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
xHarbour.org + Hwgui + PostgreSql
-
Hasse
- 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
Olá Leonardo.
Obrigado pela informação. Era o que eu suspeitava.
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)
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)
Número serial do HD - Anti cópia
Alguem pode disponibilizar o link para baixar essa DLL?
Desde ja agradeço.
Desde ja agradeço.
