473,883 Members | 1,591 Online
Bytes | Software Development & Data Engineering Community
+ 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 3551
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******** *************** ***********@mic rosoft.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.managage men
Dim disk As New Management.Mana gementObject( _
"Win32_LogicalD isk.DeviceID="" C:""")
Dim diskProperty As Management.Prop ertyData
MessageBox.Show (disk.Propertie s("VolumeSerial Number").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.ne t/articles/Licensing.aspx>

--
Herfried K. Wagner [MVP]
<URL:http://dotnet.mvps.org/>
Nov 21 '05 #4
"Octavio Telis Aynes" <ot****@NOSPAMt utordes.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.ac tivevb.de> wrote in message
news:O8******** *****@TK2MSFTNG P10.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.ne t/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.co m> wrote in message
news:SH******** ***********@new sread3.news.atl .earthlink.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@schoonersol utions.com> wrote in message
news:e5******** *****@tk2msftng p13.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.co m> wrote in message
news:u$******** ******@TK2MSFTN GP14.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@schoonersol utions.com> wrote in message
news:eW******** ******@TK2MSFTN GP12.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.co m> wrote in message
news:O%******** ********@TK2MSF TNGP11.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*****@airmai l.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
4136
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
8788
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 VB.Net. I've no idea how to logon to the domain via Net.Socket. It is not necessary to map a network drive. I can transfer data via UNC names. Can anybody give me a suggestion how to realize it?
6
2684
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 card, and that works fine. But I would also like to be able to make the Volume Label on each flash card the job name its files belong to. I can't work out how to either write the Volume Label to the cards, or to remove it when I erase them. I...
18
7341
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 for my app. The program would produce a unique identifier for the computer, then I would psovide the user with a serial number unique to their machine. In other words I would like to check for things like: i) Hard disk (not volume) serial number...
2
8207
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
6791
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 following in a batch file at the root of the drive: @path=%PATH%;%CD%Python24;%CD%Python24\libs;%CD%Python24\Scripts;%CD%Python24\Lib\site-packages;%CD%Python24\DLLs @set pythonpath = %CD%Python24
6
30717
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 serial number would do fine, but on Googling it seems that some of the sample code will now laways work on W2K, and not without administrator rights. Hence my question - how can I consistently get a UNIQUE PC identifier using vb.net 2003 - not...
2
2360
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 with 3 USB ports in it. I know it just has 3 USB ports because the whole thing sits on a table without any case around it. Can I tell which drive is in which port? And if so, how? BTW: drives may or may not be there at boot, different thumb...
4
9168
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" would be feasable for me (someone not good at programming) to implement. -- LTP :)
0
9793
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
11151
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
10750
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
10858
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
7134
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
5804
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
4619
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
4225
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3237
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.