最近老板要做.Net的项目,开装delphi8。个人的安全策略是安装完windows后禁用administrator帐户(直接禁用或者改一个自己都不知道的密码),另外建一个管理员比如foo帐户(管理员权限)——一直都是这样做的,没出过问题。用foo身份安装delphi8,,路径设在d:\delphi8\,不安装shared文件(没用,n老的BDE),其它一切正常,用keygen crack后死活没法启动delphi8,试了n回未果;磨掉一天后尝试启用administrator帐户运行keygen,然后以administrator帐户运行delphi8,nnd好用了;然后用foo帐户运行delphi8,又让注册,不能用;
在C:\Documents and Settings\Administrator\.borland下找到一个borland.lic的文件,copy到foo帐户的同样位置,启动delphi8,报告这个lic不是为foo帐户注册的,厥倒。后来晚上急吼吼地写了个d8启动程序,用CreateProcessWithLogonW API来解决问题(在foo帐户下用administrator帐户来runas delphi8),勉强凑合。今天早上用filemon监视了keygen(以foo帐户运行),发现它居然在E盘根目录下建了个文件夹:.borland,borland.lic放在了那里,晕啊;把这个文件copy到foo帐户的相应文件夹,用foo帐户启动delphi8,居然能用了,倒。结论:keygen的bug,使得除了使用administrator帐户来gen key以外,它不会将key放在正确的位置;
(貌似VC6的安装程序也这个德行,把path,lib,include放在了administrator帐户自己的环境变量下而不是系统的环境变量中,导致其它用户比如Power User没法正常编译)。在此给各位象我那样不用administrator帐户干活的兄弟提个醒。