熟悉SHDocVw的进来看看
我有一个简单程序,在安装了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
}
}
非常奇怪,请知道的兄弟不吝赐教。 --------------------编程问答-------------------- MessageBox.Show这就是一个弹出对话框 具体你可以上msdn上查查 也比较简单 --------------------编程问答-------------------- 楼上的,我指的是ie.Document.ToString()这个值 --------------------编程问答-------------------- 是否引用了mshtml.dll(添加引用--.NET选项卡--Microsoft.mshtml) --------------------编程问答-------------------- 没弄过,帮顶下 --------------------编程问答-------------------- 没有引用Microsoft.mshtml,就是不work啊 --------------------编程问答-------------------- 随程序发布Microsoft.mshtml.dll --------------------编程问答-------------------- 你引用了mshtml的运行库,.net35本身中没有这个运行库,那么你自己就要在封装程序的时候添加上这个运行库。
VS里面带了一部分运行库,为了方便编程用的。
但是没有装VS的机子上就没有这个运行库,你当然得自己封装了。 --------------------编程问答-------------------- mshtml.HTMLDocumentClass 没有发布。COM接口无法解析。
建议楼主不要用COM接口操作IE内部对象。
补充:.NET技术 , C#