WebBrowser核心指定

2022-05-06 09:51:10 字數 3406 閱讀 3473

一、背景

這幾天在維護公司的乙個專案,嗯…到現在七八年沒人動過了(也是老古董了),都說n年前的**碰不得 處處是坑 不能挖坑還得一步一步的填坑,恰好今天就填了一坑 此處作為記錄 供以後翻閱,對**除了有些看不懂或者說是很凌亂之外,其他都還行(沒注釋、有注釋的地方是自動生成的英文注釋…..、包含 各種委託、事件、多執行緒、使用者控制項等等)。

二、問題

三、解決方式

1.公升級ie瀏覽器

2.手動指定webbrowser核心

瀏覽了許多資料後,找到了解決方案:改登錄檔

在開始選單內輸入「regedit.exe」,進入登錄檔編輯器

找到登錄檔項:hkey_local_machine\software\microsoft\internet explorer\main\featurecontrol\feature_browser_emulation

在右側空白區域內單擊滑鼠右鍵,點選[新建]→[dword(32-位)值]

最後執行myaplication.exe,發現問題已經解決

不同ie版本所對應的dword值:

原文:但是….這樣手動去改登錄檔始終比較麻煩,本著能用**解決的問題就盡量用**來解決的想法,決定改改

3.自動指定webbrowser核心

思路:檢測ie版本、根據不同ie版本返回dword值、修改登錄檔

直接貼**吧,裡面有注釋

code:12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

6162

6364

6566

6768

6970

7172

7374

7576

7778

7980

8182

8384

8586

8788

8990

9192

9394

publicclassieversion

mreg.close();

}

catch(exception ex)

}

}

///

/// ie版本號

///

///

staticintieversion()

else

}

return0;

}

///

/// 根據ie版本號 返回emulation值

///

///

///

staticintieversionemulation(intieversion)

if(ieversion == 8)

if(ieversion == 9)

elseif(ieversion == 10)

elseif(ieversion == 11)

return0;

}

}

最後,在程式啟動時呼叫:

ieversion.browseremulationset();

然後檢查登錄檔,發現已經修改成功。再次執行程式,發現問題已經解決。

指定Webbrowser控制項所用IE核心版本

解決方法是在登錄檔中為你的程序指定引用ie的版本號。比如我的程式叫做a.exe 對於32位程式 hkey local machine software microsoft internet explorer main featurecontrol feature browser emulation ...

Webbrowser指定IE核心版本 更改登錄檔

如果電腦上安裝了ie8或者之後版本的ie瀏覽器,webbrowser控制項會使用ie7相容模式來顯示網頁內容。解決方法是在登錄檔中為你的程序指定引用ie的版本號。比如我的程式叫做a.exe 對於32位程式 hkey local machine software microsoft internet ...

指定Webbrowser控制項所用IE核心版本

如果電腦上安裝了ie8或者之後版本的ie瀏覽器,webbrowser控制項會使用ie7相容模式來顯示網頁內容。解決方法是在登錄檔中為你的程序指定引用ie的版本號。比如我的程式叫做a.exe 對於32位程式 hkey local machine software microsoft internet ...