Web中使用Word控件。(DSOFramer )

网上找了很多,大部分是收费的,相信写一个,也不过如此。

既然有人做出来了,那么资源也应该是有的。 按道理。写 ActiveX , VC++  和 VB 才是 MS 的拿手戏。找到了 DSOFramer 控件,我机器安装了 WPS 和Office2003 。 显示的控件是 WPS 里的Word 控件。

微软提供了方案。基它中间件,大部分是按 MS 的改的。
http://support.microsoft.com/kb/311765/zh-cn

网上下载了其它 Web Word 控件,(像 WebOffice 办公文档控件) 显示样式也是 WPS 的样式。不知怎么会是这样?

既然都是用的 MS 的。自已改一套应该也费了不多大劲。用中间件,真不晓得别人在中间件里写什么东西。好比,我们买橙味的可乐,源浆都是从可乐公司买的,中间商们提供橙子进行混合。我倒是喜欢减少中间环节,自已来的比较放心。 (中间商放橙子的同时,放点大麻,怎么办?

微软提供的是 VC++ OCX 控件。网上也有很多修改方案,但都不是开放源代码的。像 DSOFramer( http://www.dsoframer.com/forumdisplay.php?fid=2 ,技术也做了这么多年了,微软都提供源代码了,还这样小家子气。

断续关注。。。

DSOFramer 已于2008-2-26开源,但是,我下载编译,项目缺少一些文件。代码不完整。不过,也可以算是一件令人兴奋的事情。


下面是 WPS 和Word 之间的冲突的部分:


关于 WPS 和 Word 冲突的事情,终于在我机器上爆发了.公司原有一个 Word 的 OCX 控件, 在我同事的机器上调通的程序(他安装了Word,我安装了WPS 后又安装了Word) ,在我机器上,总是调用WPS,在保存的时候,总是弹出 WPS 的关于,而且保存不成功卸载 WPS ,呵.WPS 的卸载程序只把文件删除了. 用 优化大师 清理冗余的 Dll 也没有清理掉.

在我的 组件服务 里, 总是存在 WPS 的 DCOM 配置. 看来, 金山和MS 是在我的地盘上打架呢. 他奶奶的.

看来,只能手工清理注册表了.

查看 WPS 的 GUID 是 {00020906-0000-4b30-A977-D214852036FE} ,注册表出现位置:

HKEY_CLASSES_ROOT\CLSID\{00020906-0000-4b30-A977-D214852036FE}
HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/kswps                       (文件后缀关联)
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{00020906-0000-4b30-A977-D214852036FE}     (这是DCOM 注册信息)

可以用这个Reg文件:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\CLSID\{00020906-0000-4b30-A977-D214852036FE}]
[-HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/kswps]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{00020906-0000-4b30-A977-D214852036FE}]


这样,在DCOM 里就没有 WPS 配置了。

   关于WPS 和Word 的冲突还不止于此,有的时候,(我只能用这个词,是我遇到的现象),用 ASP.Net 建立的项目,如果用IIS来运行。 实例化 Word 的ApplicationClass 报没有权限。如果用 VS开发服务器 (就是用 WebDev 进程),就可以。下面是解决方案:

   把Office 卸载,把Office 安装文件夹手工删掉。 再用 Windows优化大师,把注册表清理一下。再装 Office  。 DCom的 Word 权限添加 ASP.NET 和 NetWork Service 的权限。并且,改成 交互式用户运行。 有一点,改完后,再打开Dcom 有时发现没改。估计是该Dcom的计数器没有归零(内存中还在使用该进程)。 可能要重启机器才行。  
   还有最要命的一点。 在Web.config 中设置: <authentication mode="Windows"/> 。别不小心啊。呵OK. 

自已整理的去除注册表 WPS 相关信息的注册文件:

Code

 

打包工具: makecab , iexpress.exe

你可能感兴趣的:(frame)