当前位置:编程学习 > C#/ASP.NET >>

用C#开发的Activex控件,如何取得当前页面的URL地址?

用C#开发的Activex控件,如何取得当前页面的URL地址? --------------------编程问答-------------------- 我顶一下,顶顶顶 --------------------编程问答-------------------- 参考
http://www.cnblogs.com/xiaoshatian/archive/2008/09/02/1281786.html

呵呵,他既然可以调用js,自然可以获取url --------------------编程问答-------------------- 获取不了啊,那两个接口都没有取得URL的方法,除非用JS传值进去,我不想用JS传 --------------------编程问答-------------------- 呵呵,我只能说你还没掌握编程的方法

如果有两个接口方法,你就可以获得基本所有东西,那么你在你c++代码里看到的
get_LocationURL 还远吗?

那两个接口,联合一步一步下来就可以得到IWebBrowser2接口

最后调用IWebBrowser2.get_LocationURL就可以了,我们不想给你写具体代码,这个你参照msdn一步一步来就是了

其实这个过程和你看滴c++代码的过程是一模一样滴
ps:有人一直说c++滴人比俺们高级,其实呢抛掉系统驱动编程以外的东西,俺们不见得就比他们弱,就那你看c++代码,他们怎么玩滴,俺们就怎么玩,不过是语法不一样而已 --------------------编程问答--------------------
  CString csUrl = ""; 
                BSTR bstrUrl;
IOleClientSite* pClientSite = m_lpClientSite;
IServiceProvider* pISP;
IWebBrowser2* pIWebBrowser2;
if(pClientSite == NULL)
return "URL not avaliable.1";

pClientSite->QueryInterface(IID_IServiceProvider, (void **)&pISP);
if(pISP == NULL)
return "URL not avaliable.2";

pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,(void **)&pIWebBrowser2);

if(pIWebBrowser2 == NULL)
return "URL not avaliable.3";

pIWebBrowser2->get_LocationURL(&bstrUrl);
csUrl = bstrUrl;

这是c++代码是吧,其实他用的东西俺们一样可以用,这段代码换成c#的话,基本过程是一模一样滴,不过是换个语法描述,这里面的->符号就是调用方法,至于*指针,你就当作俺们的对象就是,一句一句的翻译过来就是 --------------------编程问答-------------------- 真心看不懂C++的代码啊,你能帮我改成C#的吗 --------------------编程问答-------------------- 通过上面的c++代码我们可以看到一个过程

 IOleClientSite-->IServiceProvider-->IWebBrowser2 最后调用get_LocationURL方法

这个过程其实并不困难,IOleClientSite我第一个回复你就可以获得
至于后面的东西
我们先来看msdn
http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx

msdn告诉我们从IOleClientSite 转换到IServiceProvider只需要强制转换类型即可

(另外一种方式Marshal.QueryInterface则完全直接翻译c++的代码语法,具体见http://www.cnblogs.com/bindsang/archive/2008/08/01/1256810.html)

最后获取到IWebBrowser2接口以后直接调用get_LocationURL方法就可以搞定了 --------------------编程问答--------------------
引用 7 楼 wanghui0380 的回复:
通过上面的c++代码我们可以看到一个过程

 IOleClientSite-->IServiceProvider-->IWebBrowser2 最后调用get_LocationURL方法

这个过程其实并不困难,IOleClientSite我第一个回复你就可以获得
至于后面的东西
我们先来看msdn
http://msdn.microsoft.com/en-us/library/aa……



看了好久,还是不明白。我是C#的初学者,对C++更是一点也不明白,你能帮我直接给我C#的语名吗?这个连网上都没有。 --------------------编程问答--------------------   学C# 的悲催啊  --------------------编程问答-------------------- 很好,学习了!
补充:.NET技术 ,  组件/控件开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,