IHTMLDocument2.write中的EOleException仅在Windows 10中

时间:2015-08-19 01:46:28

标签: delphi windows-10 ihtmldocument2

以下过程适用于Windows XP,7-32,7-64,8-32,8-64,其中IE 8到11的版本不适用于新的Windows 10,请参阅代码:

@item.shoes?

try IDoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2; IDoc.Write(PSafeArray(VarArrayAsPSafeArray(VarArrayOf([xHtml])))); //Error windows 10 IDoc.Close; except on E: Exception do begin //E.ClassName = EOleException //E.Message = Unspecified error end; end; 是一个包含HTML xHtml

的字符串

我也尝试用这种方式编写IHTMLDocument2,但也有同样的错误:

"<html>...</html>"

我还检查了Windows 10中是否有IDoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2; v := VarArrayCreate([0, 0], VarVariant); v[0] := xHtml; IDoc.Write(PSafeArray(TVarData(v).VArray)); IDoc.Close; ,并且有。

2 个答案:

答案 0 :(得分:1)

我在使用XE8的Win10 64位上尝试了两个例子。

try
  IDoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
  IDoc.Write(PSafeArray(VarArrayAsPSafeArray(VarArrayOf([xHtml])))); //Error windows 10
  IDoc.Close;
except
  on E: Exception do
   begin
    //E.ClassName = EOleException
    //E.Message = Unspecified error
   end;
end;

IDoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2;
v := VarArrayCreate([0, 0], VarVariant);
v[0] := xHtml;
IDoc.Write(PSafeArray(TVarData(v).VArray));
IDoc.Close;

并且都执行而不引发任何异常。所以看起来这个问题是特定于你的系统的,如果是的话,这个q应该是关闭的。

Fwiw,以下代码也可以正常使用

procedure LoadWBFromString(WB : TWebBrowser; const S : String);
var
  Doc : IHtmlDocument2;
  V : OleVariant;
begin
  if WB.Document = nil then
    WB.Navigate('about:blank');
  Doc := WB.Document as IHTMLDocument2;
  V := VarArrayCreate([0, 0], varVariant);
  V[0] := S;
  Doc.Write(PSafeArray(TVarData(v).VArray));
  Doc.Close;
end;

procedure TForm1.LoadWB;
begin
  LoadWBFromString(WebBrowser1, Memo1.Lines.Text);
end;

并正确显示WebBrowser1中Memo1.Text的最小HTML文档。

答案 1 :(得分:0)

我发现问题只是关键字“FEATURE_BROWSER_EMULATION”因为我在Windows 10中注册使用旧版本的IE时发生此错误,它只删除了与我的应用程序相关的关键字“FEATURE_BROWSER_EMULATION”,它开始在Windows 10中运行,我要做的是检查Windows的版本,只在旧版本中注册密钥,感谢所有的提示,我只能通过评论找到问题。

我正在录制的密钥:“Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION”

价值:4270841