PDA

View Full Version : تشخیص آیکن ها !!!



مهدی رحیم زاده
پنج شنبه 10 آبان 1386, 16:56 عصر
سلام
چطوری میشه آیکن یک فایل رو تشخیص داد که چیه . البته فایل و فولدر فرقی نمیکنه کلا هرچیزی توی ویندوز .
می خوام که آیکن هر چیزی رو که می خوام توی listview نشون می دم دقیقا همونی باشه که توی ویندوزه ، باید چکار کنم ...
مثلا فایل های textهمونی که تو ویندوزه ، فولدرها و خلاصه هر چیزی ...

ممنون

PC2st
پنج شنبه 10 آبان 1386, 21:09 عصر
به کلید HKEY_CLASSES_ROOT از رجیستری رفته، میبینید که بعضی از زیر کلیدهای آن دارای زیر کلیدی بنام DefaultIcon هستند که یک آیکن رو برای خودشون مشخص کردند.

mehdi.mousavi
پنج شنبه 10 آبان 1386, 21:20 عصر
سلام
چطوری میشه آیکن یک فایل رو تشخیص داد که چیه . البته فایل و فولدر فرقی نمیکنه کلا هرچیزی توی ویندوز .
می خوام که آیکن هر چیزی رو که می خوام توی listview نشون می دم دقیقا همونی باشه که توی ویندوزه ، باید چکار کنم ...
مثلا فایل های textهمونی که تو ویندوزه ، فولدرها و خلاصه هر چیزی ...

ممنون


سلام.
توی رجیستری، زیر HKEY_CLASSES_ROOT، دنباله فایلها بصورت کلیدهای جداگانه نوشته شده. مثلا .txt نمایانگر فایلهایی با دنباله txt (همون فایلهای text) هستش. اگر Default Value این کلید رو نگاه کنید، یه String میبینید. مثلا تو این حالت txtfile.

این نام کلیدی هستش که باید بهش رجوع کنیم. یعنی باید بریم سراغ کلید زیر:


HKEY_CLASSES_ROOT\txtfile


اگر به این کلید دقت کنید، یه کلید دیگه به اسم DefaultIcon میبینید که Default Value اون، نشون دهنده ICON ای هستش که شما بدنبالش هستید. بسیاری از Icon ها، حاوی همچین مقداری هستن:

%SystemRoot%\system32\shell32.dll,-152

152 نشوندهنده شماره Resource اون آیکون در فایل Shell32.dll هستش. از اینجا به بعد نیاز به Win32 API ها دارید تا بتونید Resource ها رو Extract کنید و شماره مورد نظرتون رو از دل اون فایل بیرون بکشید. متودی که اینکار رو براتون انجام میده، prototype اش اینه:

HICON ExtractIcon(HINSTANCE hInst, LPCTSTR lpszExeFileName, UINT nIconIndex);

کافی هستش که اینو در C#، تعریف کرده و سپس روند توضیح داده شده رو طی کنید تا به Icon مورد نظر برسید.

مهدی رحیم زاده
جمعه 11 آبان 1386, 09:35 صبح
میشه با یک کد کوچولو توضیح بدین ...

مهدی رحیم زاده
جمعه 09 آذر 1386, 20:07 عصر
کافی هستش که اینو در C#، تعریف کرده و سپس روند توضیح داده شده رو طی کنید تا به Icon مورد نظر برسید.
__________________

میشه کدش رو برام بزارید ...
ممنون میشم
آخه خیلی لازمش دارم ...