PDA

View Full Version : حرفه ای: دستور برای تغییر آیکون اصلی برنامه به وسیله کد نویسی



__MAHNAZ__
چهارشنبه 27 تیر 1397, 12:54 عصر
با سلام من یه برنامه با C# و ویندوز فرم نوشتم. میخوام کدی بنویسم که کاربر بتونه آیکون فایل اجرایی برنامه (نه فقط یکی از فرم ها) رو انتخاب و تغییر بده. از ریسورس ها هم استفاده کردم ولی راه جایگزینی در قسمت آیکون اصلی برنامه رو پیدا نکردم.
اگر ممکنه کمکم کنیدو برام مهمه:افسرده:

رامین مرادی
چهارشنبه 27 تیر 1397, 14:39 عصر
میتونه کمکتون کنه:

https://stackoverflow.com/questions/3899364/apply-changes-to-mainforms-form-icon-at-runtime

__MAHNAZ__
پنج شنبه 28 تیر 1397, 08:44 صبح
میتونه کمکتون کنه:

https://stackoverflow.com/questions/3899364/apply-changes-to-mainforms-form-icon-at-runtime
عرض کردم خدمتتون من نمیخوام آیکون یک فرم مشخص رو عوض کنم (کاری که تو نمونه ای که فرستادید انجام میشه) میخوام کل برنامه و فایل اجراییش آیکونش تغییر کنه

danialafshari
پنج شنبه 28 تیر 1397, 08:57 صبح
عرض کردم خدمتتون من نمیخوام آیکون یک فرم مشخص رو عوض کنم (کاری که تو نمونه ای که فرستادید انجام میشه) میخوام کل برنامه و فایل اجراییش آیکونش تغییر کنه
با سلام
آیکون هر فرم بر اساس خصوصیت Icon که در Properties وجود دارد تنظیم میشود
شما باید کد تغییر آیکون رو در Constructor هر فرم قرار بدید یا میتونید یک فرم Base بسازید که فرم های دیگه ازش ارث بری کنند
موفق باشید

__MAHNAZ__
پنج شنبه 28 تیر 1397, 10:38 صبح
با سلام
آیکون هر فرم بر اساس خصوصیت Icon که در Properties وجود دارد تنظیم میشود
شما باید کد تغییر آیکون رو در Constructor هر فرم قرار بدید یا میتونید یک فرم Base بسازید که فرم های دیگه ازش ارث بری کنند
موفق باشید
اصلا مساله من عوض کردن آیکون یک فرم نیست میخوام آیکون فایل exe برنامه رو تغییر بدم.

Arioun
پنج شنبه 28 تیر 1397, 13:56 عصر
سلام.
عوض کردن آیکون فایل‌های اجرایی یا همون exe اگرچه ناممکن نیست، ولی استاندارد هم نیست و ممکنه به فایل آسیب بزنه.
حتما نرم‌افزارهای hex editor رو دیدید که فایل‌های اجرایی رو تا حدودی دیکامپایل می‌کنند. اگر در نتایج دیکامپایل فایل اجرایی جستجو کنید، با جدول ریسورس‌ها مواجه می‌شید که شامل آیکون فایل هم هست. از اونجا میشه جایگزین کرد. البته اگر حجم آیکون جایگزین شده بیشتر باشه، امکان آسیب به کل فایل اجرایی وجود داره. گذشته از این، ادغام کردن برنامه خودتون با یه hex editor اصلا منطقی نیست. مثلا اگر توزیع اپلیکیشن شما جنبه تجاری داشته باشه، قاعدتا باید در مقابل دیکامپایل شدن مقاومت کنه و حداقل اطلاعات رو در اختیار کاربر نهایی بذاره.
یک راه دیگه هم وجود داره که نسبت به دستکاری فایل exe سالم‌تره ولی باز هم سورس برنامه رو به خطر می‌ندازه.
شما می‌تونید یکی از پیش‌نیازهای برنامه رو net framework. با ورژن پایین‌تر از 4.7 تعیین کنید و بعدا از کامپایلر موجود در .net استفاده کنید و اپ رو با آیکون انتخاب شده کامپایل کنید. همونطور که گفتم در این صورت سورس کد شما آزادانه در دسترسه. میشه محافظت‌هایی به عمل آورد، اما مثل exe امن نیست. ضمنا، .net از 4.7 به بعد کامپایلر سی‌شارپ رو نداره. از این منبع می‌تونید برای کامپایل با آیکون دلخواه راهنمایی بگیرید:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/win32icon-compiler-option
ضمنا، این کامپایلر فقط مختص فایل‌های .cs نیست و میتونه کل سولوشن و پروژه رو با انواع آپشن‌ها کامپایل کنه. فقط کافیه در مستندات مایکروسافت در این زمینه‌ کمی جستجو کنید. موفق باشید.

Mahmoud Zaad
پنج شنبه 28 تیر 1397, 14:04 عصر
با سلام
اگه دلیل این کار (تغییر آیکن اصلی برنامه) رو هم بفرمایید شاید راه دیگه ای هم باشه.