473,471 Members | 1,868 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Unique PC ID From Drive Volume for Licensing?

ML
What is the best/easiest means to return the serial/volume number of the
drive containing the OS using VB.NET?

I'm looking to get this information as a unique ID for
activation/registration of a custom application so as to tie the software to
a single PC. I need something that will work with 98, ME, 2000, XP, and
newer.

Or if anyone has other suggestiosn on best means to generate an ID to tie to
a single PC for licensing I'd appreciate any suggestions. This needs to work
on a stand alone PC with possibly no net access or NIC card. Basically a
basic client PC with little more than the OS and the application.

Nov 21 '05 #1
7 3531
Well...

You could take the Processor ID via WMI and combinate with other IDs like HD
Id or MAC Address from a network card.
In this case, you need a mechanism to ask the customer for the information
in his PC, as a Register program or something like, then you can encrypt
that information an internaly in the app you could evalute a HASH that match
with the code generated by you.

See you...

Octavio Telis Aynés
www.comunidadpuntonet.org/df/
Or if you prefer, use a hardware lock.

"ML" <ML@discussions.microsoft.com> escribió en el mensaje
news:12**********************************@microsof t.com...
What is the best/easiest means to return the serial/volume number of the
drive containing the OS using VB.NET?

I'm looking to get this information as a unique ID for
activation/registration of a custom application so as to tie the software to a single PC. I need something that will work with 98, ME, 2000, XP, and
newer.

Or if anyone has other suggestiosn on best means to generate an ID to tie to a single PC for licensing I'd appreciate any suggestions. This needs to work on a stand alone PC with possibly no net access or NIC card. Basically a
basic client PC with little more than the OS and the application.

Nov 21 '05 #2
ML,

I do not know a shorter one
\\\Set a reference to system.managagemen
Dim disk As New Management.ManagementObject( _
"Win32_LogicalDisk.DeviceID=""C:""")
Dim diskProperty As Management.PropertyData
MessageBox.Show(disk.Properties("VolumeSerialNumbe r").Value.ToString)
///

However there is not one real complete always working method as you ask.

I hope this helps a little bit?

Cor
Nov 21 '05 #3
"ML" <ML@discussions.microsoft.com> schrieb:
What is the best/easiest means to return the serial/volume
number of the drive containing the OS using VB.NET?

I'm looking to get this information as a unique ID for
activation/registration


There is no easy way to do that. Don't forget that reactivation will be
necessary if a harddisk crashes and is replaced by another disk because the
serial number the licensing algorithm depends on changes. The user will
have to call your support, which will be very expensive for you (hotline 24
hours a day, maybe multiple channels depending on the number of users).

Microsoft's product activations tries to avoid this problem by calculating
an ID from more than one number that doesn't change if only a few of the
components change.

To make a conclusion: The easiest solution is to purchase a 3rd-party
licensing package, or to use .NET's licensing mechanisms when appropriate:

<URL:http://msdn.microsoft.com/library/en...nlicensingcomp
onentscontrols.asp>
<URL:http://windowsforms.net/articles/Licensing.aspx>

--
Herfried K. Wagner [MVP]
<URL:http://dotnet.mvps.org/>
Nov 21 '05 #4
"Octavio Telis Aynes" <ot****@NOSPAMtutordes.com> schrieb:
You could take the Processor ID via WMI and combinate
with other IDs like HD Id or MAC Address from a network card.


Using the MAC ID is a bad idea, especially when targetting home users, who
don't have a network card in their PC normally. I remember Maya (an
advanced rendering package) relying on the MAC ID, and I remember that
people had to fake a network card in order to get it work on their machine.

--
Herfried K. Wagner [MVP]
<URL:http://dotnet.mvps.org/>
Nov 21 '05 #5
ML
Do not many third party solutions depend on similar schemes?
Which third party licensing tools work best? And don't rely on having net
access?

As for the .NET licensing I cannot seem to make much sense of how to
implement it for an application. It seems overly complex. Know of any
simple examples on using it for application licensing?

It really comes down to there being some inconvenient for the client at the
cost of helping stop some piracy. If we cannot limit piracy then producing
the application is not worth it long term.
"Herfried K. Wagner [MVP]" <hi*******@m.activevb.de> wrote in message
news:O8*************@TK2MSFTNGP10.phx.gbl...
"ML" <ML@discussions.microsoft.com> schrieb:
What is the best/easiest means to return the serial/volume
number of the drive containing the OS using VB.NET?

I'm looking to get this information as a unique ID for
activation/registration


There is no easy way to do that. Don't forget that reactivation will be
necessary if a harddisk crashes and is replaced by another disk because
the
serial number the licensing algorithm depends on changes. The user will
have to call your support, which will be very expensive for you (hotline
24
hours a day, maybe multiple channels depending on the number of users).

Microsoft's product activations tries to avoid this problem by calculating
an ID from more than one number that doesn't change if only a few of the
components change.

To make a conclusion: The easiest solution is to purchase a 3rd-party
licensing package, or to use .NET's licensing mechanisms when appropriate:

<URL:http://msdn.microsoft.com/library/en...nlicensingcomp
onentscontrols.asp>
<URL:http://windowsforms.net/articles/Licensing.aspx>

--
Herfried K. Wagner [MVP]
<URL:http://dotnet.mvps.org/>

