时间:2021-05-02
CS架构的winForm与BS架构的webForm是不能直接通信的,那么真的就一点儿办法都没了吗?其实不然。
看了网上很多资料,我总结出有两种方式可以实现。
1)首先客户端需要用注册表写入协议,通过协议去找已经安装在客户端的winForm的exe文件,这时可以给窗体传入参数,例如 “helloworld://你个猪头”, helloworld是协议,后面”你个猪头“是传入的字符串。当然winForm的main方法写法也有不同,需要得到参数(也可以不要参数,如果不需传参,直接调用)
注册表中指向调用winForm所在的exe文件路径即可,具体代码详见测试案例;当然调用也很简单 如
<a href="helloworld://你个猪头"><img border="0" SRC='hello.jpg' alt="测试"></a>
后面附上测试案例。
2)第二种就是调用active插件,也叫ocx插件,需要客户端注册一个插件,我们可以新建一个”windows窗体控件库“来实现,具体方法我也不多讲,可以参考:http://hi.baidu.com/dosonet/blog/item/7ced5d929411a2ada877a446.html
简单说说我当时遇到的困难和特别需要注意的:
a. 在一个”windows窗体控件库“项目中,可以新建多个用户控件窗体,但是如果要网页上正常调用,必须实现IObjectSafety接口,具体实现可以完全ctrl + c, ctrl + v,并且需要指定完全不同的guid值,否则不能正常调用。
b. 不同用户控件窗体是不能相互调用的,如果要调用不同窗体,直接新建Form就行,然后可以采取用户控件中弹出Form来实现。详见我的测试案例。
总结下,其实winForm中实现active插件也不是很难,只是winForm必须基于.NET framework来工作,所以我建议winForm的版本在2.0,不要升级到3.0及其以上,因为安装在客户上,2.0只需20M左右,3.0则要几百M,如果不是必须用C#来实现的话,用C,C++,或者delphi更好……
本文的测试案例下载:http:///soft/source/dotnet/00004141.html
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在上篇文章在winform下实现左右布局多窗口界面的方法已经实现了左右布局多窗口界面,今天本来是研究基于winform的插件编程,没想到顺便又找到了另一种实现方
本文实例讲述了C#实现Winform动态添加菜单的方法。分享给大家供大家参考。具体分析如下:最近在做WINFORM开发,一直都在为主界面的点击事件及动态加载菜单
如何在WinForm中请求发送HTTP手工发送HTTP请求主要是调用System.Net的HttpWebResponse方法手工发送HTTP的GET请求:str
不多说,直接上代码,winform下button1调用js函数,从html页面获取值,然后JS调用WINFORM的函数,传送获取到的值到winform并通过me
功能:flash的调用些方法能在网页中看到flash的trace方法输出的数据;方法:1.init(w,h,z);//w为显示界面的宽度,h为显示界面的高,z为