熟悉SHDocVw的进来看看

hjcy_2002 2010-07-05 09:17:38
我有一个简单程序,在安装了VS2008的机器上运行正常,但是在没有安装VS2008,只安装.Net FrameWork3.5的机器上运行异常,请大家帮忙看一看,谢谢。分不够,再加!
首先,添加对ShDocVw的引用,然后在程序中调用

SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();

foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
System.Windows.Forms.MessageBox.Show(ie.LocationURL);
string filename = System.IO.Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("iexplore"))
{
System.Windows.Forms.MessageBox.Show(ie.Document.ToString()); //在未装VS2008的机器上,ie.Document这个属性是System._Object,但是在装了VS2008的机器上ie.Document的属性是mshtml.HTMLDocumentClass
}
}

非常奇怪,请知道的兄弟不吝赐教。
...全文
337 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
okkk 2012-06-25
  • 打赏
  • 举报
回复
mshtml.HTMLDocumentClass 没有发布。COM接口无法解析。
建议楼主不要用COM接口操作IE内部对象。
龍五1618 2012-06-21
  • 打赏
  • 举报
回复
你引用了mshtml的运行库,.net35本身中没有这个运行库,那么你自己就要在封装程序的时候添加上这个运行库。
VS里面带了一部分运行库,为了方便编程用的。
但是没有装VS的机子上就没有这个运行库,你当然得自己封装了。
蒋晟 2010-07-05
  • 打赏
  • 举报
回复
随程序发布Microsoft.mshtml.dll
hjcy_2002 2010-07-05
  • 打赏
  • 举报
回复
没有引用Microsoft.mshtml,就是不work啊
myhope88 2010-07-05
  • 打赏
  • 举报
回复
没弄过,帮顶下
amandag 2010-07-05
  • 打赏
  • 举报
回复
是否引用了mshtml.dll(添加引用--.NET选项卡--Microsoft.mshtml)
hjcy_2002 2010-07-05
  • 打赏
  • 举报
回复
楼上的,我指的是ie.Document.ToString()这个值
liujintaozyc 2010-07-05
  • 打赏
  • 举报
回复
MessageBox.Show这就是一个弹出对话框 具体你可以上msdn上查查 也比较简单

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