PDA

View Full Version : سوال: تعویض آیکون بدون تعویض DLL



lordarma
چهارشنبه 05 اسفند 1388, 21:54 عصر
دوستان می خواستم بدونم چطوری می شود آیکون های مای کامپیوتر و سطل بازیافت (در حالت پر و خالی) را با کد تعویض نمود؟
فقط به این توجه کنید که هدف من تغییر Dll آیکون ها نیست،
من می خواهم بلکل آدرس جدیدی به آیکون مورد نظر بدهم...

lordarma
پنج شنبه 06 اسفند 1388, 11:57 صبح
دوستان به این سوال جواب نمی دهید؟،
خواهشا اگر اطلاعاتی دارید به من بدهید...

REZADG
پنج شنبه 06 اسفند 1388, 20:31 عصر
هر چی که بتونیم توش یک پوشه یال فایل درست کنیم یک پوشه هست و توی پوشه یک فایل به نام desktop.ini هست که میتونید به وسییله ی اون تغییر داد

lordarma
پنج شنبه 06 اسفند 1388, 22:12 عصر
هر چی که بتونیم توش یک پوشه یال فایل درست کنیم یک پوشه هست و توی پوشه یک فایل به نام desktop.ini هست که میتونید به وسییله ی اون تغییر داد

من متوجه جوابتون نشدم،:اشتباه:
چه ربطی به سوال داشت؟:خجالت::خجالت::متفکر:

lordarma
جمعه 07 اسفند 1388, 23:44 عصر
کسی کد یا تابع API ی سراغ ندارد؟
لطفا کمک کنید،
در حال ساخت شبه تمی برای ویندوز هستم...

Samiee
یک شنبه 09 اسفند 1388, 10:45 صبح
دوستان می خواستم بدونم چطوری می شود آیکون های مای کامپیوتر و سطل بازیافت (در حالت پر و خالی) را با کد تعویض نمود؟
فقط به این توجه کنید که هدف من تغییر Dll آیکون ها نیست،
من می خواهم بلکل آدرس جدیدی به آیکون مورد نظر بدهم...
سلام.
آدرس آیکنهای Recycle Bin در حالتهای پر و خالی و پیش فرض در این کلید هست. با تغییر آن می توانید آیکن Recycle Bin را تغییر بدید.
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon

lordarma
یک شنبه 09 اسفند 1388, 12:05 عصر
سلام.
آدرس آیکنهای Recycle Bin در حالتهای پر و خالی و پیش فرض در این کلید هست. با تغییر آن می توانید آیکن Recycle Bin را تغییر بدید.
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon


من تا حالا خودم با این کلید ها کار نکرده ام،
می شه یک نمونه مثال بزنید؟
بقیه آیکون ها چگونه تعویض می شنود؟ (مای داکیومنت ، مای کامپیوتر)

Samiee
یک شنبه 09 اسفند 1388, 12:32 عصر
من تا حالا خودم با این کلید ها کار نکرده ام،
می شه یک نمونه مثال بزنید؟
بقیه آیکون ها چگونه تعویض می شنود؟ (مای داکیومنت ، مای کامپیوتر)
هر کدوم از این پوشه های Shell در واقع یه کلاس ثبت شده تو رجیستری هستند.
خودمون هم می تونیم کلاسهای دلخواهی رو درست کنیم. مثله کنترل پنل، مای داکیومنت، مای کامپیوتر و ...
برای تعویض آیکن، نام یا هر بخش دیگه باید از کلاس مربوط به اون استفاده کنید.
My Computer
20D04FE0-3AEA-1069-A2D8-08002B30309D
My Documents
450D8FBA-AD25-11D0-98A8-0800361B1103
لیست تمام کلاسهای موجود رو می تونی تو این کلید ببینی.
HKEY_CLASSES_ROOT\CLSID

lordarma
یک شنبه 09 اسفند 1388, 12:46 عصر
هر کدوم از این پوشه های Shell در واقع یه کلاس ثبت شده تو رجیستری هستند.
خودمون هم می تونیم کلاسهای دلخواهی رو درست کنیم. مثله کنترل پنل، مای داکیومنت، مای کامپیوتر و ...
برای تعویض آیکن، نام یا هر بخش دیگه باید از کلاس مربوط به اون استفاده کنید.
My Computer
20D04FE0-3AEA-1069-A2D8-08002B30309D
My Documents
450D8FBA-AD25-11D0-98A8-0800361B1103
لیست تمام کلاسهای موجود رو می تونی تو این کلید ببینی.
HKEY_CLASSES_ROOT\CLSID