Nov 21 '05 #6
It was great to have the CPU ID available in earlier
chips but Intel dropped the unique internal ID for each
CPU. Maybe if enough people complain to Intel they will
resort the feature. It was definitely the best way to
bond software registration to a particular PC.

Using the Disk ID is not always available. Some SCSI
driver do not have a disk ID. This is particularly true
for server configurations with large, fast drives.
Nov 21 '05 #7
ML
On a ghosted drive would not the volume serial be saved as well?
If so this could lead to piracy but there is no solution that can't be
defeated anyway. It comes down to really preventing casual piracy.

"BobJ" <bo*@rjsolyn.com> wrote in message
news:SH*******************@newsread3.news.atl.eart hlink.net...
Re-install is not always necessary when a hard drive is replaced. Ghost
has been around a long time and there are other disk cloning utilities out
there. The method of having an un-install that decremented an install
counter so that a new install could be made was common in the days of
floppy distribution. But the answer is that there is no answer. Some
will always cheat and some will always complain.
BobJ
"ML" <ml@schoonersolutions.com> wrote in message
news:e5*************@tk2msftngp13.phx.gbl...
Yes a single device is not the best way, but for a standard PC the only
real component we can expect to be there in most instances is the HD.
The CPU ID is not always there, the PC may not have a NIC, etc. The other
good thing about the HD is that if it is replaced they will need to do a
reinstall anyway.

It would be nice if there was a better way but it really comes down to
having to tie the software to some physical device in the end, be it a
dongle or a component. The component ID is really nothing more than a
built in dongle when it comes down to it although with a dongles we can
be sure what we have, but then you run into extra cost, compatibility
issues, and lost dongles. No real easy answer.

"Richard L Rosenheim" <ri*****@rlr.com> wrote in message
news:u$**************@TK2MSFTNGP14.phx.gbl...
Yes, I agree with you that any one component can easily end up being
replaced/swapped out. The position I gather that Patrick was taking was
to
depend only upon a single device's ID. And the point I was trying to
make
that even a CPU can be changed.

Richard Rosenheim
"ML" <ml@schoonersolutions.com> wrote in message
news:eW**************@TK2MSFTNGP12.phx.gbl...
No matter what you use the potential that it will need to be replaced
and
reinstalled with a new key is going to happen. If the logic is loose
enough
to not require this then it is probably not tight enough to be useful
IMHO.
It really comes down to protecting your products.

If a HD needs to be replaced then the software will need to be
reinstalled
anyway, so I think this is as good a means as any.

No matter the solution some will have issues with it, even dongles are
not
well accepted solutions to many users.

"Richard L Rosenheim" <ri*****@rlr.com> wrote in message
news:O%****************@TK2MSFTNGP11.phx.gbl...
> I've have had CPUs fail, and have upgraded CPUs, so utilizing the CPU
> ID
> presents the same issues as using any sort of hard drive ID value.
>
> Richard Rosenheim
>
> "Patrick Ireland" <ir*****@airmail.net> wrote in message
> news:14****************************@phx.gbl...
>> It was great to have the CPU ID available in earlier
>> chips but Intel dropped the unique internal ID for each
>> CPU. Maybe if enough people complain to Intel they will
>> resort the feature. It was definitely the best way to
>> bond software registration to a particular PC.
>>
>> Using the Disk ID is not always available. Some SCSI
>> driver do not have a disk ID. This is particularly true
>> for server configurations with large, fast drives.
>
>



Nov 21 '05 #8

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

Similar topics

3
by: misc | last post by:
Does anyone know how to access the Volume Serial Number of a drive using .NET? It is easily done in VB6 using the FilingSystemObject. I appreciate any insight into the matter.
4
by: Alex | last post by:
Hi All I'm writing scripts in VBS fore years. But now I've to write a tool in Visual Basic .Net which has to connet to a Windows domain. I know how to do this in VBS but I don't find a way in...
6
by: Steve Marshall | last post by:
Hi all, I have an application that can use many different compact-flash cards as storage for different jobs the client is working on. I have added a function to erase all files from a flash...
18
by: JJ | last post by:
Now I know this question has been asked many times, but I cannot seem to find a good site which summarises the methods possible in vb .net. I am after a way of producing a unique serial number...
2
by: Kavitha | last post by:
Hi , Can any one tel me how to create a virtual drive in C#( similar to Gmail Virtual drive).Also tell me what interfaces could be used to create the same. Thanks in Advance Kavitha
18
by: cjl | last post by:
Hey: I am trying to run python from a usb drive under windows xp. I installed python "for this user" on to a machine, then copied the entire Python24 directory to the usb drive. I have the...
6
by: Paul Bromley | last post by:
Ok - I have given up on trying to find the active IP address for a given PC. For licensing purposes I need to retrive a unique identifier from the PC that the program is installed on. The Hard disk...
2
by: rick11 | last post by:
I need know when a drive is a USB drive, what USB port is it in? For the system I am doing this on, I do not have to worry about hubs plugged into hubs (into hubs...). It's just the motherboard...
4
by: Luc The Perverse | last post by:
Hi - I have very little C# programming experience. I am making a software product which calls for an interface almost identical to Windows Explorer - and I wondered if mounting a "virtual drive"...
0
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,...
0
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...
0
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...
1
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...
0
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...
0
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,...
0
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...
0
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...
0
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 ...

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.