|
Hello,
I am currently writing a piece of software that needs to know if it is still running on the same PC as it was installed, or if it has been moved or the hardware has changed.
At the moment, I use the PCs network card MAC address, which usually works fine, but fails when the user changes network cards. This can happen if users use docking-stations with seperate NICs, or USB WLAN adapters, so I'd like to not use the MAC address anymore for system identification.
So the question is: are there other suitable ways to uniquely determine a PC? Is there a description of the way Microsoft uses to identify a PC when activating XP or Vista, which seems to work quite well, even if I change my network card my Windows stays activated, only if I do major changes to my hardware like changing the motherboard I will have to reactivate.
So I'd like to do it a similar way. Any hints how I can do this?
Thanks alot,
Erik
|
|
|
|
|
You could try using the computer SID.
|
|
|
|
|
Some (but not all) processors have an ID number. (I seem to remember reading Intel processors had it, but not AMD). You could use the volume-serial number, but this will change if the user replaces the hard disk.
I got the impression that Microsoft looks at multiple sources of identification, and detects a change when a certain threshold of things have changed. This allows you to replace a couple of components without the application breaking.
|
|
|
|
|
This is part of the holy grail for copy protection - it doesn't exist.
MS gets the info from a bunch of hardware on your system and assigns points to each.
e.g.
- How much ram, what type ...
- Graphic card specs
- CPU specs
- Monitor specs
- NIC MAC
The items that are considered to be fairly consistant over the life of a machine receive more points than others e.g. MAC may have a higher point value than the amount of memory.
The license manager checks the current settings against the previous ones (not just the last) and looks at the difference in terms of 'points changed in x amount of time'. If too many points have changed it assumes you are running on a different machine.
[EDIT]
http://www.licenturion.com/xp/fully-licensed-wpa.txt[^]
http://kb.wisc.edu/helpdesk/page.php?id=5294[^]
http://www.microsoft.com/downloads/details.aspx?FamilyID=5cb10f03-27f6-461d-a3db-d440b4ced7f6&DisplayLang=en[^]
[/EDIT]
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
modified on Wednesday, December 10, 2008 12:24 PM
|
|
|
|
|
Dear friends;
How i can set my current date(Y,M,D), to a file name in c++ (DOS)?
Such as "20081210.txt".
Thanks.
|
|
|
|
|
Like this
<code>
int main()
{
struct tm *t;
time_t lt;
time(& lt);
t = localtime(<);
}
</code><pre>
do not forget to include "time.h"
<div class="ForumSig">You need to google first, if you have "It's urgent please" mentioned in your question.
;-)_AnShUmAn_
</div>
|
|
|
|
|
I ran across a project in VC 5.0 source that I could really use, but I don't have a compiler. Can someone compile this little command line tool for me and send me the binary?
http://www.codeproject.com/KB/applications/iniutils.aspx
Thanks!
David
|
|
|
|
|
Hi,
I have an application in which i have a editbox and data for it will be populated dynamically ,i have verticall scroll applied for it,now my problem is i want that scroll to be visible only if the length of the data coming into the editbox exceeds the length of the editbox.
Can anybody suggest a right approach for this?
Thanks in advance.
modified on Wednesday, December 10, 2008 3:28 AM
|
|
|
|
|
guys, can you give me some idea on how to control video recorder using VC++ and MFC..
for example, there is a video recorder connected to the pc, i want to create an application that can make that recorder to play, stop, pause, record, rewind and forward..
How can i do this?? i really dont have any idea...
|
|
|
|
|
I believe the first question that arises here would be: HOW is the recorder connected to the PC?
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
the only way i can think is by connecting it by USB.... or anything, just to be able to create the program..
|
|
|
|
|
To control any device you would need specifications of the protocols the device used to communicate with the PC.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
and is that dependent on the hardware?? i mean, for example, different brands have different specifications, and different way to access?? this is gonna be harder that i thought... waa..
|
|
|
|
|
Well, there are some standards like for USB connected storage devices, i'm not sure if there are such for controlling a video camera but i guess there could be, i mean, most cams give you the same possibilities, like play, rewind, stop, such, so why not have a standard for that, my cam could be controlled thorough firewire, maybe try looking into that to see if there are any docs around.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
wow, thanks very much for this info.. ill try to research on that..
|
|
|
|
|
i read that, and its just the connection.. though originally its for MAC, theres also available for windows..
i stil dont have any idea on how to program this... hmm.
|
|
|
|
|
Well yes, firewire itself is an interface. Check out this link about firewire[^] and look at the Interface section, there's something called AV/C, that looks like something you'd use to control a camera.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
thanks for the link.. im still on the process of figuring out how to program it.. though i have a very large idea, thanks to you.
|
|
|
|
|
Hi,
In my application, which have number of dialogs. In a dialog already created, I added a button control.
When I try to add event handler function for this button thru class wizard I got an error message:
"Error in updating files(s)(C:Documen.......\ModelOpen.cpp,C:Doc....\ModelOpen.h) for class "CModelOpen"."
I also checked that files,its not in Read Only. Then where is the problem?
Also I tried deleting and recreating the .NCB and .CLW files. But in vain.
Pls help me and provide me a solution.
|
|
|
|
|
did you try to add the handlers manually. There is no magic done by the editor apart from adding the code at the right place. You just need to figure out where and why
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
Thanks for your rply.
I didnt tried adding the event handler manually; I think it might work. But I want to know why it fails through class wizard. So I want to know what's the correction I have to do to make it work
|
|
|
|
|
manohar_balu wrote: I didnt tried adding the event handler manually; I think it might work
Hmm...It will work
manohar_balu wrote: So I want to know what's the correction I have to do to make it work
Just a guess though, did you confirm that the file ModelOpen.* are present and act as a class for your dialog.
Was it possible for you to add a member variable/event handler to any other control on the dialog prior to this
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
Yes both the source and header files are present and are included in this project.
I was n't able to add message handler for other new controls also.
When I tried to add member variable for the same button control, the same error message came but the member variable got created. And also all the message handlers got added up so all the message handlers got repeated.
|
|
|
|
|
May be you have edited the wizard generated code (grayed code) some where in those files. e.g. code between AFX_DATA_MAP or AFX_MSG_MAP tags.
You should not edit the code between the tags used by wizard.
I hope it helps.
Regards,
Sandip.
|
|
|
|
|
Hi .. in one of my function(exported) i have to pass a variable of POSITION type. I have looked for its definition, which I found in afx.h file
struct __POSITION {};
typedef __POSITION* POSITION;
Do any one have idea what value it will accept.
Thanks
amit
|
|
|
|