|
|
Hi All,
I have a requirement, where I need to get the following information.
1. MAC Address.
2. HDD Serial Number
3. CD/DVD Drive Serial Number.
4. CPU Processor ID.
I have my application in VC++ using MFC.
Any help will be highly appreciated.
Thanks,
Sachin.
|
|
|
|
|
GetVolumeInformation() will do more than half the work.
For MAC Address - (this is only my opinion)
one thing that would work all the time is run a shell
"arp -a" and internally search the output for the needed MAC.
The other thing you can do is WMI(Read it somewhere don't know how it's done)
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
_AnShUmAn_ wrote: GetVolumeInformation() will do more than half the work.
How so? While it may be used to get the serial number of the hard drive or the CD drive, how do you propose it getting the MAC address or the CPU id?
_AnShUmAn_ wrote: For MAC Address - (this is only my opinion)
one thing that would work all the time is run a shell
"arp -a" and internally search the output for the needed MAC.
Even though APIs exist for obtaining MAC addresses, capturing the output or arp -a is not going to work. You should use ipconfig /all instead.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Perhaps you will found methods based on querying the System Registry. Nevertheless, consider that the data you need can be obtained using Windows Management Instrumentation (WMI):
- MAC Address -- see
Win32_NetworkAdapter WMI class; - HDD Serial Number -- see
Win32_DiskDrive WMI class; - CD/DVD Drive Serial Number -- see
Win32_CDROMDrive WMI class; - CPU Processor ID -- see
Win32_Processor WMI class.
WMI seems to be difficult to use in C++. So use it if no easier equivalent methods.
|
|
|
|
|
HI,
I want to be a good Programmer in VC++ and COM Technologies.
I have just done MY Masters in Computer Applications.
I know a little C, C++ (not so deep). I have really passion on VC++.
To know VC++ very well , Do i need to learn from microprocessors,
Computer Atchitecture(memory models) , operating systems and then C++ ?
what should i Do ?
please give me advice.
|
|
|
|
|
Nothing else would be better than starting with WIN32 (SDK)
Move on to learn MFC after that .
COM ant ATL come last.
The knowledge of microprocessors and computer architecture would be handy but if you are willing to work on MFC its of lesser use.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
|
Krishnatv wrote: HI,
I want to be a good Programmer in VC++ and COM Technologies.
I have just done MY Masters in Computer Applications.
I know a little C, C++ (not so deep). I have really passion on VC++.
To know VC++ very well , Do i need to learn from microprocessors,
Computer Atchitecture(memory models) , operating systems and then C++ ?
more knowledge will help you program better.. i.e. Consider Operating System you must have heard about Round Robin scheduling and reader writer problem.. thats problem are common in programmign world..
so it better you have overview of every thing!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
I have created a palettized (256 color entries) directdraw off-screen surface. And a none palettized directdraw primary surface.
I would like to blit the palettized surface to the none palettized surface while maintaining the color information present in the palettized surface.
The cooperation level is set to DDSCL_NORMAL. I have attached a clipper to the primary surface and I have attached a palette to the off-screen surface. This construction does not work! And the directdraw documentation gives me the awnser why not:
"It is important to note that DirectDraw blits never perform color conversion; any palettes attached to the source or destination surface of a blit are ignored"
Is their any solution to this problem without having to do the color conversion yourself? It would be a lot less complicated!!
Thanks
|
|
|
|
|
hi,
I want to have enable the XP style Look & feel in my application even
if it is run on any Win2k Platform ...
How can i invoke that style...
Can u help me Out...
thnkx in advance
Vinod
|
|
|
|
|
You'll need a .manifest file. See here.
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
|
Hello,
When I tried it, it doesn't work.
Best Regards,
Aniket Salunkhe
|
|
|
|
|
Well it worked for me the msdev thing provided that your operating sytem was Win-XP.
Regards,
FarPointer
Blog:http://farpointer.blogspot.com/
|
|
|
|
|
vinivc wrote: How can i invoke that style...
nope, you have to skin your application!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Hello,
i want to detect if the Windows Media Player is active and then get some Information from it (like title, elapsed time, etc). If it is possible i would like to use the COM Interface. My Problem is, that i don't know how to check if an instance is running and then connect via COM to it. If i am using CreateInstance it'll always start the application (but this is not what i want to have). Is there any possibility to get the information (Mediaplayer active, time, and so on) by using COM, or is there another mechanism for solving this problem.
Greetings
Rene
|
|
|
|
|
Hooking could be a better option.But while using hooks you should know what you are getting into.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
-- modified at 9:32 Wednesday 7th June, 2006
|
|
|
|
|
Hello there again,
at least i found a little nice function called GetActiveObject. With this function i hoped to get Information if a media player is already running (and probably an pointer to it). But unfortunately this doesn't work. I always get an error (I only know the german error-string : Vorgang nicht vorhanden, in English it might be : process is not existing), although a media-player is active. If i am trying to detect if Word or Excel this Function works (i get an pointer to IUnkown, and an Error-Code with S_OK, only when Word/Excel is active).
Has anyone an idea why GetActiveObject doesn't work with media-player ?!
Might it be that the MediaPlayer.exe only instanciate an media-player-core, to which i am not able to connect to ?!
Thx
PS. here is my code-snippet that doesn't work :
HRESULT hr;
CLSID stCLSID_1;
LPUNKNOWN pUnk;
LPDISPATCH pDisp;
// if (SUCCEEDED (::CLSIDFromProgID(L"Excel.Application", &stCLSID_1)))
if (SUCCEEDED (::CLSIDFromProgID(L"MediaPlayer.MediaPlayer.1", &stCLSID_1)))
{
hr = ::GetActiveObject (stCLSID_1, NULL, &pUnk);
if (hr == S_OK)
{
pUnk->Release ();
return true;
}
}
return false;
|
|
|
|
|
Hello everyone!
Look at my function:
<br />
char * getPartName(char * fileName, int part)<br />
{<br />
printf("%i\n", sizeof(fileName));<br />
<br />
<br />
char *partName, *numExt, *partStr, *unexName;<br />
int remSpace;<br />
<br />
<br />
partName = malloc(sizeof(char) * (sizeof(getUnextendedName(fileName)) + 4));<br />
<br />
<br />
strcpy(partName, getUnextendedName(fileName));<br />
<br />
<br />
if (part == -1)<br />
strcat(partName, ".mtx");<br />
<br />
<br />
else<br />
{<br />
<br />
partStr = malloc(sizeof(char) * 4);<br />
<br />
<br />
sprintf(partStr, ".%2i", part);<br />
<br />
<br />
strcat(partName, partStr);<br />
}<br />
<br />
return partName;<br />
}
See the debug printf at the top? Well, why does it print out "4"? It's supposed to be 14... Even when I change that printf to display the actual filename it prints out "screenshot.png", so why the heck would it be 4? Anyone know? Thanks!
Lord Kixdemp
www.SulfurMidis.com
www.SulfurSoft.tk
[ftp://][http://][hotline://]tsfc.ath.cx
|
|
|
|
|
fileName is a char *
And sizeof(char *) == 4.
If you want to know the length, use strlen(fileName)
|
|
|
|
|
filename is a pointer to a char array, and a pointer is always 4 bytes long. Use strlen instead.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
The reason is because your using the sizeof operator to request the size of the array an not the pointer
eg:
<code>#include <iostream.h>
void main()
{
char *pszSite = "Code project";
cout << "The size of string is: " << (sizeof)pszSite << endl;
cout << "The size of character is: " << (sizeof)*pszSite << endl;
cout << "The size of pointer is: " << (sizeof)&pszSite << endl;
}</code>
In other words with using pointers to chars
- No prefix operator treats it as a string.
- Deferencing (asterisk) operator means get the contents to where it is
pointing to. - Address of (ampersand) operator means get the actual address of the
pointer
I hope that makes sense
Alton
|
|
|
|
|