别理我 烦着呢

2012年4月1日星期日

自己做一个绿色版本的QQ

除非必要,否则我不喜欢给软件root权限,哪怕损失一些功能。比如QQ。
下载了QQ的安装包之后,可以用个工具软件叫做UniExtract,解包。解完了是这么个结构。
当然,如果不相信UniExtract,可以起个虚拟机,或者在别人电脑上装QQ之后,把
%ProgramFiles(x86)%\tencent
%CommonProgramFiles(x86)%\tencent
两个目录拷贝出来备用

C:\USERS\CL\DOWNLOADS\QQ_PERF2.0_CHS
├─Application Data
│  └─Tencent
│      ├─QQ
│      │  ├─SafeBase
│      │  ├─Skins
│      │  │  └─system
│      │  └─TxApp
│      └─WebQQ
├─Common
│  └─Tencent
│      ├─NPQSCALL
│      ├─QQPhotoDrawEx
│      ├─TXFTN
│      └─TXPTOP
├─program files
│  └─Tencent
│      └─QQ2009
│          ├─AuI18N
│          ├─Bin
│          ├─I18N
│          ├─Misc
│          ├─Plugin
│          └─Resource.1.70.2636
└─SysDir
   ├─Microsoft.VC80.ATL
   ├─Microsoft.VC80.CRT
   ├─Microsoft.VC80.MFC
   ├─Microsoft.VC80.MFCLOC
   └─TXSSO

Common是个很重要的文件夹,把里面的Tencent目录拷贝到:
if(x64) %CommonProgramFiles(x86)% 
if(x86) %CommonProgramFiles% 

├─program files
    └─Tencent
       └─QQ2009
这个QQ2009目录就是主程序了,拷贝到你喜欢的任何地方,U盘亦可。点击
QQ2009\Bin\QQ.exe就可以启动QQ了。


可是,弹出错误了!!

恩,这就是可恶的SxS错误,缘起著名的DLL HELL问题。
想找到答案,就往下看,
└─SysDir
    ├─Microsoft.VC80.ATL
    ├─Microsoft.VC80.CRT
    ├─Microsoft.VC80.MFC
    ├─Microsoft.VC80.MFCLOC
这几个目录说明了QQ是需要这些特定版本的DLL的,一番寻找和搭配之后发现
XP/Win7/2008需要下载

XP还需要下载

这两个从微软下载的包是需要管理员权限运行的。

好了,这下应该就可以舒坦一阵子了。
不过呢,过个把月QQ会强制下载升级包,升级包需要管理员权限,这时候就要再像上面这样折腾一下。

有的软件可以运行于受限用户,但是会调用某个需要root权限的组件,比如飞信。在飞信的主程序目录里面找到那个带有小盾牌的exe文件,删掉,就不会有UAC的提示了,代价是不能收发图片。不知道飞信的开发团队什么意思,收发个图片居然还要root权限。

类似的办法可以用于
Acrobat
阿里旺旺
Google Earth
Google Picasa
迅雷
JDK/JRE (需要手动配置%PATH%)
以及等等

类似的办法不可以用于
ActiveX控件(主要是各大银行,支付平台, 所以我优先考虑iPad上面支持的银行和支付平台)
M$ Office(无奈公司用Exchange,个人用户用不着Outlook的还是推荐用WPS)
M$ Visual Studio(这点也很犯嫌,Eclipse / Netbeans 卷卷就裹走了,多方便!)
输入法 
各手机同步软件(黑莓DM,苹果iTunes,诺基亚Suite,微软ZUNE), Android的ADB除外。好在现在除了刷机基本都不需要PC同步软件了。


最后注意,这个绿色和传统意义的绿色不一样,如果重装系统需要备份%AppData% 和 %HOMEPATH% 目录。
实际上,把配置放在%ProgramFiles%是个仅次于把配置放在注册表的馊主意,自己体会 :)

0 条评论:

发表评论

订阅 博文评论 [Atom]



<< 主页