- 09 Dez 2015 às 13:42
#5641
Boa tarde Parkeless
A respeito do número do HD, este é o código que utilizo para obter o número do computador de meus clientes.
Sub teste() 'Essa macro é aplicada ao botão da planilha que chama a função que faz a análise.
NumSérie (Drive)
End Sub
Function NumSérie(Drive) 'Essa função retorna o número de série do HD
Dim FS As Object, D As Object, S As String, TIPO()
TIPO = Array("Desconhecido", "Removível", "Fixo", "Rede", "CD-Rom", "RAM Disc")
Set FS = CreateObject("Scripting.FileSystemObject")
Set D = FS.GetDrive(FS.GetDriveName(FS.GetAbsolutePathName(Drive)))
'S = "Unidade " & D.DriveLetter & ": - " & TIPO(D.DriveType)
If TIPO(D.DriveType) <> "Fixo" Then
NumSérie = S
Else
S = S & " SN: " & D.SerialNumber
NumSérie = S
End If
MsgBox D.SerialNumber
End Function
Com esse número em mãos eu insiro na minha planilha dentro da na função que analisa o número do HD que está no computador. É a mesma função que me retorna o número, porém inclui um If para analisar se o número é o mesmo que está registrado, caso contrário a planilha não abre.
Function NumSérie(Drive)
Dim FS As Object, D As Object, S As String, TIPO()
TIPO = Array("Desconhecido", "Removível", "Fixo", "Rede", "CD-Rom", "RAM Disc")
Set FS = CreateObject("Scripting.FileSystemObject")
Set D = FS.GetDrive(FS.GetDriveName(FS.GetAbsolutePathName(Drive)))
S = "Unidade " & D.DriveLetter & ": - " & TIPO(D.DriveType)
If TIPO(D.DriveType) <> "Fixo" Then
NumSérie = S
Else
S = S & " SN: " & D.SerialNumber
NumSérie = S
End If
If D.SerialNumber <> -137756912 Then 'inserir aqui o número do HD para a execução do programa "-137756912".
MsgBox ("Licença não liberada")
Dim Resp As Variant
Resp = InputBox(Senha, "Insira senha de Acesso")
If Resp <> 123 Then 'Exit Sub****************** 'Senha de acesso restrito **************************************
Application.Quit
ElseIf Resp = "" Then
Application.Quit
Else
MsgBox ("Seja bem vindo Helder, a planilha está liberada para você!!!")
End If
End If
End Function
Eu chamo essa função no Workbook_Open, para que a planilha antes de abrir verifique se o HD é o que está liberado para utilizar ou se irei inserir a senha de acesso (123) caso o cliente me envie a planilha para atualização, assim ela abre com a minha senha ou pelo número do HD do meu cliente. Se ele trocar de computador é só enviar uma planilha com a primeira função e anotar o novo número da máquina. Se pode inserir também uma matriz com vários números de HD autorizados a abrir essa planilha.
Private Sub Workbook_Open()
NumSérie (Drive)
End Sub
Ela irá verificar se é o computador correto, caso contrário o arquivo nem abre.
Quanto ao desabilitar o botão de gravar macros, é exatamente para ninguém rodar aquela macro que quebra as senhas das planilhas.
O conhecimento é uma das poucas coisas que aumenta quando se divide.
Abraço