youd need the PC ID given in advance. Encode it to read it at startup.
Then compile the frontend into an accde so users can bypass the code.
This may work to get the ID:
Code:
sub CheckID()
if CpuID <> "abcde" then
msgbox "Invalid PC"
docmd.quit
end if
end sub
Public Function CpuId() As String
Dim computer As String
Dim wmi As Variant
Dim processors As Variant
Dim cpu As Variant
Dim cpu_ids As String
computer = "."
Set wmi = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
computer & "\root\cimv2")
Set processors = wmi.ExecQuery("Select * from Win32_Processor")
For Each cpu In processors
cpu_ids = cpu_ids & ", " & cpu.ProcessorId
Next cpu
If Len(cpu_ids) > 0 Then cpu_ids = Mid$(cpu_ids, 3)
CpuId = cpu_ids
End Function