使用webbrowser和mshtml.dll获取网页源代码的问题
private void button1_Click(object sender, System.EventArgs e) {
object url=\“http://www.google.com\“;
object nothing=null;
this.axWebBrowser1.Navigate2(ref url,ref nothing,ref nothing,ref nothing,ref nothing);
this.axWebBrowser1.DownloadComplete+=new System.EventHandler(this.button2_Click);
}
private void button2_Click(object sender, System.EventArgs e) {
this.textBox1.Text=\“\“;
mshtml.IHTMLDocument2 doc=(mshtml.IHTMLDocument2)this.axWebBrowser1.Document;
mshtml.IHTMLElementCollection all=doc.all;
System.Collections.IEnumerator enumerator=all.GetEnumerator();
while(enumerator.MoveNext() && enumerator.Current!=null)
{
mshtml.IHTMLElement element=(mshtml.IHTMLElement)(enumerator.Current);
if(this.checkBox1.Checked==true)
{
this.textBox1.Text+=\“\\r\\n\\r\\n\“+element.innerHTML;
}
else
{
this.textBox1.Text+=\“\\r\\n\\r\\n\“+element.outerHTML;
}
}
}
使用 MSHTML.HtmlDocument 解析器,该如何查找这样的标签内容呢
要想正确使用它们,就要区分它们2个的区别.简单来说:div就是块级别.而span是行内样式?通俗点可以这样理解:div就是我们的房子,span就是里面的装修.
div一般应用与排版,而span一般是里面的文字的展示优化,局部文字的样式等等效果如下:代码在旁边,方便大家理解
如何用mshtml获得Javascript中function的返回值
《!DOCTYPE html》
《html》
《meta charset=“utf-8“ /》
《script》
function testZ() {
var x=9;
var y=1;
var z=x+y;
return z;
}
function getZ () {
var i = testZ();
alert(i);
}
《/script》
《body》
《div onclick=“getZ();“ style=“color:red;“》Click Me 点我..《/div》
《/body》
《/html》
关于一些dll文件的说明
winexec(Pchar(’StrCommand’),sw_Show);
其中“StrCommand“代表以下命令之一(使用Windows中的运行不要加引号):
“rundll32 shell32,Control_RunDLL“ – 运行控制面板
“rundll32 shell32,OpenAs_RunDLL“ – 打开“打开方式“窗口
“rundll32 shell32,ShellAboutA Info-Box“ – 打开“关于“窗口
“rundll32 shell32,Control_RunDLL desk.cpl“ – 打开“显示属性“窗口
“rundll32 user,cascadechildwindows“ – 层叠全部窗口
“rundll32 user,tilechildwindows“ – 最小化所有的子窗口
“rundll32 user,repaintscreen“ – 刷新桌面
“rundll32 shell,shellexecute Explorer“ – 重新运行Windows Explorer
“rundll32 keyboard,disable“ – 锁写键盘
“rundll32 mouse,disable“ – 让鼠标失效
“rundll32 user,swapmousebutton“ – 交换鼠标按钮
“rundll32 user,setcursorpos“ – 设置鼠标位置为(0,0)
“rundll32 user,wnetconnectdialog“ – 打开“映射网络驱动器“窗口
“rundll32 user,wnetdisconnectdialog“ – 打开“断开网络驱动器“窗口
“rundll32 user,disableoemlayer“ – 显示BSOD窗口, (BSOD) = Blue Screen Of
Death, 即蓝屏
“rundll32 diskcopy,DiskCopyRunDll“ – 打开磁盘复制窗口
“rundll32 rnaui.dll,RnaWizard“ – 运行“Internet连接向导“,
如果加上参数“/1“则为silent模式
“rundll32 shell32,SHFormatDrive“ – 打开“格式化磁盘(A)“窗口
“rundll32 shell32,SHExitWindowsEx -1“ – 冷启动Windows Explorer
“rundll32 shell32,SHExitWindowsEx 1“ – 关机
“rundll32 shell32,SHExitWindowsEx 0“ – 退当前用户
“rundll32 shell32,SHExitWindowsEx 2“ Windows9x 快速重启
“rundll32 krnl386.exe,exitkernel“ – 强行退出Windows 9x(无确认)
“rundll rnaui.dll,RnaDial “MyConnect“ – 运行“网络连接“对话框
“rundll32 msprint2.dll,RUNDLL_PrintTestPage“ – 选择打印机和打印测试页
“rundll32 user,setcaretblinktime“ – 设置光标闪烁速度
“rundll32 user, setdoubleclicktime“ – 测试鼠标双击速度
“rundll32 sysdm.cpl,InstallDevice_Rundll“ – 搜索非PnP设备
控制面板中的各项功能
winexec(’rundll32.exe shell32.dll, Control_RunDLL’, 9);
{辅助选项 属性-键盘}
winexec(’rundll32.exe shell32.dll, Control_RunDLL access.cpl, 1’, 9);
{辅助选项 属性-声音}
winexec(’rundll32.exe shell32.dll, Control_RunDLL access.cpl, 2’, 9);
{辅助选项 属性-显示}
winexec(’rundll32.exe shell32.dll, Control_RunDLL access.cpl, 3’, 9);
{辅助选项 属性-鼠标}
winexec(’rundll32.exe shell32.dll, Control_RunDLL access.cpl, 4’, 9);
{辅助选项 属性-常规}
winexec(’rundll32.exe shell32.dll, Control_RunDLL access.cpl, 5’, 9);
{添加/删除程序 属性-安装/卸载}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 1’, 9);
{添加/删除程序 属性-Windows安装程序}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 2’, 9);
{添加/删除程序 属性-启动盘}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 3’, 9);
{显示 属性-背景}
winexec(’rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 0’, 9);
{显示 属性-屏幕保护程序}
winexec(’rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 1’, 9);
{显示 属性-外观}
winexec(’rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 2’, 9);
{显示 属性-设置}
winexec(’rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 3’, 9);
{Internet 属性-常规}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 0’,
9);
{Internet 属性-安全}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 1’,
9);
{Internet 属性-内容}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 2’,
9);
{Internet 属性-连接}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 3’,
9);
{Internet 属性-程序}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 4’,
9);
{Internet 属性-高级}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 5’,
9);
{区域设置 属性-区域设置}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 0’, 9);
{区域设置 属性-数字}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 1’, 9);
{区域设置 属性-货币}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 2’, 9);
{区域设置 属性-时间}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 3’, 9);
{区域设置 属性-日期}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 4’, 9);
winexec(’rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 0’, 9);
winexec(’rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 1’, 9);
{鼠标 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Main.cpl’, 9);
{多媒体 属性-音频}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 0’, 9);
{多媒体 属性-视频}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 1’, 9);
{多媒体 属性-MIDI}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 2’, 9);
{多媒体 属性-CD音乐}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 3’, 9);
{多媒体 属性-设备}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 4’, 9);
{调制解调器 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Modem.cpl’, 9);
winexec(’rundll32.exe shell32.dll, Control_RunDLL Netcpl.cpl’, 9);
{密码 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Password.cpl’, 9);
{扫描仪与数字相机 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Sticpl.cpl’, 9);
{系统 属性-常规}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 0’, 9);
{系统 属性-设备管理器}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 1’, 9);
{系统 属性-硬件配置文件}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 2’, 9);
{系统 属性-性能}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 3’, 9);
{日期/时间 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL timedate.cpl’, 9);
{电源管理 属性}
winexec(’rundll32.exe shell32.dll, Control_RunDLL Powercfg.cpl’, 9);
winexec(’rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl’, 9);
关于调用后的判断处理建议:
先声明一个cardinal类型的变量RtnCardinal获取返回值进行判断如:
RtnCardinal := winexec(’rundll32.exe shell32.dll, Control_RunDLL
Telephon.cpl’, 9);
返回值 可能原因
0 程序超出内存
ERROR_BAD_FORMAT 程序为一个非法的Win32.EXE程序
ERROR_FILE_NOT_FOUND 指定文件没找到
ERROR_PATH_NOT_FOUND 指定路径没找到
使用方法:
点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然后键入“rundll32.exe
user.exe,restartwindows“,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣?
当然,Rundll的功能绝不仅仅是重启你的机器。其实,Rundll者,顾名思义,执行Dll也,它的功能就是以命令列的方式呼叫Windows的动态链结库,Rundll32.exe与Rundll.exe的区别就在於前者是呼叫32位的链结库,而后者是运用於16位的链结库,它们的命令格式是:
RUNDLL.EXE ,,
这里要注意三点:1.Dll档案名中不能含有空格,比如该档案位於c:\Program
Files\目录,你要把这个路径改成c:\Progra~1\;2.Dll档案名与Dll入口点间的逗号不能少,否则程式将出错并且不会给出任何资讯!3.这是最重要的一点:Rundll不能用来呼叫含返回值参数的Dll,例如Win32API中的GetUserName(),GetTextFace()等。在Visual
Basic中,提供了一条执行外部程式的指令Shell,格式为:
Shell “命令列”
如果能配合Rundll32.exe用好Shell指令,会使您的VB程式拥有用其他方法难以甚至无法实现的效果:仍以重启为例,传统的方法需要你在VB工程中先建立一个模组,然后写入WinAPI的声明,最后才能在程式中呼叫。而现在只需一句:
Shell “rundll32.exe
user.exe,restartwindows”就搞定了!是不是方便多了?
实际上,Rundll32.exe在呼叫各种Windows控制面板和系统选项方面有著独特的优势。下面,我就将本人在因特网上收集的有关Rundll的指令列举如下(很有用的,能省去你很多呼叫Windows
API的时间!!),供大家在程式设计中引用:
命令列: rundll32.exe shell32.dll,Control_RunDLL
功能: 显示控制面板
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1
功能: 显示“控制面板-辅助选项-键盘”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2
功能: 显示“控制面板-辅助选项-声音”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3
功能: 显示“控制面板-辅助选项-显示”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4
功能: 显示“控制面板-辅助选项-滑鼠”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5
功能: 显示“控制面板-辅助选项-传统”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1
功能: 执行“控制面板-添加新硬体”向导。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter
功能: 执行“控制面板-添加新印表机”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,1
功能: 显示 “控制面板-添加/删除程式-安装/卸载” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2
功能: 显示 “控制面板-添加/删除程式-安装Windows” 面板。
命令列: rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3
功能: 显示 “控制面板-添加/删除程式-启动盘” 面板。
命令列: rundll32.exe syncui.dll,Briefcase_Create
功能: 在桌面上建立一个新的“我的公文包”。
命令列: rundll32.exe diskcopy.dll,DiskCopyRunDll
功能: 显示复制软碟视窗
命令列: rundll32.exe apwiz.cpl,NewLinkHere %1
功能:
显示“建立快捷方式”的对话框,所建立的快捷方式的位置由%1参数决定。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,0
功能: 显示“日期与时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1
功能: 显示“时区”选项视窗。
命令列: rundll32.exe rnaui.dll,RnaDial
功能:
显示某个拨号连接的拨号视窗。如果已经拨号连接,则显示目前的连接状态的视窗。
命令列: rundll32.exe rnaui.dll,RnaWizard
功能: 显示“新建拨号连接”向导的视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
功能: 显示“显示属性-背景”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1
功能: 显示“显示属性-萤屏保护”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2
功能: 显示“显示属性-外观”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3
功能: 显示显示“显示属性-属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
功能: 显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 同样是显示Windows的“字体”档案夹。
命令列: rundll32.exe shell32.dll,SHformatDrive
功能: 显示格式化软碟对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,0
功能: 显示“控制面板-游戏控制器-一般”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL joy.cpl,,1
功能: 显示“控制面板-游戏控制器-进阶”选项视窗。
命令列: rundll32.exe mshtml.dll,PrintHTML (HTML文档)
功能: 列印HTML文档。
命令列: rundll32.exe shell32.dll,Control_RunDLL mlcfg32.cpl
功能: 显示Microsoft Exchange一般选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @0
功能: 显示“控制面板-滑鼠” 选项 。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1
功能: 显示 “控制面板-键盘属性-速度”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @1,,1
功能: 显示 “控制面板-键盘属性-语言”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @2
功能: 显示Windows“印表机”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @3
功能: 显示Windows“字体”档案夹。
命令列: rundll32.exe shell32.dll,Control_RunDLL main.cpl @4
功能: 显示“控制面板-输入法属性-输入法”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add
功能: 执行“添加新调制解调器”向导。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0
功能: 显示“控制面板-多媒体属性-音频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1
功能: 显示“控制面板-多媒体属性-视频”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2
功能: 显示“控制面板-多媒体属性-MIDI”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,3
功能: 显示“控制面板-多媒体属性-CD音乐”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4
功能: 显示“控制面板-多媒体属性-设备”属性页。
命令列: rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1
功能: 显示“控制面板-声音”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl
功能: 显示“控制面板-网路”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl
功能: 显示ODBC32资料管理选项视窗。
命令列: rundll32.exe shell32.dll,OpenAs_RunDLL
功能: 显示指定档案(drive:\path\filename)的“打开方式”对话框。
命令列: rundll32.exe shell32.dll,Control_RunDLL password.cpl
功能: 显示“控制面板-密码”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl
功能: 显示“控制面板-电源管理属性”选项视窗。
命令列: rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL
PrintersFolder
功能: 显示Windows“印表机”档案夹。(同rundll32.exe
shell32.dll,Control_RunDLL main.cpl @2)
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
功能: 显示“控制面板-区域设置属性-区域设置”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
功能: 显示“控制面板-区域设置属性-数字”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
功能: 显示“控制面板-区域设置属性-货币”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
功能: 显示“控制面板-区域设置属性-时间”选项视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4
功能: 显示“控制面板-区域设置属性-日期”选项视窗。
命令列: rundll32.exe desk.cpl,InstallScreenSaver
功能:
将指定的萤屏保护档案设置为Windows的屏保,并显示萤屏保护属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0
功能: 显示“控制面板-系统属性-传统”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
功能: 显示“控制面板-系统属性-设备管理器”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2
功能: 显示“控制面板-系统属性-硬体配置档案”属性视窗。
命令列: rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3
功能: 显示“控制面板-系统属性-性能”属性视窗。
命令列: rundll32.exe user.exe,restartwindows
功能: 强行关闭所有程式并重启机器。
命令列: rundll32.exe user.exe,exitwindows
功能: 强行关闭所有程式并关机。
命令列: rundll32.exe shell32.dll,Control_RunDLL telephon.cpl
功能: 显示“拨号属性”选项视窗
命令列: rundll32.exe shell32.dll,Control_RunDLL themes.cpl
功能: 显示“桌面主旨”选项面板
当然,不止是VisualBasic,象Delphi.VisualC++等其他程式设计语言也可以通过呼叫外部命令的方法来使用Rundll的这些功能,具体方法这里就不再详细叙述了。灵活的使用Rundll,一定会使你的程式设计轻轻松松,达到事半功倍的效果
解析HTML最好的类还是微软自己的
解析HTML最好的类还是微软自己的
在站内搜索的项目要进行HTML的解析,发现程序运行非常慢,一开始以为是lucene的问题,一测试大吃一惊,每一步lucene中AddDocument等只用了几十毫秒,而HTML解析竟然用了9秒。
日志如下:
2010-06-26 15:51:25,171 DEBUG SearchSite.StartIndex – DownloadString:00:00:00.0482329
2010-06-26 15:51:34,187 DEBUG SearchSite.StartIndex – ThreadParser:00:00:09.0236490
2010-06-26 15:51:34,187 DEBUG SearchSite.StartIndex – DeleteDocuments:00:00:00.0000069
2010-06-26 15:51:34,203 DEBUG SearchSite.StartIndex – AddDocument:00:00:00.0191071
我使用的是Winista.HtmlParser这块网上找到的HTML解析器。遂准备更换解析器,但是用“.Net HTML Parser”在google上寻找,一直没找到合适的解析器,不是太难用,就是性能比Winista.HtmlParser还差,我才想到,微软的MSHTML不就是用来解析HTML的吗?折腾这么一圈却忘了微软自家的东西,微软的东西性能肯定差不了。
添加对Microsoft.mshtml这个程序集的引用,然后编写如下代码:
IHTMLDocument2 doc = new HTMLDocumentClass();
doc.write(new object{pageSource});
doc.close();
Title = doc.title;
Body = doc.body.innerText;
再测试,哇咔咔,快的要命,只有几十毫秒,2000个帖子一会儿就爬完了。
日志如下:
2010-06-26 16:26:35,546 DEBUG SearchSite.StartIndex – DownloadString:00:00:00.0400263
2010-06-26 16:26:35,562 DEBUG SearchSite.StartIndex – ThreadParser:00:00:00.0257731
2010-06-26 16:26:35,562 DEBUG SearchSite.StartIndex – DeleteDocuments:00:00:00.0001913
2010-06-26 16:26:35,578 DEBUG SearchSite.StartIndex – AddDocument:00:00:00.0010881
HTMLDocumentClass的方法比任何一个网上找到的HTML解析器都丰富,想怎么搞就怎么搞,而且调用方法就是操作Dom的方法,完全不用再去学,哇咔咔,爽呆了。
在使用的过程中遇到两个问题:
1、VS2010中引用Microsoft.mshtml之后,要修改这个引用的“嵌入互操作类型”为False。
2、调用doc.write方法的时候必须通过IHTMLDocument2接口来调用,否则报错“错误的类型”,在google上搜“type mismatch HTMLDocument write”
IE6.0出现 MSHTML.DLL错该怎么办
mshtml.dll是HTML解释器相关模块。
MSHTML.DLL是一个用于解析HTML语言的动态链接库,IE、Outlook、Outlook Express
等应用程序都使用了该动态链接库。攻击者有可能利用特定的java script远程拒绝
服务攻击使用该动态链接库的应用程序。
MSHTML.DLL使得java script可以处理多个窗口对象。如果一个窗口对象接收数据之
后被删除,然后重新初始化,MSHTML.DLL将出错,根据出错现象可以判断出发生了缓
冲区溢出,但是尚未发现可以利用这次缓冲区溢出远程执行shellcode。
微软确认该问题存在,将在后续service pack中修正它。
当浏览网际网路时,可能会收到下列错误讯息:
Iexplore 造成 Mshtml.dll 错误。Iexplore 即将关闭。
Iexplore 造成 Kernel32.dll 错误。Iexplore 即将关闭。
如果按下 Alt+D 以获得更多详细资讯,可能会收到下列错误讯息:
Iexplore 在模组 Mshtml.dll 位置:016f:7f47070c 造成无效分页错误。
暂存器:
EAX=00000000 CS=016f EIP=7f47070c EFLGS=00010246
EBX=0047dd4c SS=0177 ESP=0167bd18 EBP=00000000
ECX=00000000 DS=0177 ESI=00000000 FS=345f
EDX=00000100 ES=0177 EDI=00000000 GS=0000
位元组於 CS:EIP:
8b 86 94 00 00 00 3b c5 74 51 57 8b 3d 44 16 3c
堆叠倾印:
00000000 0167de34 7f493be6 0047dd4c 00000000 00000000 0074006b 0070006f
0073005c 00650068 006c006c 00650077 002e0062 00740068 0000006d 0000001e
IEXPLORE 在模组 KERNEL32.DLL 位置 016f:bff6bb07 造成无效分页错误。暂存器:
EAX=00000000 CS=016f EIP=bff6bb07 EFLGS=00000246
EBX=0167e3b8 SS=0177 ESP=0167fc2c EBP=0167fc80
ECX=0167e270 DS=0177 ESI=0167e3b8 FS=345f
EDX=00000003 ES=0177 EDI=0167e3a8 GS=0000
位元组於 CS:EIP:
ff 76 04 e8 8a 87 ff ff 5e c2 04 00 56 8b 74 24
堆叠倾印:
0167e270 7af71012 0167e3b8 006b7c00 006b7bf0 7af70000 7afb545f 00000000
006b7ac0 7afaa9d7 00000000 006b7ac0 7afae052 00000003 7af9a6f7 7af70000
如果您持续遇到问题,请尝试重新启动电脑。
发生的原因
这可能是使用 XSL 档案建立锚定标记 (A) 集以变更右方框架,或呼叫 Window.open (URL、rightframe) 的元素的 XML 档案所造成。
只有在右方框架目前指向位於另一个网域的分页时,才会发生这个问题。 如果分页在相同的网域中,在分页变更至不同的网域前都能正常运作。
解决方案
如果要解决这个问题,请从 Microsoft 网站之一安装 Microsoft Internet Explorer 5.5 以上版本:
状况说明
Microsoft 已确认 Windows Millennium Edition 的 Internet Explorer 5.5 版产品确实有上述问题。
mshtml怎么使用不停报错mshtml”: 符号不能用在 using 声明
在你的项目中右击,添加引用,然后在.net选项卡中选择路径为.mshtml的哪几项,然后编译,生成,即可
如何使用webbrowser实现html表格操作
使用webbrowser实现html表格操作需要引入mshtml.dll这个链接库。
1、比如有如下表格代码:
《table width=“100%“ 》
《tr style=“background-color:#c9e4ff; line-height: 25px;“》
《th width=“5%“》序号《/th》
《th width=“15%“》违章时间《/th》
《th width=“20%“》违章地点《/th》
《th width=“40%“》违章行为《/th》
《th width=“10%“》执行机关《/th》
《th width=“10%“》是否处理《/th》
《/tr》
《/table》
2、用mshtml.dll提供的方法解析:
IHTMLDocument2 document = webbrower.Document.DomDocument as IHTMLDocument2;
IHTMLElementCollection tables = (IHTMLElementCollection)document.all.tags(“TABLE“);
foreach (IHTMLTable table in tables)
{
IHTMLTableSection tts= table.tHead;//因为TH标签是属于表格的表头信息;
foreach(IHTMLElement th in tts.rows)
{
System.Diagnostics.Debug.WriteLine(th.innerText)//遍历输出内容
}
}
mshtml.dll的修复方法
mshtml.dll出错,很多是电脑因为中了流氓软件,在不太了解系统,不知道其在电脑中的存放位置的情况下,建议使用修复工具对系统进行最全面的扫描和修复。
首先,建议使用知名并且功能强大的杀毒软件。
然后,点击主界面的快速扫描,进行全面的系统扫描。
最后,按提示重新启动电脑,mshtml.dll下载修复完毕。 一、如果您的系统提示“没有找到mshtml.dll”或者“缺少mshtml.dll”等类似错误信息,请把mshtml.dll下载到本机
二、直接拷贝该文件到系统目录里:
1、Windows 95/98/Me系统,则复制到C:\Windows\System目录下。
2、Windows NT/2000系统,则复制到C:\WINNT\System32目录下。
3、Windows XP系统,则复制到C:\Windows\System32目录下。
三、然后打开“开始-运行-输入regsvr32 mshtml.dll”,回车即可解决错误提示!
请高手详细解释下什么意思
meta标签可以用于文档声明,告诉浏览器你用的是何种编码,这是标签作为一个必须存在,且写法固定的标签,也可提供信息的一个标签,对搜索引擎和浏览器起作用,这时主要用于优化。
HTML 《meta》 标签
定义和用法
《meta》 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。
《meta》 标签位于文档的头部,不包含任何内容。《meta》 标签的属性定义了与文档相关联的名称/值对。
HTML 与 XHTML 之间的差异
在 HTML 中,《meta》 标签没有结束标签。
在 XHTML 中,《meta》 标签必须被正确地关闭。
提示和注释:
注释:《meta》 标签永远位于 head 元素内部。
注释:元数据总是以名称/值的形式被成对传递的。
必需的属性
DTD 指示此属性允许在哪种 DTD 中使用。S=Strict, T=Transitional, F=Fra