我有两个相同的系统。当我在Visual Studio 2017调试模式下运行以下代码时。该文档是mshtml.HTMLDocumentClass,但是当我在另一个系统上运行该应用程序时。该文档为System.__ComObject
。
为什么文档在另一个系统上与众不同?当我尝试执行url时,当文档的类型为mshtml.HTMLDocumentClass
时,它可以工作,但是当文档的类型为System.__ComObject
时,则失败。
我具有IE 11的相同版本。
SHDocVw.ShellWindowsClass shellWindows = (new SHDocVw.ShellWindowsClass());
foreach (SHDocVw.InternetExplorer internetExplorer in shellWindows)
{
try
{
if ((internetExplorer) != (null))
{
Count = 0;
while ((internetExplorer.ReadyState) != (SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) && Count < 10000)
{
LogArquivo.escreve_log("thiago 3");
System.Windows.Forms.Application.DoEvents();
Count += 1;
}
mshtml.IHTMLDocument3 htmlDocument = (internetExplorer.Document as mshtml.IHTMLDocument3);
string url = ((mshtml.IHTMLDocument3)htmlDocument).url.ToString(); //<<<<--- this line make exception
“无法将类型为'System .__ ComObject'的COM对象转换为接口 键入“ mshtml.IHTMLDocument3”。