如果我们的生活都有底线,就没有那么多悲剧诞生;
如果我们做产品都有底线,也就没那么多Bug了!
——塔哥语录 :)
说说今天的主角——“.ksobak”,它是金山wps安装、更新后在注册表中一些小手段的字 段,尤其是当你的环境中已经安装MSOffice套件时,它的杀伤力是巨大的。
先唠两句闲嗑吧,也算是缅怀一下曾经青葱过的wps!
在塔哥做办公软件的那些年,wps是亦敌亦友,那时的办公软件在注册表注入的方面比较谨慎,自己的可以加,别人的不敢碰。
在塔哥整版式文档的时候,wps是友商,V8(wps2012)改版之后启动速度有了明显的提升, 但也是从这会儿开始,wps的气质变了。
随着受困于工具类软件的发展,wps加入了很多新的元素,其中最主要的就是云盘、模版库这 俩提现手段。它的初衷是为了提供一个付费通道,就公司而言无可厚非。但它把注册表改的乱七八糟,那就不合适了!
本文目录:
1、".ksobak"是什么?
2、它都做了什么?
3、怎么避免它带来的影响?
楼主写本文时的办公软件环境是:
- MSOffice2016
- WPS 2016
会用一些COM技术的基础,目的是为大家解决安装wps后对系统带来的影响,尤其是 MSOffice与wps同时安装时的一些异常现象。
一、".ksobak"是什么?
“.ksobak”是金山wps修改注册表时的一个备份键值,将原本指向MSOffice的内容改成了wps 套件的内容。同时,将原有内容以“.ksobak”为名称另存。
如图所示,在安装MSOffice2016后,Excel.Application.16将被注册,等wps安装后被修改成 了Excel.Application.12 。
注意,此时的Application12并非是Msoffice 2007,而是WPS的产品!问题与灾难都是源自于此。
备注,MSOffice开发代号与版本对应关系
二、".ksobak"都做了些什么?
.ksobak只是一个标示,表明wps修改了MSOffice曾经指向的内容。那么,wps到底改了多少呢?
塔哥以.ksobak为关键字,搜了一把。在我的环境中,一共有204个。范围涵盖了Word、Excel和 Powerpoint三大产品,涉及到应用程序、模板、Addin插件、外挂公式等各类应用。可以说, 影响的范围还是很大的。
比如说在你用COM接口,以ProgID“Word.Application”想启动MSWord的时候,实现上启动的却是WPS。原因就在于金山wps已经把LocalServer32路径给改了!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import win32com.client
wpsApp = win32com.client.Dispatch("PowerPoint.Application")
也就是说,在通过COM控制MSOffice的时候,不管是你直接调用,还是间接操作。wps的修改都会让你得到意想不到的结果。
三、如何避免它带来的影响?
如何避免wps安装、升级带来的影响,也就意味着如何防止WPS篡改MSOffice的键值内容!
实现方法有以下几种:
- 设置注册表键值的操作权限;
- 设置注册表整体的读写权限;
- 分机安装,物理隔绝;
以上三种都能实现,选择哪个还看你的应用环境吧。毕竟现在混着用的人并不多,需要调 COM接口的人更是少之又少。
行了,博客写到这就已经结束了。wps虽然给我添堵,有些技术手段也挺low的,但它不失为 一个不错的办公软件。曾经跑项目的时候,跟WPS的一个前辈聊天,他说的一句话我现在还记得。
wps的困境就是有用户没市场,有市场没用户!
在个人版中,它有广泛的用户群体,但都不是付费用户。在企业版本,占据了九成以上的市场, 但没人认真用。你说,它的研发到底该为不花钱的个人用户,还是花了钱的企业用户呢?