" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在C#中 webbrowser的使用心得

 更新時間:2013年04月12日 17:25:03   投稿:jingxian  
最近用webbrowser做了個東西,期間有點小曲折,而且網上的解決方法也基本都是淺嘗輒止,特此在這里發(fā)一下同大家分享。

1.首先是屏蔽瀏覽器右鍵菜單的問題,
用以下代碼可以讓瀏覽器用自己的右鍵菜單:
tempBrowser.ContextMenuStrip = this.contextMenuStrip1;
tempBrowser.IsWebBrowserContextMenuEnabled = false;

但是很不幸,上面的代碼在有的機器上不起作用,開始以為是環(huán)境或者插件的問題,折磨了很久無果,后來把.net升級到4.0竟然解決了這個問題,估計就是微軟webbrowser控件的問題

2.屏蔽拷貝快捷鍵和截屏快捷鍵

        public bool PreFilterMessage(ref Message msg)
        {
            if (msg.Msg == WM_KEYDOWN || msg.Msg == WM_KEYUP)
            {
                StringBuilder sb = new StringBuilder(50);
                GetClassName(msg.HWnd, sb, 50);

                if (sb.ToString().ToLower() == "internet explorer_server")
                {
                    if ((Control.ModifierKeys == Keys.Control && (((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.C)) || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.PrintScreen || ((Keys)msg.WParam.ToInt32() & Keys.KeyCode) == Keys.Menu)
                    {
                        MessageBox.Show("當前系統(tǒng)禁止內容復制,如需系統(tǒng)內部復制粘貼,請使用右鍵菜單的功能!", "屏蔽");
                        Clipboard.SetDataObject("null");
                        return true;
                    }
                }
            }

            return false;
        }

3.解決webbrowser遇到window.open無法打開頁面的問題
是因為打開頁面的url一般是通過myBrowser.StatusText來獲取的,但是window.open是無法獲取真正的url的,解決辦法就是在webbrowser的NewWindow事件特殊處理window.open的事件,獲取真正的url地址
            WebBrowser myBrowser = (WebBrowser)sender;
            TabPage mypage = (TabPage)myBrowser.Parent;
            string NewURL = "";
            string html = myBrowser.Document.ActiveElement.OuterHtml;
            string pattern = @"<button.*?onclick=.*\('(.*)'\).*";
            MatchCollection matches = Regex.Matches(html, pattern, RegexOptions.IgnoreCase);
            if (matches.Count == 1)
            {
                Match m = matches[0];
                Group g = m.Groups[1];
                if (g != null && g.Length > 0)
                {
                    string address = myBrowser.Url.Scheme + "://" + myBrowser.Url.Host + ":" + myBrowser.Url.Port + g.ToString();
                    NewURL = address.Replace("&amp;", "&");
                }
            }
            NewURL = string.IsNullOrEmpty(NewURL) ? myBrowser.StatusText : NewURL;


很遺憾這種方法只能適合一頁中只有一個window.open的情況,如果有多個window.open,我們可以用下面的方法:在webbrowser的DocumentCompleted中,if (mybrowser.DocumentText.IndexOf("window.open(") > -1),然后把所有window.open替換為window.location.href。但是后來發(fā)現(xiàn)系統(tǒng)執(zhí)行過這個過程之后,webbrowser的url會變成原來的url,不知道有沒有朋友能知道為什么。

4.屏蔽webbrowser拖拽網頁內容到外部word等的問題
        private void tempBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser tempBrowser = (WebBrowser)sender;
            tempBrowser.Parent.Text = tempBrowser.DocumentTitle;
            HtmlElement ele = tempBrowser.Document.CreateElement("script");//新增
            ele.SetAttribute("type", "text/javascript");
            ele.SetAttribute("text", "document.body.ondragstart=function(){window.event.returnValue=false;};");
            tempBrowser.Document.Body.AppendChild(ele);
 }

相關文章

  • C# 抓圖服務的實現(xiàn)

    C# 抓圖服務的實現(xiàn)

    這篇文章主要介紹了C# 抓圖服務的實現(xiàn),幫助大家更好的利用c#處理窗口,進行截圖,感興趣的朋友可以了解下
    2021-01-01
  • C#零基礎開發(fā)中最重要的概念總結

    C#零基礎開發(fā)中最重要的概念總結

    這篇文章主要為大家詳細介紹了C#零基礎開發(fā)中最重要的一些概念,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,需要的可以參考一下
    2023-02-02
  • C#中的==運算符用法講解

    C#中的==運算符用法講解

    本文詳細講解了C#中的==運算符的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Unity實現(xiàn)物體弧線運動到規(guī)定的坐標

    Unity實現(xiàn)物體弧線運動到規(guī)定的坐標

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)物體以弧線的形式運動到規(guī)定的坐標,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 深入理解C#的數(shù)組

    深入理解C#的數(shù)組

    本篇文章主要介紹了C#的數(shù)組,數(shù)組是一種數(shù)據(jù)結構,詳細的介紹了數(shù)組的聲明和訪問等,有興趣的可以了解一下。
    2016-11-11
  • C#獲取本機IP地址(ipv4)

    C#獲取本機IP地址(ipv4)

    本文主要介紹了C#獲取本機所有IP地址的方法、C#獲取本機IP地址(ipv4)的方法等。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Unity實現(xiàn)旋轉扭曲圖像特效

    Unity實現(xiàn)旋轉扭曲圖像特效

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)旋轉扭曲圖像特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Unity3D動態(tài)生成平面網格

    Unity3D動態(tài)生成平面網格

    這篇文章主要為大家詳細介紹了Unity3D動態(tài)生成平面網格,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 利用WinForm實現(xiàn)上左右布局的方法詳解

    利用WinForm實現(xiàn)上左右布局的方法詳解

    現(xiàn)在90%的管理系統(tǒng)都是在用上左右這種布局方式,真可謂是經典永流傳。本文將利用WinForm實現(xiàn)上左右布局這一布局效果,感興趣的可以學習一下
    2022-09-09
  • C#實現(xiàn)設置或屏蔽熱鍵的方法詳解

    C#實現(xiàn)設置或屏蔽熱鍵的方法詳解

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)設置或屏蔽熱鍵,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12

最新評論

九龙县| 永寿县| 边坝县| 黄陵县| 弥渡县| 阳西县| 会同县| 漳浦县| 克山县| 呼图壁县| 平凉市| 曲周县| 邹城市| 汪清县| 永昌县| 扶沟县| 定州市| 琼海市| 讷河市| 雅江县| 武安市| 华蓥市| 黄骅市| 秀山| 平舆县| 松桃| 抚州市| 司法| 玉溪市| 永安市| 宜州市| 伊宁市| 肇东市| 汉源县| 娱乐| 岚皋县| 海盐县| 连平县| 榆中县| 竹北市| 响水县|