如果我們的生活都有底線,就沒有那么多悲劇誕生;
如果我們做產(chǎn)品都有底線挪丢,也就沒那么多Bug了!
——塔哥語錄 :)
說說今天的主角——“.ksobak”卢厂,它是金山wps安裝乾蓬、更新后在注冊表中一些小手段的字 段,尤其是當(dāng)你的環(huán)境中已經(jīng)安裝MSOffice套件時慎恒,它的殺傷力是巨大的任内。
先嘮兩句閑嗑吧,也算是緬懷一下曾經(jīng)青蔥過的wps融柬!
在塔哥做辦公軟件的那些年死嗦,wps是亦敵亦友,那時的辦公軟件在注冊表注入的方面比較謹(jǐn)慎粒氧,自己的可以加越走,別人的不敢碰。
在塔哥整版式文檔的時候,wps是友商廊敌,V8(wps2012)改版之后啟動速度有了明顯的提升, 但也是從這會兒開始门怪,wps的氣質(zhì)變了骡澈。
隨著受困于工具類軟件的發(fā)展,wps加入了很多新的元素掷空,其中最主要的就是云盤肋殴、模版庫這 倆提現(xiàn)手段。它的初衷是為了提供一個付費通道坦弟,就公司而言無可厚非护锤。但它把注冊表改的亂七八糟,那就不合適了酿傍!
本文目錄:
1烙懦、".ksobak"是什么?
2赤炒、它都做了什么氯析?
3、怎么避免它帶來的影響莺褒?
樓主寫本文時的辦公軟件環(huán)境是:
- MSOffice2016
- WPS 2016
會用一些COM技術(shù)的基礎(chǔ)掩缓,目的是為大家解決安裝wps后對系統(tǒng)帶來的影響,尤其是 MSOffice與wps同時安裝時的一些異匙裱遥現(xiàn)象你辣。
一、".ksobak"是什么尘执?
“.ksobak”是金山wps修改注冊表時的一個備份鍵值舍哄,將原本指向MSOffice的內(nèi)容改成了wps 套件的內(nèi)容。同時正卧,將原有內(nèi)容以“.ksobak”為名稱另存蠢熄。
如圖所示,在安裝MSOffice2016后炉旷,Excel.Application.16將被注冊签孔,等wps安裝后被修改成 了Excel.Application.12 。
注意窘行,此時的Application12并非是Msoffice 2007饥追,而是WPS的產(chǎn)品!問題與災(zāi)難都是源自于此罐盔。
備注但绕,MSOffice開發(fā)代號與版本對應(yīng)關(guān)系
二、".ksobak"都做了些什么?
.ksobak只是一個標(biāo)示捏顺,表明wps修改了MSOffice曾經(jīng)指向的內(nèi)容六孵。那么,wps到底改了多少呢幅骄?
塔哥以.ksobak為關(guān)鍵字劫窒,搜了一把。在我的環(huán)境中拆座,一共有204個主巍。范圍涵蓋了Word、Excel和 Powerpoint三大產(chǎn)品挪凑,涉及到應(yīng)用程序孕索、模板、Addin插件躏碳、外掛公式等各類應(yīng)用搞旭。可以說唐断, 影響的范圍還是很大的选脊。
比如說在你用COM接口,以ProgID“Word.Application”想啟動MSWord的時候脸甘,實現(xiàn)上啟動的卻是WPS恳啥。原因就在于金山wps已經(jīng)把LocalServer32路徑給改了!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import win32com.client
wpsApp = win32com.client.Dispatch("PowerPoint.Application")
也就是說丹诀,在通過COM控制MSOffice的時候钝的,不管是你直接調(diào)用,還是間接操作铆遭。wps的修改都會讓你得到意想不到的結(jié)果硝桩。
三、如何避免它帶來的影響枚荣?
如何避免wps安裝碗脊、升級帶來的影響,也就意味著如何防止WPS篡改MSOffice的鍵值內(nèi)容橄妆!
實現(xiàn)方法有以下幾種:
- 設(shè)置注冊表鍵值的操作權(quán)限衙伶;
- 設(shè)置注冊表整體的讀寫權(quán)限;
- 分機(jī)安裝害碾,物理隔絕矢劲;
以上三種都能實現(xiàn),選擇哪個還看你的應(yīng)用環(huán)境吧慌随。畢竟現(xiàn)在混著用的人并不多芬沉,需要調(diào) COM接口的人更是少之又少躺同。
行了,博客寫到這就已經(jīng)結(jié)束了丸逸。wps雖然給我添堵蹋艺,有些技術(shù)手段也挺low的,但它不失為 一個不錯的辦公軟件椭员。曾經(jīng)跑項目的時候车海,跟WPS的一個前輩聊天,他說的一句話我現(xiàn)在還記得隘击。
wps的困境就是有用戶沒市場,有市場沒用戶研铆!
在個人版中埋同,它有廣泛的用戶群體,但都不是付費用戶棵红。在企業(yè)版本凶赁,占據(jù)了九成以上的市場, 但沒人認(rèn)真用逆甜。你說虱肄,它的研發(fā)到底該為不花錢的個人用戶,還是花了錢的企業(yè)用戶呢交煞?