自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#多標(biāo)簽瀏覽器功能的擴(kuò)展

開發(fā) 后端
本文介紹了C#多標(biāo)簽瀏覽器功能的擴(kuò)展,供大家參考。

假設(shè)NewTab(string url)是前面已經(jīng)完成的在新標(biāo)簽中打開鏈接的函數(shù)。

C#多標(biāo)簽瀏覽器實(shí)現(xiàn)打開主頁:

這就要訪問注冊表,獲取ie首頁。

  1. string homepage="";  
  2. try {  
  3.     homepage =(string)Registry.GetValue(  
  4.     "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Internet Explorer\\Main",  
  5.     "Start Page""");  
  6. }  
  7. catch (Exception) {}  
  8. NewTab(homepage); 

使用try-catch是為了防止讀取注冊表失敗,拋出異常。

C#多標(biāo)簽瀏覽器實(shí)現(xiàn)“粘貼并打開”:

其實(shí)就是要獲取剪貼板中的文本。

  1. NewTab(Clipboard.GetText()); 

恢復(fù)關(guān)閉的網(wǎng)頁:

這就需要在前面所說的關(guān)閉標(biāo)簽操作的同時(shí),把即將關(guān)閉的標(biāo)簽的url記錄起來??梢杂肳ebBrowser.Url.AbsoluteUri來獲取這個(gè)url。假設(shè)這些關(guān)閉過的url儲存在一個(gè)名為closed的字符串?dāng)?shù)組中。

然后就是要在用戶點(diǎn)擊撤銷按鈕的時(shí)候彈出這個(gè)url列表:

  1. ContextMenuStrip menu=new ContextMenuStrip();  
  2. for (int i=0; i< closed.Count; i++)  
  3.     menu.Items.Add(closed[i]);  
  4. menu.ItemClicked+=(o1,e1)=>NewTab(e1.ClickedItem.Text);  
  5. menu.Show((Control)sender, e.Location); 

(o1,e1)=>NewTab(e1.ClickedItem.Text)是lambda表達(dá)式,代表一個(gè)函數(shù),當(dāng)menu被點(diǎn)擊的時(shí)候,就會調(diào)用這個(gè)函數(shù)。

讀取打開ie收藏

首先獲取ie收藏夾所在路徑:

  1. string path=(string)Registry.GetValue(  
  2.     "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",  
  3.     "Favorites"""); 

然后獲取路徑所表示的文件夾對象:       

  1. DirectoryInfo dir=new DirectoryInfo(path);  

用dir.GetDirectories() 和dir.GetFiles()可以獲取該目錄下的所有子目錄和所有文件,然后對子目錄再遞歸進(jìn)行以上過程直到遍歷所有文件。

ie收藏夾里的網(wǎng)頁快捷方式是以".url"后綴存在的,如何從在獲取網(wǎng)頁的url文本?那就要知道這種文件的格式。我用記事本打開其中一個(gè),看到是這樣的:

  1. [{000214A0-0000-0000-C000-000000000046}]  
  2. Prop3=19,2  
  3. [InternetShortcut]  
  4. URL=http://go.microsoft.com/fwlink/?linkid=140813  
  5. IDList= 

所以可見,URL就在[InternetShortcut]的下一行,假設(shè)從GetFiles得到一個(gè)FileInfo file1,則可用以下代碼得到url:

  1. if (file1.Extension==".url"){  
  2.     StreamReader sr=new StreamReader(file1.FullName);  
  3.     string url="";  
  4.     while (!sr.EndOfStream) {  
  5.         string s1=sr.ReadLine();  
  6.         if (s1=="[InternetShortcut]")  
  7.             url=sr.ReadLine().Substring(4);  
  8.     }  
  9. }  

C#多標(biāo)簽瀏覽器實(shí)現(xiàn)超級拖放

首先要將主窗體的AllowDrop屬性設(shè)為true。

然后為主窗體的DragDrop和DragEnter事件添加如下事件處理過程:

  1. private void textBox1_DragDrop(object sender, DragEventArgs e) {  
  2.     NewTab((string)e.Data.GetData(DataFormats.Text));  
  3. }  
  4. private void textBox1_DragEnter(object sender, DragEventArgs e) {  
  5.     e.Effect=e.AllowedEffect;  

這樣的超級拖放有一個(gè)特點(diǎn),就是要將網(wǎng)頁元素拖出WebBrowser的范圍外,同時(shí)又還在主窗體的范圍內(nèi),此時(shí)釋放才有效,至于如何在WebBrowser范圍內(nèi)拖放就有效,本人還找不到一個(gè)很好的方法。

C#多標(biāo)簽瀏覽器實(shí)現(xiàn)自動搜索

傳遞給NewTab(string url)函數(shù)的參數(shù)url,有時(shí)并不一定是合法的url格式,我們不妨假定,如果它的格式不正確,則改為用百度

搜索此文本,于是可以這樣處理:

  1. try {  
  2.     Uri uri=new Uri(url);  
  3. }  
  4. catch (Exception) {  
  5.     url="http://www.baidu.com/s?wd="+url;  

【編輯推薦】

  1. 關(guān)于C#知識點(diǎn)總結(jié)
  2. C#開發(fā)和使用中的33個(gè)技巧
  3. SQL Server存儲過程介紹
  4. C#下SQL Server 2008表類型參數(shù)傳遞
  5. C#向SQL Server中插入記錄時(shí)的問題
責(zé)任編輯:book05 來源: 新浪博客
相關(guān)推薦

2009-09-04 09:27:48

C#調(diào)用瀏覽器

2009-09-03 19:00:15

C#判斷瀏覽器

2011-09-15 16:33:25

2012-08-02 10:21:49

DOM瀏覽器

2009-08-31 14:54:35

C#對象瀏覽器

2009-08-20 10:54:29

C#做瀏覽器源程序

2009-08-18 13:54:41

C#標(biāo)簽

2021-06-08 15:13:45

Safari瀏覽器擴(kuò)展

2013-03-19 14:16:51

Chrome瀏覽器

2021-03-09 14:56:25

Safari瀏覽器蘋果

2009-09-04 11:03:32

C#文件瀏覽器

2009-09-03 17:49:59

C#瀏覽器開發(fā)

2021-08-18 09:27:12

微軟Edge瀏覽器

2009-09-03 18:55:08

C#判斷瀏覽器

2009-09-03 17:54:04

C#開發(fā)瀏覽器

2015-01-21 15:45:50

斯巴達(dá)瀏覽器

2021-05-17 14:15:16

Edge瀏覽器Android翻譯功能

2009-09-04 10:05:16

C#調(diào)用瀏覽器瀏覽器的原理

2011-06-28 14:26:05

Opera瀏覽器

2013-11-22 09:58:36

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號