Ir para conteúdo
Fórum Script Brasil
  • 0

Serial Físico Do Hd


Principe

Pergunta

Gente...

to uma função 'animal' aqui:

http://www.activedelphi.com.br/modules.php...r=0&thold=0

que pega o serial físico do hd.

Porém, quando o micro do cliente tem mais de um disco (HD), no meu caso ele tem dois hds, a função retorna uma excpetion e não traz serial nenhum.

O serial que o Windows gera, o GetVolumeInformation, vai beleza, só dizer qual disco quero, mas essa função aí que pega o 'chassi' do HD... não tem jeito. :unsure:

Como é que vocês fazem nesses casos?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Opa

Então cara eu tenho este problema também, alias atualmente é o maior problema

que tenho auhahuahu, veja só, até hoje não consegui gerar nada que seja

estático da máquina, ou seja, algo que se formatar o PC por exemplo, quando

for habilitar o programa novamente, ele pegar um Serial que seria identificação do PC

e retornar a mesma que era antes, resumindo, um serial único...

Um jeito bom é o MAC Address da placa de rede, ele é único mas nem todos os pcs

possuem placa de rede...

Outra forma é usando informações da BIOS, mas das funções que achei, ou não funcionava

no Windows XP ou não funcionava no Windows 98 ou ao testar em várias máquinas dava pau,

fora que agora com o Windows Vista com certeza os mtfs da Micro$oft vão mudar os esquemas,

resumindo sem sucesso...

Que da pra obter eu sei que dá, porque o Microkê aquele programa que da nota ao cantar que

alias foi feito em Delphi, eu formato o PC e o serial é o mesmo... ai é só mandar email ou salvar

a chave recebida que eu libero o programa denovo...

Já passei por várias coisas, por exemplo não sei como mas uma vez em um cliente todos os

pcs possuiam o mesmo serial do HD, claro pegando através do GetVolumeInformation, mas

seria um Ghost que fez isso?

Detalhe que, se você armazena este serial e uma chave a partir do serial em um arquivo no

PC, então se o cara fizer um ghost (Clone) você foi crackeado desde que todas as máquinas

vão funcionar normalmente...

Se você fizer a cada abertura do programa ele checar se o serial gravado bate com o serial

pego na hora (isto pra checar se os arquivos não foram copiados de outro pc) então você pode

ter problemas de derrepente as informações obtidas mudarem, a menos que seja único o serial

ele não mude... isto ainda que se for feito Ghost nada vai adiantar...

É algo complicado, impedir que seja crackeado é impossível, senão a Microsoft com milhares

de programadores, assim também como grandes empresas como Adobe, etc não teriam seus

programas crackeados em menos de 3 dias do lançamento, mass podemos dificultar...

Eu estou sem o Delphi em casa mas amanhã no serviço vou testar essa função e te retorno se

houve sucesso e como, lá tenho 3 HDs no meu micro um é SATA e vou testar em outros micros

também ai vamos ver o que acontece...

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Opa

Então fiz os testes aqui, funcionou perfeito tanto em um HD IDE quanto em um

HD SATA/RAID...

A única coisa que mudei foi que ao invés de usar Scsi0: eu alterei para C: mas

lembrando que você vai precisar ter privilégios administrativos no Windows XP

ou seja, o usuário no Windows NT/XP/2003/Vista que rodar o seu programa vai ter

que ser administrador senão não retorna nada...

Exemplo de uso...

Function GetWindowsDir: String;
var
  chBuffer: array[0..MAX_PATH] of Char;
begin
  GetWindowsDirectory(chBuffer, MAX_PATH);
  Result := IncludeTrailingBackslash(StrPas(chBuffer));
end;

Function GetSysDrive: String;
begin
  Result := ExcludeTrailingPathDelimiter(ExtractFileDrive(GetWindowsDir));
end;

Na parte do código que tem Scsi0 você altera conforme abaixo...
Isso somente na parte que contém Scsi0 já na parte para Win9X/ME você mantem
o Smartv conforme explico mais abaixo o porque...

hDevice := CreateFile(PChar('\\.\' + GetSysDrive), ...

Isto vai forçar a função pegar o Serial do HD principal, ou seja, da onde o Windows

está instalado, normalmente é C:\

Eu testei aqui se formatando um HD iria alterar o Serial e não, realmente não muda pois

o Serial pego é através do Hardware e não do Software(GetVolumeInformation)...

No artigo está escrito

Obs. No windows95, windows98 e windowsMe, deve-se instalar o arquivo "Smartvsd.vxd" na pasta "c:windows\system\iosubsys\" para poder funcionar.
Envie um email para o autor que ele te retorna este arquivo Smartvsd.vxd pois vi relatos de

algumas pessoas terem pego na internet e por problemas de versão ou sei lá não funcionava...

Bom de qualquer forma vou fazer mais testes né, afinal com a parte de licença do programa

não se brinca auhahua

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...