Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Erich VB

Identificação da maquina

Recommended Posts

Estou fazendo um projeto em VB6 se alguém puder me ajudar nesta duvida eu agradeço.

O projeto irá mostrar uma identificação da maquina em um campo. É importante que esta identificação seja única do PC e de preferência algo como um registro que venha de fabrica e não possa ser mudado.

Posso pesquisar o código do programa mais tarde.

 

O negócio é. Não sei que registro é este e o nome dele. O registro não pode ser da placa de rede. Tem que ser um registro do PC.

 

Me falaram do MAC ADRESS que é de fábrica mas ele é da rede e não da maquina.

 

Me falaram tbm da possibilidade de obter o número de série da Bios. Não sei!

Não teria um monte de PC com Bios iguais porque seria chipe de fábrica? Exemplo: um Note as1560g deve ter um numero igual a outro Note as1560g. Ou estou errado? Seria uma boa idéia? O que acham?

Dês de já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim. E até já tenho o código em VB6 pronto. Mas o meu primo falou que o número do hd não é legal usar...ficaria fora do padrão.

Sei lá o que ele quis dizer!

 

Parece que o numero do HD é determinado pelo Windows. Será por isto?

Não sei no que isto seria um problema. Tem algum Windows sem este registro? Ou um HD que retorne 0 ou vazio ””?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz e agora?

Leiam este link.

http://social.msdn.microsoft.com/Forums/pt...b-63a2ed1dae2a/

 

"A informação sobre o serial do HD físico só funciona do XP para cima e os outros do Win2K (acho) para cima.

Você não consegue a informação sobre a BIOS em todas as placas e sobre o HD físico em todos os drives."

 

Se for verdade o Bios e o serial do HD não vão servir.

 

E agora? Meu projeto andou para traz.

 

Tem que funcionar em todos os Windows.

Vai que o cara instala o programa em um NT ai não funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pq você nao gera um chave aleatória e grava no registro do Windows de forma criptografada. Dessa forma sempre que acessar o software, você confere a chave do registro com chave gerada.

 

O único problema é que sempre que formatar a máquina, será gerada uma chave nova.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que tem que ser unico ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo um programa onde ele ira guardar o registro da maquina. Se o registro for diferente do banco de dados significa que o programa foi copiado ai ele ira pedir para ser registrado de novo.

Se o registro for igual de maquina para maquina nao vai ter como saber se o programa foi copiado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde fica o banco, em um servidor próprio?

 

Está desenvolvendo para uma empresa?

 

A empresa tem rede? As máquinas tem IP fixo?

 

As máquinas provavelmente tem o serial original do Win, dê uma olhada nesse link

http://forums.realsoftware.com/viewtopic.p...amp;t=22778(não testei)

 

De uma olhada nesse link do macoratti Protegendo o seu programa contra a pirataria.

http://www.macoratti.net/vb_prot1.htm

Compartilhar este post


Link para o post
Compartilhar em outros sites

O registro ficara em um banco de dados na mesma pasta.

Não é para uma empresa.

Não sei se as máquinas terão placa de rede. A idéia é instalar na maquina em que o cliente quiser.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Private Sub Form_Load()
'Exibe o número de serie do drive atual
MsgBox " Número de série do dispositivo C : " & GetDriveSerialNumber("C")

End Sub
Public Function GetDriveSerialNumber(Optional ByVal DriveLetter As String) As Long

Dim fso As Object
Dim Drv As Object

'Cria um objeto FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")

'Atribui a letra do drive atual se nada for especificado
If DriveLetter <> "" Then
	 Set Drv = fso.GetDrive(DriveLetter)
Else
	 Set Drv = fso.GetDrive(fso.GetDriveName(App.Path))
End If

With Drv
   If .IsReady Then
	   DriveSerial = Abs(.SerialNumber)
   Else '"Drive não esta pronto!"
	   DriveSerial = -1
   End If
End With

'libera objetos
Set Drv = Nothing
Set fso = Nothing

GetDriveSerialNumber = DriveSerial

End Function
http://www.macoratti.net/d240207.htm

 

Veja isso te ajuda.

 

 

http://forum.imasters.com.br/public/style_emoticons/default/searchbeforeposting.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.