View Full Version : سوال: عوض کردن آیکن برنامه کنسولی WIN 32
IMANAZADI
سه شنبه 24 آبان 1390, 10:52 صبح
با سلام
راهی هست که آیکن برنامه های کنسولی WIN32 را عوض کرد
با تشکر
abcdefghijklmnopkrs
چهارشنبه 25 آبان 1390, 00:11 صبح
ی برنامه ای بود بنام iconchanger فک کنم! این و پیدا کنی برای ایکون همه چی و عوض میکنه.
mehdi.mousavi
چهارشنبه 25 آبان 1390, 12:14 عصر
با سلام راهی هست که آیکن برنامه های کنسولی WIN32 را عوض کرد با تشکر
سلام.
البته که این کار میسره... ابتدا در پروژه مورد نظر، نگاه کنید ببینید آیا فایل Resource ای دارید یا خیر (با دنباله .rc). اگر وجود نداره، Resource جدیدی به برنامه اضافه کنید. سپس، فایل ICON مورد نظر رو در Resource ایجاد شده تعریف کنید، برنامه رو Compile کنید. اگر ICON مورد نظر اولین ICON در فایل .rc باشه، با Compile برنامه به هدفتون میرسید و Icon تغییر خواهد کرد. حتی اگر فایل .rc رو بصورت Text باز کنید، چنین Comment ای در اون فایل وجود داره:
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
که گویای مطلب فوق الذکر هستش.
موفق باشید.
IMANAZADI
دوشنبه 30 آبان 1390, 19:05 عصر
دوست عزیز من مطابق گفته شما عمل کردم و یک فایل resource آیکن اضافه کردم و برنامه رو کامپایل کردم ولی آیکون فایل اجرایی عوض نشد
mehdi.mousavi
دوشنبه 30 آبان 1390, 22:01 عصر
دوست عزیز من مطابق گفته شما عمل کردم و یک فایل resource آیکن اضافه کردم و برنامه رو کامپایل کردم ولی آیکون فایل اجرایی عوض نشد
می تونید پروژه رو ارسال کنید ببینم مشکل چیه؟
AliAskari1375
جمعه 04 آذر 1390, 14:45 عصر
باید اول دستگیره پنجره کنسول را با تابع GetConsoleWindow به دست بیاری و بعد با ارسال پیام WM_SETICON به اون آیکن کنسول رو عوض کنی .
محمد فدوی
یک شنبه 06 آذر 1390, 14:16 عصر
با تشکر از AlتAskari1375...
دوتا آیکون بزرگ و کوچیک توی Resource ها بذار مثلا IDI_BIG و IDI_SMALL
این تابع رو توی برنامه فراخونی کن (اول API ها رو include کن)
void ChangeTheIcon(void)
{
HICON hSmall = LoadIcon(NULL, MAKEINTRESOURCE(IDI_SMALL));
if(!hSmall) return;
HICON hBig = LoadIcon(NULL, MAKEINTRESOURCE(IDI_BIG));
if(!hBig) return;
HWND hWnd = GetConsoleWindow();
if(!hWnd) return;
SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hSmall);
SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hBig);
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.