当我使用可执行文件而不是在 Visual Studio 2010 中调试它时遇到问题。
我想从 IE 中的选项卡中获取 youtube 视频的 url,并且我参考了:C:\Windows\System32\shdocvw.dll
以及 COM 选项卡中的“Microsoft Internet Controls”(即使程序在调试模式下没有此参考也可以正常工作)。
引用的 dll 位于 Debug 文件夹中,名为“Interop.SHDocVw.dll”。这是我的代码的一部分:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{ //the foreach loop isn't executed when I use the executable file
foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindowsClass())
{
url = ieInst.LocationURL;
if (url.Contains("youtube"))
{
webBrowser1.Document.GetElementById("youtube-url").SetAttribute("value", url);
webBrowser1.Document.GetElementById("submit").InvokeMember("click");
usable = url;
timer1.Start();
}
}
}
当我在 Visual Studio 中以调试模式运行它时,它一切正常,但是当我使用可执行文件时它不起作用并且 DocumentCompleted 发生多次。
有什么帮助吗?