473,735 Members | 2,025 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 4517
Joe,

Your only option here is going to be to use the registry. You should
probably store it in the HKEY_LOCAL_MACH INE 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.co m
"Joe_Black" <Jo******@newsg roups.nospam> wrote in message
news:u$******** ******@TK2MSFTN GP10.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_MACH INE 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
2680
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 mainly becaose of my bad english, and that bad english is also reason why am I learning php that slow...). As first, what is problem: some users after succsesfull registration and login can not see "memeber_menu" and can not activly participate...
9
2365
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 that develops software, and typically releases software SDKs. Development is in C++ using MS Visual C++. We need to apply software encryption/protection to achieve: 1) Time-limited versions (e.g software expires after X days)
13
1659
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 is converted to a pointer to its first member. Since this address is also the address of the array, and that is the address of the structure, I conclude that this is also the address of the temporary storage for the structure (r)value. I'm...
6
6004
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 'WordUserData', component '{8ADD2C93-C8B7-11D1-9C67-0000F81F1B38}' failed. The resource 'HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\UserData' does not exist.
2
1218
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 "Demo" version which is a completely seperate assembly that is stripped down so noone can take a demo version and crack it into a full version. My main question is this: What tools does VS2005 have to allow me to apply a "activation" keycode
14
2130
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 asking for comments on it. In particular: Are there any gotchas that I have overlooked? Are there any suggestions for improvements? Is there a generally available superior packages to do the same thing with the same general licensing? ...
0
1825
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 mysterious error when I try to call ReadMultiple on my IPropertyStorage object under x64: "No mapping for the Unicode character exists in the target multi-byte code page. (Exception from HRESULT: 0x80070459)". Here's the calling code: Dim PROP As...
15
4703
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 responses, Ron
5
3231
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 the activation code. How would I do this? and what sql server data type would I use? I want the activation code to be no longer than 12 characters, have a mix of numbers and letters and have no special symbols.
0
8964
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9466
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
9253
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9201
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8202
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6747
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 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 a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6049
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4564
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3277
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

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.