473,378 Members | 1,395 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

Software activation codes and storage, your thoughts please

Hi all,

I have an app that I want to have activation codes for, it has plugin
dll files each of which have an activation code as well. I need to
generate a unique code that is specific to the machine that the software
is installed on, when the user contacts the registration server the key
that they get to activate there software will be unique to there machine
as it will be generated from the code above. Please could you look at
these possibles and advise on which you think is the right way to do
this, or if you know of a better way I would appreciate any links/code
samples you may have.

I could create a GUID the first time I start the app, this would be
stored in the registry, when validating codes I would read this value
from the registry, check it and activate the software if all is OK.
BUT, I hear that the use of the registry is not a great idea any more,
Microsoft recommends XML files, I must store this value outside of the
apps directory in case the user simply copies the entire directory to a
new PC and all would work, maybe I could store it in Windows directory
in a .cfg file or something.

I could use WMI to get the serial number of the mother board, I would
not need to store this value as it would be available through WMI at any
time.
BUT I want to the app to run on Win 98 upwards, I have heard that WMI is
not supported on Win 98, also I can't find any examples of how to
retrieve the mother board serial number.

This app will be developed in VS2005, the Beta2 has a Go Live license
with it and the development time will be 6 - 12 months, Is there
something in VS2005 that would negate the need to do either of the above?

Is there another way?

And why do my posts always seem so long :-)

Thanks Joe
Nov 17 '05 #1
2 4487
Joe,

Your only option here is going to be to use the registry. You should
probably store it in the HKEY_LOCAL_MACHINE hive, under the software key.
This is the only thing that one could guarantee would work on windows 98.

Honestly though, I don't know how much longer 98 is going to be around,
and I personally wouldn't target an app for that OS. Then again, my needs
are different =)

If you could eliminate 98 from the picture, I would recommend using
Isolated Storage, as it would give your application a space that it could
read/write files from/to, without having to worry about access rights and
whatnot.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"Joe_Black" <Jo******@newsgroups.nospam> wrote in message
news:u$**************@TK2MSFTNGP10.phx.gbl...
Hi all,

I have an app that I want to have activation codes for, it has plugin dll
files each of which have an activation code as well. I need to generate a
unique code that is specific to the machine that the software is installed
on, when the user contacts the registration server the key that they get
to activate there software will be unique to there machine as it will be
generated from the code above. Please could you look at these possibles
and advise on which you think is the right way to do this, or if you know
of a better way I would appreciate any links/code samples you may have.

I could create a GUID the first time I start the app, this would be stored
in the registry, when validating codes I would read this value from the
registry, check it and activate the software if all is OK.
BUT, I hear that the use of the registry is not a great idea any more,
Microsoft recommends XML files, I must store this value outside of the
apps directory in case the user simply copies the entire directory to a
new PC and all would work, maybe I could store it in Windows directory in
a .cfg file or something.

I could use WMI to get the serial number of the mother board, I would not
need to store this value as it would be available through WMI at any time.
BUT I want to the app to run on Win 98 upwards, I have heard that WMI is
not supported on Win 98, also I can't find any examples of how to retrieve
the mother board serial number.

This app will be developed in VS2005, the Beta2 has a Go Live license with
it and the development time will be 6 - 12 months, Is there something in
VS2005 that would negate the need to do either of the above?

Is there another way?

And why do my posts always seem so long :-)

Thanks Joe

Nov 17 '05 #2
Thanks Nicholas,

Unfortunately the people who are going to be using this app have a lot
of Win 98 laptops, so I'm kind of stuck with supporting it :-(.

Many thanks for your thoughts.

Joe

Nicholas Paldino [.NET/C# MVP] wrote:
Joe,

Your only option here is going to be to use the registry. You should
probably store it in the HKEY_LOCAL_MACHINE hive, under the software key.
This is the only thing that one could guarantee would work on windows 98.

Honestly though, I don't know how much longer 98 is going to be around,
and I personally wouldn't target an app for that OS. Then again, my needs
are different =)

If you could eliminate 98 from the picture, I would recommend using
Isolated Storage, as it would give your application a space that it could
read/write files from/to, without having to worry about access rights and
whatnot.

Hope this helps.

Nov 17 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: JaNE | last post by:
Hello, I have made my cms... and is working, but have some, let me say "bugs"... And I don't know all reasons, please allow me slightly longer and most probably confusing post (that "confusing" is...
9
by: Howard | last post by:
I am currently looking at the various packages that are available for software protection. I have a particular question that I'd welcome your feedback on. Background info: I work for a company...
13
by: S.Tobias | last post by:
I'm examining the existence of temporary objects by looking at their addresses. The trick is to create a structure that contains an array as its first member. In an expression the array rvalue...
6
by: SivaSiva | last post by:
Hi, I'm getting the following error when I try convert a word document using asp.net. Application Event Log : Detection of product '{90110409-6000-11D3-8CFE-0150048383C9}', feature...
2
by: DKode | last post by:
Hello, I have built a couple of Active Directory administration tools that I plan to sell over my website. I was planning on making a "Full" version for people who purchase the software, and a...
14
by: Richard Harter | last post by:
Apologies for the length - this post is best viewed with fixed font and a line width >= 72. Below is the source code for a C header file that provides a suite of storage management macros. I am...
0
by: John Levin | last post by:
I'm trying to port Edanmo's OLE Storage class (http://www.mvps.org/emorcillo/en/code/grl/storage.shtml) to x64. After my modifications, it still works fine under x86. However, I'm getting a...
15
by: Ronald S. Cook | last post by:
If I wanted to prevent someone from purchasing my Windows software and then giving to friends, I'm wondering what the top 3 or so options are these days and pros/cons of each. I appreciate any...
5
by: Andy B | last post by:
I am making a web application that would randomly create an activation code and put it in a database. The web application would then send it in an email to the user with a link to go to and enter...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.