IE 瀏覽器的工具列背景圖片其實儲存在登錄檔中,只需修改兩個字串值即可實現「換膚」。本文示範用 C++ Builder 快速建立一個圖形化 IE Skin 工具,支援圖片預覽、檔案選取、一鍵套用與即時生效。
路徑:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar
BackBitmap:IE 4/5 通用背景圖片路徑BackBitmapIE5:IE 5 專用背景圖片路徑將兩值設為同一張 .bmp 完整路徑,重新啟動 IE 即可生效。
| 元件 | 名稱 | 關鍵屬性 |
|---|---|---|
| Form | Form1 | Caption = "我的 IE Skin" |
| Panel (Top) | Panel1 | Align = alTop, Caption = "" |
| Label | Label1 | Caption = "路徑:" |
| Edit | URL | Text = "" |
| OpenDialog | OpenDialog1 | Filter = "Bitmap|*.bmp" |
| Button | BtnBrowse | Caption = "瀏覽..." |
| Button | BtnApply | Caption = "修改 IE 外殼" |
| ScrollBox (Client) | ScrollBox1 | Align = alClient |
| Image | Image1 | AutoSize = true, Parent = ScrollBox1 |
void __fastcall TForm1::URLChange(TObject *Sender)
{
try
{
Image1->Picture->LoadFromFile(URL->Text);
}
catch (...) { /* 忽略無效路徑 */ }
}
void __fastcall TForm1::BtnBrowseClick(TObject *Sender)
{
if (OpenDialog1->Execute())
{
URL->Text = OpenDialog1->FileName;
Image1->Picture->LoadFromFile(URL->Text);
}
}
void __fastcall TForm1::BtnApplyClick(TObject *Sender)
{
if (strlen(URL->Text.c_str()) >= 5) // 至少 "x.bmp"
{
TRegistry *reg = new TRegistry();
try
{
reg->OpenKey("Software\\Microsoft\\Internet Explorer\\Toolbar", true);
reg->WriteString("BackBitmap", URL->Text.c_str());
reg->WriteString("BackBitmapIE5", URL->Text.c_str());
reg->CloseKey();
ShowMessage("套用成功!請重新啟動 IE 瀏覽器。");
}
__finally
{
delete reg;
}
}
else
{
Application->MessageBox("BMP 圖片路徑長度至少 5 字元", "錯誤", MB_OK | MB_ICONERROR);
}
}
TJPEGImage、TPNGImage 載入 JPG/PNG 並轉存為 BMP。BackBitmapStyle(0=磚貼, 1=置中, 2=拉伸)。WM_SETTINGCHANGE 訊息通知 Explorer 重讀登錄,免重啟 IE(需管理員權限)。幾十行程式碼即可打造個性化瀏覽器外觀,展示了 C++ Builder 操作系統登錄檔與多媒體元件的便利性。