我今天刚开始使用Visual Studio 2010 C#IDE.
我正在尝试向WebBrowser组件注入javascript并遵循stackoverflow的答案:
HtmlElement txtBox = webBrowser1.Document.GetElementById("UserEmailShortcut");
//js
HtmlElement scriptOne = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptOne.DomElement;
element.text = "function sayHello() { alert('hello') }";
txtBox.AppendChild(scriptOne);
webBrowser1.Document.InvokeScript("sayHello");
Run Code Online (Sandbox Code Playgroud)
现在IHTMLScriptElement下面有红色波浪线说:
Error 1 The type or namespace name 'IHTMLScriptElement'
could not be found (are you missing a using directive or an assembly reference?)
C:\Users\m-tak\documents\visual studio
2010\Projects\winformWithWebBrowserTest\winformWithWebBrowserTest\Form1.cs
25 13 winformWithWebBrowserTest
Run Code Online (Sandbox Code Playgroud)
我看过文档 http://msdn.microsoft.com/en-us/library/aa768904(v=VS.85).aspx
但我无法理解为什么.这不是已经包括在内,只需要包括像" using IHTMLScriptElement
"(这不起作用..)
Han*_*ant 39
Project + Add Reference,选择Microsoft.mshtml.如果它没有出现在列表中(它是PIA),那么使用Browse选项卡并选择c:\ windows\system32\mshtml.tlb
在源代码文件的顶部添加using指令:
using mshtml;
Run Code Online (Sandbox Code Playgroud)
请注意您有部署详细信息.如果PIA没有安装在目标机器上,这是不可能的,那么最好的办法是将程序集引用的Copy Local属性设置为True.这将在生成文件夹中创建Microsoft.mshtml.dll文件.将它与EXE一起复制到目标计算机上.有一些情况需要PIA,而不是这个.
更新到这个旧帖子,.NET 4+和VS2010 +现在支持"嵌入互操作类型"引用程序集属性.也称为"无PIA"功能.这淘汰了对PIA的需求,是处理互操作程序集的最佳方式.除非您的项目在旧版本的VS上启动,否则它会自动设置为True.
它没有下端,您不再需要部署互操作程序集,并且您使用的互操作类型现在已嵌入到您的可执行文件中.只是你使用的那些.您的代码可能需要进行一些小的更改,如果您现在创建COM对象,new XxxxClass()
则需要删除名称的"类"部分.
归档时间: |
|
查看次数: |
19721 次 |
最近记录: |