(请先阅读我写的另一篇博客 http://blog.csdn.net/pijianzhirui/article/details/50614692 )
从官网http://www.wordtolatex.com下载名为word-to-latex-2.56.zip的压缩包,可以看见data文件夹和setup.exe,data文件夹中又有word-64和word-32两个文件夹,word-64和word-32中都有setup.exe和zdata.msi,三个setup.exe中有两个相同(CRC32:6620A422),另一个与data文件夹在一起的setup.exe不同(CRC32:5E5CA106),两个zdata.msi不相同。
解压出来以后,data文件夹具有隐藏属性,需要在系统中设置“显示隐藏的文件、文件夹和驱动器”才能看见它。
现在来分析一下与data文件夹在一起的setup.exe(CRC32:5E5CA106),用JustDecompile(或.NET Reflector)打开它,展开左侧的WordToLatex.Install,首先看OfficeVersion,
注意,Office的年份版本号与安装路径及注册表中的版本号存在如下对应关系,
Office 2003: 11.0OfficeVersion.OFFICE_VERSIONS = new string[] { "14.0", "15.0" };
string[] oFFICEVERSIONS = OfficeVersion.OFFICE_VERSIONS;
for (int i = 0; i < (int)oFFICEVERSIONS.Length; i++)
{ string str = oFFICEVERSIONS[i];
RegistryKey registryKey = hklm.OpenSubKey(string.Concat("Software\\Microsoft\\Office\\", str, "\\Outlook"));
if (registryKey != null)
{
string value = (string)registryKey.GetValue("Bitness", null);
if ((value == null ? false : value == "x64"))
{
flag = true;
return flag;
}
}
软件作者要修复这个问题也很容易,把new string[] { "14.0", "15.0" }改成new string[] { "14.0", "15.0", "16.0", "17.0", "18.0", "19.0" },保险起见,宁可多写些版本号。而我们用户要解决这个问题也很简单,首先在“word>文件>帐户>关于word”中找到自己的word的位数。
然后在前面提到的data文件夹中,(不要双击与data文件夹在一起的setup.exe(CRC32:5E5CA106)),进入word-32或word-64文件夹(取决于你的word位数),双击里面的setup.exe(CRC32:6620A422),即可安装与word位数对应的Word-to-Latex,不再会出现运行时错误‘429’。这应该是Word-to-Latex本身的缺陷,感兴趣的可以用JustDecompile打开Word-To-Latex安装路径(默认是C:\Program Files (x86)\Word-to-LaTeX)下的word-to-latex-lib.DLL,看看这些warn为什么会出现,我懒得分析了。