Urgent: Securing My Access from Piracy

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a MS Access Application (.mdb). I want to make my application secure
from getting copied or used on any other computer than the one it is
installed for. I have also made a MDE for my client but just realized that he
could use it on any other machine or make a copy of it. How can I avoid my
Application which is entirely created in access from duplication or from
piracy.

Thanks
 
There is no 100% secure way of making sure it cannot be used on another
machine. The real question is how much is your program worth to you? and how
much time your willing to spend to protect it. Plus how hard is it for them
in time to break your protection? if your selling your program for $500 and
it takes 20+ hours of there time it probably wasn't worth it for them.
However if it was $5000 its a different story. Here are a few strategies to
stop them from coping. 1) ask for a key on installation maybe dependent on
date or whatever. 2) Write an encrypted license file of some sort on paid
machines that can be checked on start up with the computer serial # or
something like it. 3) if your database is split make it hard after
installation for them to change the path to there backend data. 4) more
advanced would be requiring a new license file ever month. What ever you
decide to do remember that they have to be able to reinstall it if there
computer breaks down and be able to back it up. An MDE just makes sure code
is never visible.

HTH
Martin J
 
Hi Martin,

Thanks for replying. See my Application is entirely made in access with
forms, reports, etc. Now when I give it to tham I will make an MDE. Now they
can easily give the same MDE to anybody in his field even try to sell it and
I am in a fix as I cant find any solution to avoid that. Now yr first option
will be good enough ("ask for a key on installation maybe dependent on date
or whatever") but frankly I dont know how to implement it. I would be highly
obliged if you could explain me in detail or give me a code for it. Pls reply
as soon as possible.

Thanks.
 
As long as you understand this option is easily broken... you would make a
function on startup Run it from autexec macro that would ask for a key based
on date (a simple algorithm is think of a 6 letter password and add the
digits of the date to the letter of the password a+2=c) if accepted have a
yes/no field in your control file or somewhere saying his key is good
otherwise exit. If he figures out where the yes/no field is or figures out
your password your security is broken. Also he can still copy the front end
now and use it if he has a full version of access installed on another
machine or try to install it on another machine using the same password and
changing the system date to the date originally installed.(Make it 8 digits
and include hour might make it slightly harder I wouldn't do minute because
it changes too frequently) As I said before its a matter of value.

HTH
Martin J
 
There is an SDK at web site below with example code for implementing
something like what you need. See Add-ins/Extras. It isn't guaranteed, but
it will keep most people honest.
 
Hi Paul,

I tried the addin u advised and did everything step by step. but when I run
the the application I am asked for a DSN which I created too but when I use
it I get a msg "You cannot use ODBC to import from, export to, or link an
external Microsoft Jet or ISAM database table to your database." and then by
application exits. I debuged the code and found that this statement is giving
me the error

Set db_FE = CurrentDb()
Set db_BE = OpenDatabase(db_FE.TableDefs("name of the table").Connect)

Can you tell me why does it not connect to the table and what can I do now
as I am stuck at this.

Thanks.
 
It is intended for typical Access applications that use Jet tables with a
DAO reference, and a split database (i.e., forms, code in front end and
tables in back end). The code you posted is not from the example. Yours
should look like this:

Set db_FE = CurrentDb()
Set db_BE = OpenDatabase(Mid(db_FE.TableDefs("name of the
table").Connect, 11))

Note that you omitted the Mid function. The SDK is intended for intended
for experienced developers, so, be sure to review the example code CAREFULLY
and be certain you understand what it is doing.
 
Hi Paul,

The SDK was excellent. Though I could not implement it due to my minimum
knowledge but I did try it exactly as mentioned but it did not work out. I
eventually secured my application by getting the product key of the OS so
that my application works only on that Machine. Also wanna thank martin for
the info he provided.

Thanks.
 
Hello Baghzaad
I have the same problem that you appear to have resolved. Can you provide
me with info on how to get the OS product key? I have worked for a while
trying to figure it out, so hope you can assist me.

Thanks in advance for any help you can provide.
Peggy
 
Hi Peggy,

I have the code with me so if u can provide your email address I can email
it to you.

Regards,

Baghzaad.
 
Back
Top