- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的程序是一个挂接到正在运行的 IE 实例的 dll。多年来一直运行良好。
最近我将它除尘并运行它,但下面的最后一行失败并显示 hr = 0x80040154
:
#import <mshtml.tlb> rename("value", "theValue") rename("event", "theEvent")
#import <shdocvw.dll>
// ....
SHDocVw::IShellWindowsPtr spSHWinds;
HRESULT hr = m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
IE7 已被 IE8 取代是否重要?我还应该看哪里?
如果重要的话,我正在使用 VS2008。
编辑添加
我看不出这可能是 32/64 位问题 - 它去年在同一台机器上运行良好。唯一改变的(据我所知)是 IE 的版本,从 7 到 8。
赏金猎人须知:
我每天只能访问该系统几个小时(美国东部标准时间 0:00 左右),因此您可能无法快速回复您的建议,但我会调查它们。
如果您认为我应该检查哪些内容(例如注册表值),请具体说明。
编辑添加:
我现在看到,第一次我调用 CreateInstance 时,它返回 0x80070002,而不是 0x80040154。
最佳答案
这将非常难以诊断。 ShellWindows coclass 比较特殊,其 CLSID 注册表项为 HKEY_CLASSES_ROOT\CLSID\{9BA05972-F6A8-11CF-A442-00A0C90A8F39}
。当你看那里时,你会发现那里没有注册任何有用的东西。背景故事是,这是使 Windows 外壳类似于 Web 浏览器的不幸尝试的遗留问题。今天仍然可见,枚举 shell 窗口返回 Windows Explorer 和 Internet Explorer 实例。
SysInternals 的 ProcMon 实用程序几乎总是调试 0x80040154 错误的首选武器,但它在这里表现平平。您可以看到它正在探测注册表,但没有找到它要查找的内容,但是程序无论如何都知道如何加载 ieframe.dll。这只能通过操作系统拦截 CoCreateInstance() 调用来工作。考虑到 coclass 枚举 shell 窗口,这通常是有道理的。
剩下的就是试错法了。先重装IE,再重装操作系统。或者在机器占用您太多宝贵时间之前将机器推出 4 层楼的 window 。
关于c++ - SHDocVw::IShellWindowsPtr 在 IE8 下失败? (错误 0x80040154),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13468784/
在新的“构建”服务器上编译解决方案会抛出错误 The referenced component 'SHDocVw' could not be found. 解决方案在其他构建服务器和开发人员机器上构建
它被用在几个网站上,这些网站似乎都假设读者知道如何使用这种类型,但我不知道。 示例网站,见第一条评论: http://blogs.artinsoft.net/mrojas/archive/2008/0
我正在使用 ShDocVw 互操作程序集来访问 InternetExplorer对象。 foreach(InternetExplorer IE in new ShellWindowsClass())
在我的 VB6 应用程序中,我使用 SHDocVw.InternetExplorer 并导航网站、填写 texbox、提交等。 Dim iE As New SHDocVw.InternetExplor
我在 c# 中有一个浏览器帮助程序对象项目,(显然)引用了 shdocvw.dll。我想我想为 shdocvw.dll 创建一个强命名的互操作 dll。我该怎么做 - 我已经看到了很多关于 aximp
我以前这样做过,我不记得我是从网上下载的 DLL 还是其他东西,但我不想感染病毒。我需要访问这个命名空间,以便我可以拥有 Webbrowswer 控件不提供的额外功能。 如何准确添加 Com 引用。还
在运行 WatIn 测试时,我刚刚开始收到以下错误。 System.IO.FileNotFoundException : Could not load file or assembly 'Intero
我的程序是一个挂接到正在运行的 IE 实例的 dll。多年来一直运行良好。 最近我将它除尘并运行它,但下面的最后一行失败并显示 hr = 0x80040154: #import rename
我正在开发一个应用程序的一部分,它有一个“查找器”工具,允许用户将查找器拖放到应用程序或 Internet Explorer Web 浏览器上,以便我们的程序可以找到它并执行它需要的操作去做。这部分应
我在 Visual Studio 2010 WPF 程序中有以下代码。我正在自动化 Internet Explorer 而不是表单上的网络浏览器。 Private Sub ie_NewWindow3(
DocumentComplete 的文档接近尾声的事件提及: In the loading process, the highest level frame, which is not necessa
我有一个程序,我必须从正在运行的 IE8 进程中获取 SHDocVw.InternetExplorer 实例。要获取实例,请运行以下示例代码。由于某种原因,如果没有 Thread.Sleep,它将无法
我使用 VS 2010 Ultimate。 我正尝试通过右键单击References -> Add Reference... 将“shdocvw.dll”添加到我的项目引用中,然后单击Browse 并
正如标题所示,我正在尝试最大化使用以下命令创建的 Internet Explorer 窗口: Set ie = New SHDocVw.InternetExplorer 而不是: Set ie = C
我从网站上看到一个例子 http://msdn.microsoft.com/en-us/library/system.windows.controls.webbrowser%28v=VS.90%29.
我正在学习使用 MS Visual Studio 2010 和 C# 创建 BHO 的教程。为了运行教程代码,我必须在我的项目中添加这个引用:- 使用 SHDocVw 但它在添加引用的 .NET 或
这个问题的基础来自 support.microsoft.com 上的这个教程: http://support.microsoft.com/kb/176792 To run the following
我是一名优秀的程序员,十分优秀!