473,748 Members | 2,847 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 4518
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
4704
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
8831
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9548
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...
0
9374
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9325
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
9249
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
4876
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3315
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
2
2787
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2215
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.