PDA

View Full Version : سوال: بدست آوردن سریال هارد با زبان سی



saeed.afshari
چهارشنبه 17 تیر 1388, 11:02 صبح
سلام
برای انجام پروژه ای نیاز به شماره ی سریال هارد کامپیوتر دارم.به عبارتی می خوام که با کد سی شماره سریال هارد رو بدست بیارم,ولی نمی دونم که تو زبان سی چه کتابخانه ای این مشکل منو حل می کنه.
کسی میتونه کمکم کنه؟

tdkhakpur
چهارشنبه 17 تیر 1388, 13:39 عصر
سلام
تابع زیر اینکار را انجام می دهد.


long GetHardDiskSerial(char *DriveLetter)
{
unsigned int NotUsed;
unsigned int VolumeFlags;
char VolumeInfo[256];
unsigned int VolumeSerialNumber;
GetVolumeInformation(DriveLetter, VolumeInfol, 256, &VolumeSerialNumber, NotUsed,
VolumeFlags, NULLl, 0);
return VolumeSerialNumbers
}

saeed.afshari
چهارشنبه 17 تیر 1388, 17:05 عصر
سلام
این تابع از توابع API ویندوزه؟
کدی می خوام که روی لینوکس جواب بده.

adinochestva
چهارشنبه 17 تیر 1388, 17:11 عصر
هدر فايل كرنل hdreg.h رو نگاه بنداز. يك struct داره به نام hd_driveid


struct hd_driveid {unsigned short config; /* lots of obsolete bit flags */...unsigned char serial_no[20]; /* 0 = not_specified */...}

nimaamin
شنبه 20 تیر 1388, 00:06 صبح
راه ساده برای بدست آوردن سریال هارد

saeed.afshari
دوشنبه 22 تیر 1388, 12:54 عصر
راه ساده برای بدست آوردن سریال هارد

دستت درد نکن که مشکلمو حل کردی.
نیما جان اولا من گفتم که تو لینوکس این کار انجام بشه.
ثانیا من شماره سریال هاردو خواستم نه سریال پارتیشن.
http://www.barnamenevis.org/forum/images/icons/icon10.gif

saeed.afshari
دوشنبه 22 تیر 1388, 12:56 عصر
هدر فايل كرنل hdreg.h رو نگاه بنداز. يك struct داره به نام hd_driveid


struct hd_driveid {unsigned short config; /* lots of obsolete bit flags */...unsigned char serial_no[20]; /* 0 = not_specified */...}


چطوری می تونم از این struct استفاده کنم.
وقتی ازش استفاده می کنم می نویسه memory dump
lvsd