浏览器怎么给winform传值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浏览器怎么给winform传值相关的知识,希望对你有一定的参考价值。
winform中用的是webBrowser控件,现在想打开一个网页给winform传个路径进去,这样的话,在 winform中怎么给网页做这么一个接口
像迅雷一样的,点一下链接就跳迅雷下载的界面,这种效果怎么实现
简单的步骤:
1.要给浏览器操作的对象加上标记:
[System.Runtime.InteropServices.ComVisible(true)]
public class BrowserTest
public void TestMethod()
这个对象里面的公开函数供网页调用的,比如你在TestMethod里面打开窗口运行程序之类的。这个函数本身也可以返回或接收相关参数,由于我没测试过很多,建议仅使用见到那的数据类型,如int或string之类的。
2.设置WebBrowser的属性:
WebBrowser.ObjectForScripting = new BrowserTest();
3.在网页中通过JS调用:
window.external.TestMethod();
这样即可调用你创建的 BrowserTest() 类里面的 TestMethod() 函数。
很简单。上面不会的同学不要瞎嚷嚷。不过提醒一下这个只适合在程序内嵌的浏览器窗口中调用自己的函数,而不是在IE中调用。
更详细的资料可以搜索相关网站。追问
我要的就是要在IE中调用
追答那你提啥WebBrowser控件呀?败给你了。要在IE中用需要用BHO或自定义控件,相对而言自定义控件比较简单一点。你要用哪种?
参考技术A 这里有个误区,迅雷中点一下链接就跳到下载界面这样的效果并不是网页直接给迅雷传递了什么路径或者参数。要实现这样的效果,有几个方法。
1. 使用IE插件,用户安装你的插件后,你可以监视IE点击的是链接,那就启动你的下载软件进行下载。
2. 使用协议。类似QQ客服的连接,一点就启动聊天。具体的做法需要了解就发消息来咨询。
3. 使用JS跟C#进行通信。
4. 使用代理。具体就是winform启动后,监听80端口,发现有http请求,分析这个请求头,然后可以得到连接。(这个做法就绕了个大圈子,不过在特定的时候是需要这么做的,比如说抓取网页上的视频地址等。)
总之方法还有很多,就看你的需求范围来定了。追问
使用IE插件怎么做,有没有实例呀
参考技术B Document.GetElementByIdGoogle县城 代码追问
你这个是只对网页的吧,我要的是网页跟winform结合用的
追答winform可以拿到Document的对象
追问怎么连在一起
追答申请Document对象就连在一起了
追问请我详细点,最好有个教程地址
参考技术C 使用JS 把可以使用JS调用C#方法 大道目的 参考技术D 很复杂,用ActiveX可以解决。追问
怎么解决???
winform窗体加载很慢,怎么优化
参考技术A 把耗资源的控件拿出来,单独加载,放个进度条显示加载速度。以上是关于浏览器怎么给winform传值的主要内容,如果未能解决你的问题,请参考以下文章