C#多标签浏览器功能的扩展方法是什么

发布时间:2021-12-03 09:42:48 作者:iii
来源:亿速云 阅读:393

这篇文章主要介绍“C#多标签浏览器功能的扩展方法是什么”,在日常操作中,相信很多人在C#多标签浏览器功能的扩展方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多标签浏览器功能的扩展方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

假设NewTab(string url)是前面已经完成的在新标签中打开链接的函数。

C#多标签浏览器实现打开主页:

这就要访问注册表,获取ie首页。

string homepage="";  try {      homepage =(string)Registry.GetValue(      "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Internet Explorer\\Main",      "Start Page", "");  }  catch (Exception) {}  NewTab(homepage);

使用try-catch是为了防止读取注册表失败,抛出异常。

C#多标签浏览器实现“粘贴并打开”:

其实就是要获取剪贴板中的文本。

NewTab(Clipboard.GetText());

恢复关闭的网页:

这就需要在前面所说的关闭标签操作的同时,把即将关闭的标签的url记录起来。可以用WebBrowser.Url.AbsoluteUri来获取这个url。假设这些关闭过的url储存在一个名为closed的字符串数组中。

然后就是要在用户点击撤销按钮的时候弹出这个url列表:

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

(o1,e1)=>NewTab(e1.ClickedItem.Text)是lambda表达式,代表一个函数,当menu被点击的时候,就会调用这个函数。

读取打开ie收藏

首先获取ie收藏夹所在路径:

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

然后获取路径所表示的文件夹对象:      

DirectoryInfo dir=new DirectoryInfo(path);

用dir.GetDirectories() 和dir.GetFiles()可以获取该目录下的所有子目录和所有文件,然后对子目录再递归进行以上过程直到遍历所有文件。

ie收藏夹里的网页快捷方式是以".url"后缀存在的,如何从在获取网页的url文本?那就要知道这种文件的格式。我用记事本打开其中一个,看到是这样的:

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

所以可见,URL就在[InternetShortcut]的下一行,假设从GetFiles得到一个FileInfo file1,则可用以下代码得到url:

if (file1.Extension==".url"){      StreamReader sr=new StreamReader(file1.FullName);      string url="";      while (!sr.EndOfStream) {          string s1=sr.ReadLine();          if (s1=="[InternetShortcut]")              url=sr.ReadLine().Substring(4);      }  }

C#多标签浏览器实现超级拖放

首先要将主窗体的AllowDrop属性设为true。

然后为主窗体的DragDrop和DragEnter事件添加如下事件处理过程:

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

这样的超级拖放有一个特点,就是要将网页元素拖出WebBrowser的范围外,同时又还在主窗体的范围内,此时释放才有效,至于如何在WebBrowser范围内拖放就有效,本人还找不到一个很好的方法。

C#多标签浏览器实现自动搜索

传递给NewTab(string url)函数的参数url,有时并不一定是合法的url格式,我们不妨假定,如果它的格式不正确,则改为用百度

搜索此文本,于是可以这样处理:

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

到此,关于“C#多标签浏览器功能的扩展方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. C#基础之扩展方法
  2. C#的扩展方法解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:C#枚举类型开发的方法是什么

下一篇:tk.Mybatis插入数据获取Id怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》