全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1609
推到 Plurk!
推到 Facebook!

更換執行檔(EXE)的icon?

尚未結案
KuengYan
一般會員


發表:18
回覆:17
積分:7
註冊:2002-08-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-08 18:04:21 IP:211.23.xxx.xxx 未訂閱
請問...若想要寫一隻AP去更改已有EXE檔案的Icon. 要著哪方面著手? Yan
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-09 12:27:47 IP:210.243.xxx.xxx 未訂閱
給你一個範例, 這個範例會把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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-13 11:04:12 IP:211.76.xxx.xxx 未訂閱
想不到還可以這樣換圖示,先學起來囉
系統時間:2024-05-17 3:03:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!