您的位置:首页 > Web前端 > JavaScript

页面通过JS 调用WinForm 组件

2010-08-25 14:20 555 查看
由于工作需要,最近开发了个页面通过JS 调用Winform的程序。

注意以下几点:

第一,在Winform 组件 中,需要在Js中调用 的中窗体对象,需要加如下标签:

[Guid("53CDE3DE-1005-43B8-87C5-F1899BF0AC54")]----此GUID可以自己生成一个。

[System.Runtime.InteropServices.ComVisible(true)]

public partial class FlowWrapper {...}

在 我用到的FlowWrapper 类中,有一些public 方法,用来通过JS传入参数,如:

/// <summary>

/// 设置数据

/// </summary>

/// <param name="key">键</param>

/// <param name="value">值</param>

public void SetData(string key, string value)

第二,把开发好的Winform 组件打包成安装包。放在Web程序中,提供给用户下载安装。(其实就是把相关的动态库复制到用户机子上,还有就是在注册表中注册)

第三,在我的页面中,通过如下代码进行调用组件:

<body >

<object id="FlowOcx" classid="clsid:53CDE3DE-1005-43B8-87C5-F1899BF0AC54" width="80%"

height="80%" viewastext>

</object>

<script type="text/javascript">

function startOcx()

{

try

{

var id = "<%=FlowID%>";

var type= "<%=ActionType%>";

var ocx = document.getElementById('FlowOcx');

ocx.SetData("Key_InnerControl", "InnerControl_FlowDefine");

ocx.SetData("Key_ActionType", type);

--传入参数

ocx.SetData("Key_FlowID", id);

---传入参数

ocx.SetData("Key_StartControl", "");

}

catch (ex)

{

alert(ex.description);

alert("流程组件没有安装,需要下载安装!");

window.location.href = "../../Tools/FlowOcxSetup.msi";

}

}

startOcx();

</script>

其实也很简单的,但,这个现在只能 在IE下能成功,在Firefox下,调用不成功。不知为何 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: