none
c#.NET下如何实现ole技术 RRS feed

  • Pytanie

  • 以前是用C++来实现的,现在需要转化成C#.NET

    在C++上的具体实现:

    1 在IE web AP端点击一个链接,之后打开一个IE From,这个IE From在等待本地客户端的回应。

    2上边这个过程中生成一个临时文件,通过这个文件打开本地客户端,并嵌入到上边的IE Frmo中。

     

    上记过程在本地客户端是通过ole的接续方式来完成客户端与web之间的连接的。

    COleTemplateServer类中的ConnectTemplate函数可以完成这个链接。

     

    那么请问各位专家和高手:

    在C#中如何实现这种ole技术,如果不能实现的话有没有可以替代的方法?前提是最好不动web端。

     

    谢谢各位大虾!

    poniedziałek, 8 września 2008 02:51

Odpowiedzi

  • 可以用临时文件作中转。你用VTSO写一个Office插件,再在网页上放一个ActiveX下载文件、启动Office、和插件通讯,以及等文档关闭之后上传文件。

    以OLE的方式嵌入office已经不被支持了。原来有个dsoframer控件示例,不过因为和Office兼容性问题太多已经被微软移除了。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    niedziela, 2 maja 2010 15:05
    Moderator

Wszystkie odpowiedzi

  • 可惜C#不支持OLE技术。要使用OLE一般只能通过内嵌WebBrowser控件来实现。这是一个链接,希望对你有点作用:
    http://support.microsoft.com/default.aspx/kb/304562/zh-cn

    理解的越多,需要记忆的就越少
    niedziela, 31 maja 2009 06:10
    Moderator
  • 你好!
         请问可以详细说说你的需求吗?按你原来系统的思路,在C#下不能实现啊!
    周雪峰
    niedziela, 31 maja 2009 11:25
    Moderator
  • 给您个思路。。。  用非托管代码得到当前窗口的句柄 然后找中间的browser 控件

    紫柔版主的头像真叫萌得一个不行啊。。。。
    wtorek, 2 czerwca 2009 02:54
    Moderator
  • 借楼主所言再请教一点:
    将来c#会支持ole技术么?是不是OLE技术已过时?

    niedziela, 7 czerwca 2009 06:35
  • 你好,我大概了解你的需求,在C#下要实现这个功能并不难,但是设计思路和C++有很大的不同,你不如仔细描述一下你的需求?

    谢谢!
    邹俊才
    niedziela, 7 czerwca 2009 17:08
    Moderator
  • 这里说的ole技术  就是用c#的com 访问外层的IE DOM
    紫柔版主的头像真叫萌得一个不行啊。。。。
    答案800 撒花
    poniedziałek, 8 czerwca 2009 02:02
    Moderator
  • 您好,详细的需求就是想在C#的WPF,或者WinForm的窗口中加入一个Word或者是Excel文档,实现编辑并保存到数据库中。

    有第三方控件能实现这一功能,并且host一个Web Browser控件也是可以实现的,或者是用VSTO技术也可以实现。但是对于这些方法,如何得到Word的文档流并不清楚,在网上查了一些资料,好象都有某种问题,比如codeproject上的一个用web browser的例子。所以做此提问。

     

    sobota, 1 maja 2010 14:44
  • 你好!

         常见的实现方式你基本都提到了,WebBrowser来显示的确存在一些问题,正规一些你可以用VSTO来开发!


    周雪峰
    niedziela, 2 maja 2010 06:52
    Moderator
  • 请教如果用VSTO,如何将编辑后的文档取得流保存到数据库中呢?

    我想是不是保存前需要先将文档保存到本地的目录中,取得流后再删除。如果是这样,那么应当在哪些事件中处理这些问题呢?

     

    niedziela, 2 maja 2010 09:56
  • 你好!

         如果你想把Excel导入数据库,可以创建一个access文件,然后打开,在文件菜单下面-获取外部数据-导入,选择xls文件。

         如果是Word文件,无法直接导入数据库,需要先转换成Excel


    周雪峰
    niedziela, 2 maja 2010 11:32
    Moderator
  • 你好:

    并不是把数据导入数据库,而是打开文档,由用户操作编辑,完成后存入数据库。

    niedziela, 2 maja 2010 14:37
  • 可以用临时文件作中转。你用VTSO写一个Office插件,再在网页上放一个ActiveX下载文件、启动Office、和插件通讯,以及等文档关闭之后上传文件。

    以OLE的方式嵌入office已经不被支持了。原来有个dsoframer控件示例,不过因为和Office兼容性问题太多已经被微软移除了。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    niedziela, 2 maja 2010 15:05
    Moderator
  • dsoframer可以试一下
    wtorek, 13 listopada 2018 00:51