Jobbar i VBA. Pratar du om en accessfil (mdb/mde aller adp/ade filer)? Pratar om en accessfil(mdb). Hej, Tack Martin!Program som kan köras enbart på utsedd dator!
Vill att mitt program skall kunna köras enbart på utsedd dator och tänker mig att jag läser in t.ex utsedd dators produktnyckel för operativsystemet.
Sparar därefter produktnyckeln i ett register vid första körningen på datorn och kollar därefter vid varje körning att datorns produktnyckel stämmer med den jag sparat i registret.
Hur gör man för att från programmet läsa produktnyckeln?
Finns det speciellt systemanrop?
mvh / HarrySv: Program som kan köras enbart på utsedd dator!
Det finns Active X kontroller att köpa för att begrännsar användningen av ett program.Sv:Program som kan köras enbart på utsedd dator!
Var hittar jag Active X kontrollerna?
Tackar/ Harry
Ps: Tack för senast! Felsökte just i ett program som inte lyckades hitta rekords mha datum i en .mdb tills jag kom ihåg ett motsvarande fel som du hjälpte mig med för en tid sedan. Lösningen var rutinen SQLDATE. Utan den hjälpen hade jag aldrig hittat felet. Så skumt var det. Sände dig en tacksam tanke!!
med hälsningarSv: Program som kan köras enbart på utsedd dator!
Visserligen skrivet i VB, men det borde väl gå att översätta.
Option Explicit
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const KEY_READ = &H20019
Private Sub Command1_Click()
Dim RetVal As Long, BufferLen As Long, KeyHandle As Long, DataType As Long
Dim SubKey As String, Buffer As String
SubKey = "Software\Microsoft\Windows\CurrentVersion" 'For Win95/98
RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, KeyHandle) 'Try to open Win95/98 key
If RetVal <> 0 Then 'if Win95/98 key open failed
SubKey = "Software\Microsoft\Windows NT\CurrentVersion" 'For WinNT
RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, KeyHandle) 'Try to open WinNT key
If RetVal <> 0 Then 'if WinNT key open failed
MsgBox "Could not open registry key!"
Exit Sub
End If
End If
Buffer = Space(255)
BufferLen = Len(Buffer)
RetVal = RegQueryValueEx(KeyHandle, "ProductID", 0, DataType, ByVal Buffer, BufferLen) 'Get Windows Product ID value
Buffer = Left(Buffer, BufferLen) 'Remove empty space from the end of the 'Buffer' string
RetVal = RegCloseKey(KeyHandle) 'Close the open key
MsgBox "Windows Product ID: " & Buffer 'Prompt user with Windows Product ID
End Sub
Private Sub Command2_Click()
Dim RetVal As Long, BufferLen As Long, KeyHandle As Long, DataType As Long
Dim SubKey As String, Buffer As String
SubKey = "Software\Microsoft\Windows\CurrentVersion" 'For Win95/98
RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, KeyHandle) 'Try to open Win95/98 key
If RetVal <> 0 Then 'if Win95/98 key open failed
SubKey = "Software\Microsoft\Windows NT\CurrentVersion" 'For WinNT
RetVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, SubKey, 0, KEY_READ, KeyHandle) 'Try to open WinNT key
If RetVal <> 0 Then 'if WinNT key open failed
MsgBox "Could not open registry key!"
Exit Sub
End If
End If
Buffer = Space(255)
BufferLen = Len(Buffer)
RetVal = RegQueryValueEx(KeyHandle, "ProductKey", 0, DataType, ByVal Buffer, BufferLen) 'Get Windows Product Key value
Buffer = Left(Buffer, BufferLen) 'Remove empty space from the end of the 'Buffer' string
RetVal = RegCloseKey(KeyHandle) 'Close the open key
MsgBox "Windows Product Key: " & Buffer 'Prompt user with Windows Product Key
End Sub
Denna kod hittade jag på planetsourcecode.com
/MartinSv:Program som kan köras enbart på utsedd dator!
Utsedd dator kör Win XP.
Rutinen Private Sub Command1_Click() (Product ID) fungerar perfekt !!!
/Harry