2012-02-28 97 views
-1

我知道有很多主題包含與這一主題相同的主題,但這些主題都不能幫助我解決問題。更改用戶代理WebBrowser對象C#

我正在C#中製作一個簡單的iPhone Webbrowser。它應該做的唯一事情就是它像iPhone一樣。當您更改用戶代理字符串時,這是可能的。

我試過在WebBrowser.Navigate事件中,在第四個參數中可以放一個包含用戶代理字符串的頭文件。但是它只工作一次,點擊WebBrowser中的某些內容後,它將用戶字符串更改爲默認值。所以這對我來說不是一個可行的方法。

然後我試着在互聯網上找到的ExtendedWebBrowser控件。當你控制這個控件時,你可以在屬性窗口中設置用戶代理,但這對我來說完全不起作用。

因此,最後我試圖使用urlmon.dll來設置用戶代理,但每當他們談論它時,他們都會討論重新啓動進程。我無法找到任何使用該DLL的進程,因此我無法得到也無法工作。如果它能工作,每次我想使用應用程序都不可能重新啓動它。

有人可以幫助我得到我的問題的答案,我現在掙扎了一天嗎?

預先感謝您的人!

+0

韋斯利你好,我想現在做同樣的:製作一個網站「認爲」我是使用C#的iphone。我認爲我已經在網頁瀏覽器控制上嘗試了這3種不同的方法,至今還沒有運氣。你可以幫我嗎? – 2013-01-10 01:15:12

回答

0

這裏是你如何改變用戶代理

[DllImport("urlmon.dll", CharSet = CharSet.Ansi)] 
private static extern int UrlMkSetSessionOption(int dwOption, 
string pBuffer, int dwBufferLength, int dwReserved); 

const int URLMON_OPTION_USERAGENT = 0x10000001; 

string ua = "YourUserAgentString"; 

UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, ua, ua.Length, 0); 
-1

我對這個問題沒有任何補充,但應該提到的是IE不會在任何接近iPhone的地方渲染東西,特別是對於包含iPhone特定標記,腳本,和樣式表。

Google Chrome是基於WebKit的(與iPhone瀏覽器相同),並且Developer Tools中有一個選項可以覆蓋用戶代理。這可能是比在C#下託管IE更好的解決方案。 Chrome瀏覽器的調試工具在DOM中的使用也非常好。