頁面通過JS 調用WinForm 組件

由於工作需要,最近開發了個頁面通過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下,調用不成功。不知爲何 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章