更換執行檔(EXE)的icon? |
尚未結案
|
KuengYan
一般會員 發表:18 回覆:17 積分:7 註冊:2002-08-02 發送簡訊給我 |
|
Zard
尊榮會員 發表:24 回覆:396 積分:539 註冊:2003-11-26 發送簡訊給我 |
給你一個範例, 這個範例會把c:\2.exe的icon換成c:\1.exe的icon
BOOL ChangeExeIcon( char* szSrcFile, int iSrcIconIndex, char* szDestFile, int iDestIconIndex) { HMODULE hSrcModule; HRSRC hSrcRes, hSrcLockRes, hSrcFindRes, hResUpdate; hSrcModule = LoadLibraryA(szSrcFile); if (!hSrcModule) return FALSE; __try { // 找尋指定的Icon hSrcFindRes = FindResource(hSrcModule, MAKEINTRESOURCE(iSrcIconIndex), RT_ICON); if (!hSrcFindRes) return FALSE; // 載入指定Icon hSrcRes = LoadResource(hSrcModule, hSrcFindRes); if (!hSrcRes) return FALSE; // 將所找到的Icon Lock到Global Memory hSrcLockRes = LockResource(hSrcRes); if (!hSrcLockRes) return FALSE; // 更新目的檔Icon hResUpdate = BeginUpdateResource(szDestFile, FALSE); if (!hResUpdate) return FALSE; if (!UpdateResource(hResUpdate, RT_ICON, MAKEINTRESOURCE(iDestIconIndex), 0, hSrcLockRes, SizeofResource(hSrcModule, hSrcFindRes))) return FALSE; if (!EndUpdateResource(hResUpdate, FALSE)) return FALSE; } __finally { FreeLibrary(hSrcModule); } return TRUE; } void __fastcall TForm1::Button1Click(TObject *Sender) { // 一般來說Exe檔的Icon Index都是1. if (ChangeExeIcon("C:\\1.exe", 1, "C:\\2.exe", 1)) ShowMessage("OK"); else ShowMessage("Failed!"); }執行前 執行後 |
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |