自動關閉webBrowser彈出的所有視窗

2021-06-27 17:16:25 字數 2136 閱讀 6739

在c# winform程式裡,webbrowser是乙個很好用的,類似瀏覽器的控制項。在模擬post,get請求時,有些時候httpwebrequest和httpwebresponse,會不能用,因為有些**有「防」(加js等)這種請求,必須要瀏覽器來請求才可以,這樣我們就需要把httpwebrequest的cookie傳到webbrowser裡面。

傳cookie的話要用到internetsetcookie這個api函式

[dllimport("wininet.dll", charset = charset.auto, setlasterror = true)]

public static extern bool internetsetcookie(string lpszurlname, string lbszcookiename, string lpszcookiedata);

引用命名空間:using system.runtime.interopservices;

呼叫示例:internetsetcookie(「url", "cookiename", "cookievalue");

這樣只要設定了cookie,在webbrowser裡開啟的視窗,會自動加上cookie的。

雖然webbrowser很好用,但有些時候,會彈出一些js視窗,還有指令碼錯誤之類的東東。

1、對於指令碼錯誤的話,webbrowser有個scripterrorssuppressed屬性,預設是false,不阻止,要想阻止這類錯誤,只要設成true,就可以了。

2、對於js視窗,我用了windows api 函式findwindow等。

我封裝了乙個類,在程式中呼叫就可以實現關閉所有彈出的js視窗。

呼叫**:closejswindow.startclosewindow();

類**:

using system;

using system.collections.generic;

using system.text;

using system.runtime.interopservices;

using system.threading;

namespace sup

/// /// 停止監視js彈出的視窗

///

public static void stopclosewindow()

private static void closewindow(object state)}}

}

要想停止的話,只要呼叫 closejswindow.stopclosewindow()就行了。

下面這個是自動關閉由messagebox.show()彈出的對話方塊

**

using system;

using system.collections.generic;

using system.text;

using system.runtime.interopservices;

using system.windows.forms;

using system.threading;

namespace xmypkj

public static void show(string text, string caption)

public static void show(string text, string caption, messageboxbuttons buttons, messageboxicon icon, int millis)

/// /// 開始監視messagebox

///

private static void startclosemessagebox(int millis)

/// /// 停止監視messagebox

///

private static void stopclosemessagebox()

/// /// 傳送按鈕單擊訊息關閉視窗

///

///

private static void closewindow(object state)}}

}

呼叫**

messageboxauto.show("驗證碼識別元件載入失敗!");

layer彈框,彈出後自動關閉

今天做專案,出現乙個問題,需求是用ajax做檔案上傳功能,寫好之後,測試發現問題。彈出層出現以後我沒有主動點選確定和關閉等操作,程式自動關閉了彈出層 一步一步排查,找到了錯誤,首先,先確認你頁面上有沒有發生重新整理或者其他彈出 我排查以後發現我form裡有個class,這個class就是ajax提交...

WebBrowser列印後關閉網頁

在網頁上使用webbrowser控制項,可以實現無提示框,直接把頁面輸出到印表機進行列印。事實上,無提示列印之後,常見處理是直接自動關閉網頁,但是這好象是個可能完成的任務。使用execwb 6,2 命令直接列印的時候,這個命令不阻塞程序,導致頁面上,無法知道何時列印完成。這個問題困擾了我好長時間,原...

原生JS封裝 toast 彈層,自動關閉

由於公司業務需求,要乙個公共toast 下面是自己封裝的乙個。css toast toast icon toast tipjs author liguowei date 2019 04 08 10 25 42 last modified by liguowei01 last modified tim...