Thanks Shadow, I am assuming those options can be found in Tools-Startup.
Being a newbie at Access I can't figure out how to get the demo thing working, i.e. the syntax of the iif statement and where it goes.
sorry to be a pain
cheers
optidisk
Most of them. You can search the forum to learn how to disable the SHIFT bypass.
Here's pseudo-code for the demo:
Splash Screen:
If (GetSetting (wherever you put it in the registry) = "100") then
Open the main form
ElseIf (Getsetting (wherever you store the demo date) is within the time range) then
Open the main form
Else
Open the Login form
End if
Login Screen:
If (the number in the textbox satisfies the formula) then
Savesetting "100" in the registry
Elseif (the text in the textbox = "DEMO") Then
Savesetting Date () in the registry
End if
Im new to modules and vba cound you tel me where to import the code ghudson used and how to activate it on my startup i use a form called shwitchboard and it opens up in access
1) The way I've set up that login screen is that if you type in 'DEMO', you don't need a registration code, but it stores the date in another registry key inicating when the demo period is up.
2) This system works even on a network. We charge per computer that uses the program, so every time they add another computer to the LAN, they need another code, and send another cheque.
I've developed a method for copy-protecting an application which depends on on-line registration. It allows the user to download the entire application free from your website. On initial opening, a popup form invites free registration, with a command button that links to a page on your site which captures the user's details and sends a coded message to the application which initiates 30 days' free trial.
At end of free trial (or before) the user can complete full registration by the same method, except that this time payment (e.g. by PayPal) is required. A fully registered product runs on only one computer. A user with legitimate need to run on a different computer on the same licence can apply to you the vendor and if approved can re-register.
It all works but I have not distributed it to anyone (apart from one user who disappeared off the face of the internet after getting a free version of everything!) So if you have a package that needs protecting, we could make contact.
I've developed a method for copy-protecting an application which depends on on-line registration. It allows the user to download the entire application free from your website. On initial opening, a popup form invites free registration, with a command button that links to a page on your site which captures the user's details and sends a coded message to the application which initiates 30 days' free trial.
At end of free trial (or before) the user can complete full registration by the same method, except that this time payment (e.g. by PayPal) is required. A fully registered product runs on only one computer. A user with legitimate need to run on a different computer on the same licence can apply to you the vendor and if approved can re-register.
It all works but I have not distributed it to anyone (apart from one user who disappeared off the face of the internet after getting a free version of everything!) So if you have a package that needs protecting, we could make contact.
I've developed a method for copy-protecting an application which depends on on-line registration. It allows the user to download the entire application free from your website. On initial opening, a popup form invites free registration, with a command button that links to a page on your site which captures the user's details and sends a coded message to the application which initiates 30 days' free trial.
At end of free trial (or before) the user can complete full registration by the same method, except that this time payment (e.g. by PayPal) is required. A fully registered product runs on only one computer. A user with legitimate need to run on a different computer on the same licence can apply to you the vendor and if approved can re-register.
It all works but I have not distributed it to anyone (apart from one user who disappeared off the face of the internet after getting a free version of everything!) So if you have a package that needs protecting, we could make contact.
I have a suggestion... is there a way to store a number a really random one so the registry match the one on the database, I suggest this because there are tools that sense the changes in the registry... and a static number (one that works with all the instances of the database) is not a good idea, even if the confirmation number comes from an out of this world math formula... if the hacker creates a registry key that put that "100" (static number) in the registry the database simply bypass that screen... Here is my suggestion... now one who code... please write the code to store the random number in the registry and store the same number in the database so everytime it loads the comparison takes place and if they don't match... load the login screen... with the alien math formula that creates the confirmation number. This way it doesn't matter if the hacker get the number from the registry.. it won't work for the other installations of the db.
Most of them. You can search the forum to learn how to disable the SHIFT bypass.
Here's pseudo-code for the demo:
Splash Screen:
If (GetSetting (wherever you put it in the registry) = "100") then
Open the main form ElseIf (Getsetting (wherever you store the demo date) is within the time range) then
Open the main form
Else
Open the Login form
End if
Login Screen:
If (the number in the textbox satisfies the formula) then
Savesetting "100" in the registry
Elseif (the text in the textbox = "DEMO") Then
Savesetting Date () in the registry
End if
this sort of stuff is non trivial and is not quite plug and play. you do need to be sure you understand what is happening etc, before implementing these sorts of security measures
I create a text file then I rename it as my ''special'' file with a special extension that will not open up if a curious user were to find it and try to double click on it to open it.
The below function is the basic routine [but not everything] that I run when the db is first opened. I keep a copy of the special file on a USB drive just in case I need to run it on the go. My routine will close the db if the special file is not found.
I use the WinZip Self-Extractor 2.2 version of WinZip for my users to install [extract] the neccessary files to their hard drive. The WinZip Self-Extractor 2.2 version allows you to lock the extraction process so that the user can not alter where the files are extracted to.
You could create a text file from code and use that as a part of your installation process. There is code floating around on how to do that. There are a lot of ways to booby trap a mdb file. My method works when needed for I am the only one who preforms the installation so I know the user never has a copy of the self extracting file. I only have a couple of db's that I worry about being transported and my home made method suits my needs.
Code:
\Public Function Verify_Special_File()
On Error GoTo Err_Verify_Special_File
Dim sFile As String
Dim sLocal As String
'location of your special file
sFile = "C:\SomeWhere\SpecialFile.xyz"
'this allows me to run the file off of a USB drive
sLocal = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name))) & "SpecialFile.xyz"
If Dir(sFile) = "" Then
If Dir(sLocal) = "" Then
Application.Quit acQuitSaveNone
End If
End If
Exit_Verify_Special_File:
Exit Function
Err_Verify_Special_File:
MsgBox Err.Number & " - " & Err.Description
Resume Exit_Verify_Special_File
End Function
Shadow, could you post your mehtod so that the others can see how to check and edit the registry? There is a lot of code involved and it might be more than some can handle. Forcing a registration code is a good way to see who is using and installing your db.
i get my users to login via my own login screen (not access security) - when they login the login id is stored in a user table which is limited to a specific number of rows.
If all the rows are active, the next user wont be able to login.
now built in to a normal table, is an encrypted field that determines the number of permitted users (eg 2,5,10)
the first thing the programme does is check that the available user login slots match the permitted no of users
therefore even if they copy the dbs, they wont be able to login more than the maximium number of times, because the user slot table is full.
i get my users to login via my own login screen (not access security) - when they login the login id is stored in a user table which is limited to a specific number of rows.
If all the rows are active, the next user wont be able to login.
now built in to a normal table, is an encrypted field that determines the number of permitted users (eg 2,5,10)
the first thing the programme does is check that the available user login slots match the permitted no of users
therefore even if they copy the dbs, they wont be able to login more than the maximium number of times, because the user slot table is full.