Delphi MSWord版本OLE检查的机器相关结果
使用此代码检索已安装MS Word的版本:Delphi MSWord版本OLE检查的机器相关结果,delphi,ms-word,delphi-xe2,ole,Delphi,Ms Word,Delphi Xe2,Ole,使用此代码检索已安装MS Word的版本: uses uses oleauto; [...] function TForm2.GetWordVersion:string; const wdDoNotSaveChanges = 0; var WordApp: OLEVariant; WordVersion: variant; begin Try WordApp := CreateOLEObject('Word.Application'); WordVer
uses uses oleauto;
[...]
function TForm2.GetWordVersion:string;
const
wdDoNotSaveChanges = 0;
var
WordApp: OLEVariant;
WordVersion: variant;
begin
Try
WordApp := CreateOLEObject('Word.Application');
WordVersion := WordApp.version;
WordApp.Quit(wdDoNotSaveChanges);
except
on E: Exception do
begin
WordVersion := -1;
end;
End;
Result := wordversion;
end;
我的机器上有140个,我的同事有14个。两者都是win7/Word2010,但我在意大利,他在印度
有人知道这件事吗
为什么有不同的价值观
谢谢我猜这是小数点分隔符的问题。Word返回字符串“14.0”,然后当您转换为整数时,句点在一台计算机上被视为位置分隔符,在另一台计算机上被视为十进制分隔符 解决方案是停止转换为整数,我推断您正在使用尚未显示的代码进行转换 我从这一评论中推断: 我可以将其转换为字符串并使用前2个字符
由于问题中的代码对字符串进行操作,因此我得出结论,问题中未显示的其他代码正在转换为整数。如果唯一的可能性是140和14,我可以将其转换为字符串并使用前2个字符。为什么不直接从注册表读取它?为什么要运行WinWord.exe这样繁重的操作?非常感谢,事实上它是“14.0”。