Bom dia a todos! Amigos estou querendo usar o código abaixo junto com o outro que vi que é do JPaulo. Só que não tá dando certo,alguém pode me ajudar a adaptar, eu tenho que criar uma tabela para capturar o número do HD só que qual seria o nome que tenho que dá a tabela e o nome do campo? O código do JPaulo já serve para não gravar outro número de HD se lá na tabela já tiver outro
Esse código eu uso para pegar o número de série
Option Compare Database
Private Declare Function GetVolumeInformation Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Public Function DriveSerialNumber(strDrive As String) As String
'Para obter o numero de serie do HD
'Na janela imediata digite: ?DriveSerialNumber("c")
Dim X As Long, lngSerialNum As Long
Dim strRoot As String
strRoot = Left$(strDrive, 1) & ":\"
X = GetVolumeInformation(strRoot, "", 255, lngSerialNum, 0, 0, "", 255)
DriveSerialNumber = Hex$(lngSerialNum)
End Function
Ai no formulário principal ao abrir coloquei
Call DriveSerialNumber("c")
Feito isso, quando abro o aplicativo ele cria um monte de tabelas, eu queria saber como faria para criar uma tabela e jogar o número do HD nela pq ai depois eu poderia usar o código abaixo do JPaulo para evitar instalar em outro computador
Dim x As String
Dim y As Variant
x=DLookup("SeuCampoNumeroHD","SuaTabela","SeuCampoNumeroHD")
y= Call DriveSerialNumber("c")
If y <> x Then
MsgBox "Não autorizado"
DoCmd.Quit
Else
Exit Sub
End If
Aguardo a ajuda de vocês
Esse código eu uso para pegar o número de série
Option Compare Database
Private Declare Function GetVolumeInformation Lib "kernel32" _
Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long
Public Function DriveSerialNumber(strDrive As String) As String
'Para obter o numero de serie do HD
'Na janela imediata digite: ?DriveSerialNumber("c")
Dim X As Long, lngSerialNum As Long
Dim strRoot As String
strRoot = Left$(strDrive, 1) & ":\"
X = GetVolumeInformation(strRoot, "", 255, lngSerialNum, 0, 0, "", 255)
DriveSerialNumber = Hex$(lngSerialNum)
End Function
Ai no formulário principal ao abrir coloquei
Call DriveSerialNumber("c")
Feito isso, quando abro o aplicativo ele cria um monte de tabelas, eu queria saber como faria para criar uma tabela e jogar o número do HD nela pq ai depois eu poderia usar o código abaixo do JPaulo para evitar instalar em outro computador
Dim x As String
Dim y As Variant
x=DLookup("SeuCampoNumeroHD","SuaTabela","SeuCampoNumeroHD")
y= Call DriveSerialNumber("c")
If y <> x Then
MsgBox "Não autorizado"
DoCmd.Quit
Else
Exit Sub
End If
Aguardo a ajuda de vocês