一、背景
這幾天在維護公司的乙個專案,嗯…到現在七八年沒人動過了(也是老古董了),都說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
public
class
ieversion
mreg.close();
}
catch
(exception ex)
}
}
///
/// ie版本號
///
///
static
int
ieversion()
else
}
return
0;
}
///
/// 根據ie版本號 返回emulation值
///
///
///
static
int
ieversionemulation(
int
ieversion)
if
(ieversion == 8)
if
(ieversion == 9)
else
if
(ieversion == 10)
else
if
(ieversion == 11)
return
0;
}
}
最後,在程式啟動時呼叫:
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 ...