Page 1 of 2

hdd serial number cu wmi sub vista

Posted: 15 May 2010, 22:03
by toderut
doresc sa aflu hdd serial number sub vista (sub celelalte os nu am probleme- nici cu w7).
am inteles ca cel mai la indemana ar fi cu wmi.
multumesc!

Re: hdd serial number cu wmi sub vista

Posted: 16 May 2010, 17:46
by cristianamarie
Nu e nevoie de WMI.
GetVolumeInformation are un LPDWORD lpVolumeSerialNumber.
Cu WMI e Win32_PhysicalMedia unde ai string SerialNumber.

Re: hdd serial number cu wmi sub vista

Posted: 09 Jun 2010, 20:21
by toderut
GetVolumeInformation da serialul partitie, nu cel fizic al hardului, de care am eu nevoie(mai mult, acesta poate fi schimbat cu usurinta). Am nevoie de ceva unic al calculatorului, care poate fi citit din program
O sa incerc cu Win32_PhysicalMedia, sa vad ce da si asta!. Poate ma ajutati!
Multumesc!

Re: hdd serial number cu wmi sub vista

Posted: 09 Jun 2010, 20:55
by neagu_laurentiu

Re: hdd serial number cu wmi sub vista

Posted: 09 Jun 2010, 21:37
by toderut
l am incercat, dar merge in xp, w7 etc dar nu merge in vista nici cu drepturi de administrator.

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 11:58
by MrSmersh
Da manifest ai la app?

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 13:00
by toderut
Nu am!

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 17:15
by cristianamarie
Mai merita incercat cu SetupDiXXX APIs. Trebuie culese info despre class GUID la discuri si aproape sigur ai si serial number acolo.

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 19:54
by toderut
Daca nu vreau prea mult v as ruga sa ma ajutati cu un cod care sa extraga serialul hardului (master).
Cel di diskid32 nu mi merge sub vista.
Va multumesc anticipat!

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 21:56
by MrSmersh
Gogu da idei din primahttp://www.codeproject.com/KB/mcpp/DriveInfoEx.aspx de ex si e scris de un roman...
Sau scrie tu codu si te ajutam sa il faci sa mearga

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 22:13
by toderut
it's wonderful but..
don't work on Vista or Win7!

Din pacate, nu am capacitatea de a solutiona povestea asta (eu sunt mic - am doar o steluta, ma intelegeti :yes: ).
Ramane valabil apelul cu codul sursa!

Re: hdd serial number cu wmi sub vista

Posted: 10 Jun 2010, 22:50
by Silviu Ardelean
Pe Vista si Win7 cu siguranta e si o problema de permisiuni...

Re: hdd serial number cu wmi sub vista

Posted: 11 Jun 2010, 00:07
by cristianamarie
1. formatezi un string L"\\\\.\\PHYSICALDRIVE%d", %d = disk number (0, 1, ...)
Cu asta facem un CreateFile

Code: Select all

HANDLE hDevice = ::CreateFileW(szHDD, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
2. prepari un query

Code: Select all

STORAGE_PROPERTY_QUERY query;
memset(&query, 0, sizeof(STORAGE_PROPERTY_QUERY)); 
query.QueryType = PropertyStandardQuery;
query.PropertyId = StorageDeviceProperty;
3. DeviceIoControl cu IOCTL_STORAGE_QUERY_PROPERTY

Code: Select all

BYTE pbinfo[16384] = {0};
DWORD unused = 0; 
::DeviceIoControl(hDevice, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query), &pbinfo[0], _countof(pbinfo), &unused, (LPOVERLAPPED) NULL);
4. mergi la offsetul serial

Code: Select all

STORAGE_DEVICE_DESCRIPTOR *descrip = (STORAGE_DEVICE_DESCRIPTOR *)&pbinfo[0];
char* ssn = (char *)&pbinfo[descrip->SerialNumberOffset];
Aici o sa fie un string ascii hexa, reversed probabil.
La mine e "020202027502d244857593548303b4c493536303".
Din hexa iese " W -DXW9E80KL9560", stringul e reversed, " WD-WXE908LK5906", trim stringa/dreapta si finally iese "WD-WXE908LK5906".


Nota. 1 SIGUR o sa dea ERROR_ACCESS_DENIED (5) pentru non-admins.

Re: hdd serial number cu wmi sub vista

Posted: 11 Jun 2010, 00:49
by toderut
citire serial.rar
(27.97 KiB) Downloaded 348 times
asta merge in xp si win7 dar nu vrea in vista
bateti l voi la cap cu permisiunile

Re: hdd serial number cu wmi sub vista

Posted: 11 Jun 2010, 00:56
by toderut
Cristi, iti multumesc mult pentru stradanie (si celorlalti, desigur). Ramane sa studiez atent tot ce ai postat si sa folosesc la ceea ce mi trebuie mie.
Noctem bonam!