最近寫程式,需要使用c#應用程式訪問一**,獲取相應的cookie,然後使用該cookie用ie瀏覽器開啟指定的頁面。
恩,好比用qq開啟瀏覽器自動登入你的qq空間。
從網上了解了下,一般都是用非託管動態鏈結庫來實現,具體如下:
宣告部分**:
using system.runtime.interopservices;
讀取函式
[dllimport("wininet.dll", charset = charset.auto, setlasterror = true)]
public static extern bool internetsetcookie(string lpszurlname, string lbszcookiename, string lpszcookiedata);
寫入函式
[dllimport("wininet.dll", charset = charset.auto, setlasterror = true)]
public static extern bool internetgetcookie(string lpszurlname, string lbszcookiename, stringbuilder lpszcookiedata, ref int lpdwsize);
檢測錯誤函式
[dllimport("kernel32.dll")]
public static extern int32 getlasterror();
使用部分**
設定cookie
讀取cookie
需要注意的幾點:
1、stringbuilder lpszcookiedata, ref int lpdwsize 這兩個變數並非絕對如此設定, 也有設定成string和long型別的,根據需要選擇
2、設定cookie有兩種,一種是會話級的,即脫離會話cookie即清楚,一種是永續性的,程式結束也仍然存在,直到超期。
會話級的cookie很特別,因為它是儲存在記憶體中的,所以你在temporary internet files資料夾中是找不到它的,只能在你設定cookie的應用程式中讀出。而永續性cookie就可以在temporary internet files資料夾中找到。這種cookie才能進行傳遞。兩種cookie的設定程式是一樣的,唯一的區別是永續性cookie設定要在cookie值後附加上「;expires=sun,22-feb-2099 00:00:00 gmt",過期時間可以根據需要自定。
順便補充下如何在c#程式中呼叫瀏覽器,**很簡單,如下:
system.diagnostics.process.start("");//預設瀏覽器
system.diagnostics.process.start("iexplore.exe","") ;//指定瀏覽器
其實該函式可以做的事情還很多,下面是msdn說明
該函式msdn說明
名稱 說明
process.start () 啟動(或重用)此 process 元件的 startinfo 屬性指定的程序資源,並將其與該元件關聯。
由 .net compact framework 支援。
process.start (processstartinfo) 啟動由包含程序啟動資訊(例如,要啟動的程序的檔名)的引數指定的程序資源,並將該資源與新的 process 元件關聯。
由 .net compact framework 支援。
process.start (string) 通過指定文件或應用程式檔案的名稱來啟動程序資源,並將資源與新的 process 元件關聯。
process.start (string, string) 通過指定應用程式的名稱和一組命令列引數來啟動乙個程序資源,並將該資源與新的 process 元件相關聯。
由 .net compact framework 支援。
process.start (string, string, securestring, string) 通過指定應用程式的名稱、使用者名稱、密碼和域來啟動乙個程序資源,並將該資源與新的 process 元件關聯起來。
process.start (string, string, string, securestring, string) 通過指定應用程式的名稱和一組命令列引數、使用者名稱、密碼和域來啟動乙個程序資源,並將該資源與新的 process 元件關聯起來。
在C 應用程式中獲取和設定IE瀏覽器Cookie
最近寫程式,需要使用c 應用程式訪問一 獲取相應的cookie,然後使用該cookie用ie瀏覽器開啟指定的頁面。恩,好比用qq開啟瀏覽器自動登入你的qq空間。宣告部分 using system.runtime.interopservices 讀取函式 dllimport wininet.dll c...
獲取和設定 C 應用程式目錄
doctype html public wcdtd xhtml stricten httpwwwworgtrxhtmldtdxhtml strictdtd c winform,用 system.threading.thread.getdomain basedirectory 獲取當前應用程式所在目錄...
在Silverlight應用程式中操作Cookie
很多朋友來信問如何在silverlight 2中操作cookie,這裡專門寫篇文章介紹一下。為了實現在silverlight應用程式中對於cookie的操作,我們需要借助於htmlpage.document物件。在使用htmlpage.document之前,請先新增system.windows.br...