می توانید یک نمونه عملی از تعویض یکی از آیکون ها بزنید؟ (سورس) :لبخندساده:
من تا حالا در مورد این کلاس ها کار نکرده ام...:ناراحت::چشمک:

Samiee
یک شنبه 09 اسفند 1388, 14:00 عصر
می توانید یک نمونه عملی از تعویض یکی از آیکون ها بزنید؟ (سورس) :لبخندساده:
من تا حالا در مورد این کلاس ها کار نکرده ام...:ناراحت::چشمک:
دوست عزیز من تازه برنامه نویسی رو شروع کردم، در واقع نمی تونم ایده هام رو به صورت کامل در قالب پروژه یا سورس در بیارم. ولی روش کار خیلی سادس.
به عنوان مثال شما میخوای آیکن Recycle Bin رو تغییر بدی. به کلید زیر برو:
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon
سه تا مقدار داره. (Default)
Empty
Full
کافیه مقدار اینا رو عوض کنی و برابر با مسیر آیکن مورد نظر قرار بدی. البته مسیر می تونه یه کتابخانه ی آیکن شبیه فایلهای exe یا dll هم باشه که در این صورت باید index آیکن رو هم وارد کنی. همین.
کدش یه همچین چیزی میشه:

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\C urrentVersion\\Explorer\\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\DefaultIcon", "", "%DEFAULTICONPATH%", RegistryValueKind.String);
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\C urrentVersion\\Explorer\\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\DefaultIcon", "Empty", "%EMPTYICONPATH%", RegistryValueKind.String);
Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\C urrentVersion\\Explorer\\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\DefaultIcon", "Full", "%FULLICONPATH%", RegistryValueKind.String);%DEFAULTICONPATH%
%EMPTYICONPATH%
%FULLICONPATH%
رو باید با مسیر آیکنهای خودت عوض کنی.

Samiee
یک شنبه 09 اسفند 1388, 14:03 عصر
شرمنده کدی که من نوشتم برای C# بود، خودت (یا دوستانی که روش تغییر یک مقدار در رجیستری رو میدونن) می تونن تبدیلش کنن به VB6.:چشمک:

lordarma
یک شنبه 09 اسفند 1388, 14:08 عصر
ممنون دوست عزیز،:لبخندساده::تشویق:
کس دیگری هم می تواند راهنمایی نماید؟:افسرده:

lordarma
یک شنبه 09 اسفند 1388, 14:23 عصر
شرمنده کدی که من نوشتم برای C#‎ بود، خودت (یا دوستانی که روش تغییر یک مقدار در رجیستری رو میدونن) می تونن تبدیلش کنن به VB6.:چشمک:

آخه در این مورد یکم فرقشون زیادتره :لبخند:
دوستان راهنمایی نمایید...:گریه::عصبانی++:

Samiee
یک شنبه 09 اسفند 1388, 14:59 عصر
آخه در این مورد یکم فرقشون زیادتره :لبخند:
دوستان راهنمایی نمایید...:گریه::عصبانی++:
سلام دوست عزیز. تغییر آیکن این کلاسها خیلی سادس و فکر می کنم کامل توضیح دادم بهتون.:لبخندساده:
این هم کد تغییر یک مقدار در رجیستری تو VB

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon", "Empty", "EMPTYICONPATH", Microsoft.Win32.RegistryValueKind.String)

IamOverlord
یک شنبه 09 اسفند 1388, 15:29 عصر
سلام دوست عزیز!
کد بالا واسه VB.NET هست نه VB6...
ضمنا برای کار با Registry از Module این سورسی که گذاشتم اسفاده کن:
:چشمک:

Samiee
یک شنبه 09 اسفند 1388, 15:31 عصر
سلام دوست عزیز!
کد بالا واسه VB.NET هست نه VB6...
ضمنا برای کار با Registry از Module این سورسی که گذاشتم اسفاده کن:
:چشمک:
سلام.
منظورم این بود که راحت پیدا میشه.
راستی من شنیده بودم، نسخه های مختلف از نظر کد نویسی تفاوتی ندارند. اشتباه بوده!؟:متفکر:

IamOverlord
یک شنبه 09 اسفند 1388, 15:40 عصر
نه دوست عزیز، در اصل تو net. از لحاظ کد نویسی زبان ها با هم مشکلی ندارن، ولی تو VB6 و پایین تر این طور نیست و VB6 جزء زبان های Native code محسوب می شه...
به هر حال ممنون :چشمک: