易截截图软件、单文件、免安装、纯绿色、仅160KB

C#中实现WebBrowser控件的HTML源代码读写

趁周末想折腾一下嵌入ASP.NET的WinForm程序
需要用到WebBrowser控件的HTML源码读写
就把以前的一些代码片断移值到C#下
顺便发个帖子备忘,呵呵
  
思路其实很简单,直接通过document.documentElement.outerHTML
或者使用IPersistStreamInit接口直接对流进行处理
前者我就不废话了,后者实现方法如下
  
首先是写入HTML到已初始化的WebBrowser控件
初始化可以通过Navigate("about:blank")完成
必须确保WebBrowser.Document != null
否则应该推迟到DocumentComplete事件再读写
  
UCOMIStream stream = null;
  
CreateStreamOnHGlobal(Marshal.StringToHGlobalUni(value), true, out stream);
   
if(stream != null)
  
{
    IPersistStreamInit persistentStreamInit =
      (IPersistStreamInit)WebBrowser.Document;
  
    persistentStreamInit.InitNew();
    persistentStreamInit.Load(stream);
    persistentStreamInit = null;
}
  
UCOMIStream是COM中IStream的CLR版本
CreateStreamOnHGlobal函数从一个字符串的地址
创建一个IStream供使用
  
[DllImport("ole32.dll", PreserveSig=false)]
static extern void CreateStreamOnHGlobal(IntPtr hGlobal,
    Boolean fDeleteOnRelease, [Out] out UCOMIStream pStream);
  
然后就是通过IPersistStreamInit接口初始化并载入HTML源码,
IPersistStreamInit接口CLR缺省没有导入,定义如下
  
[ComVisible(true), ComImport(), Guid("7FD52380-4E07-101B-AE2D-08002B2EC713"),
   InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IPersistStreamInit
{
    void GetClassID([In, Out] ref Guid pClassID);
  
    [return: MarshalAs(UnmanagedType.I4)] [PreserveSig]
    int IsDirty();
  
    void Load([In, MarshalAs(UnmanagedType.Interface)] UCOMIStream pstm);
    void Save([In, MarshalAs(UnmanagedType.Interface)] UCOMIStream pstm,
 


相关文档:

C#到Java byte类型冲突的解决

最近要改写一个核心加密认证类,从C#改写成Java。
发现在调试时,加密的数据无论如何也对不上。
经过跟踪,发现问题出在C#和Java byte类型的区别上:在C#里 byte类型是无符号的,而Java里是有符号的,所以C#里的129到Java里就成了负数。
发现了问题,解决就比较容易了,针对Java的byte,采用Int来进行存储。
通过如下代 ......

Scribd寄希望于HTML5,放弃Flash,

    处境堪忧的Adobe Flash将面临另一次打击,在线文档最终也开始表明立场。目前网上大部分文档(PDF、Word文档、幻灯片)只能在Flash播放器内部播放,无法显 示为完整的网页。明天在线文档分享网站Scribd上的数百万份文档不再使 用Flash播放,而是将转化为本地HTML5网页。这些文档不仅可以在iPad上完美显示 ......

asp.net C#网站项目 获取物理路径、虚拟路径的方法

-----------------------------.cs类文件中
当前项目的物理路径嘛:  
   
  strPath   =   this.Server.MapPath(Request.PhysicalApplicationPath);  
   
  你要说明什么“类文件”。任何PAGE、CONTROL代码也是在类 ......

html css 表格边框

<html>
<head>
<mce:style type = "text/css"><!--
table
{
border-collapse:collapse;
}
td
{
border:solid 1px black;
}

--></mce:style><style type = "text/css" mce_bogus="1">table
{
border-collapse:collapse;
}
td
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号