<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_张银的博客</title><subtitle type="text">Eat to live, but do not live to eat.</subtitle><id>http://feed.cnblogs.com/blog/u/48784/rss</id><updated>2012-05-02T00:40:27Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/48784/rss"/><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/04/28/2475027.html</id><title type="text">asp.net修改注册表（页面打印时页眉、页脚、页边距、背景颜色和图像）</title><summary type="text">using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Microsoft.Win32;public partial class PrintSetDefault : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (ReadReg() == 1) { ...</summary><published>2012-04-28T06:03:00Z</published><updated>2012-04-28T06:03:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2475027.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2475027.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Collections.Generic;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Web;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Web.UI;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Web.UI.WebControls;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; Microsoft.Win32;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; PrintSetDefault : System.Web.UI.Page&lt;br/&gt;{&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; sender, EventArgs e)&lt;br/&gt;    {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (ReadReg() == &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;        {&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (WriteReg() == &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br/&gt;            {&lt;br/&gt;                ReadReg();&lt;br/&gt;                Response.Write(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Game over!&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 读注册表&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReadReg()&lt;br/&gt;    {&lt;br/&gt;       &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读注册表&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;        RegistryKey regRead;&lt;br/&gt;       &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取HKEY_CURRENT_USER主键里的子键&lt;/span&gt;&lt;br/&gt;        regRead = Registry.CurrentUser.OpenSubKey(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Software\\Microsoft\\Internet Explorer\\PageSetup&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;       &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (regRead == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;) &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果该子键不存在&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;        {&lt;br/&gt;            Response.Write(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PageSetup:null&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        {&lt;br/&gt;            Response.Write(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;PageSetup:OK&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; obj = regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;header&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;header&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;header:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;footer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;footer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;footer:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_left:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_right&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_right&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_right:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_top:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_bottom&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_bottom&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_bottom:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            obj &lt;/span&gt;= regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Print_Background&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;) == &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt; ? &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;null&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; : regRead.GetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Print_Background&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;读取值&lt;/span&gt;&lt;br/&gt;            Response.Write(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Print_Background:&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; + obj.ToString() + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;&lt;br/&gt;            Response.Write(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/br&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        }&lt;br/&gt;        regRead.Close();&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 写注册表&lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; WriteReg()&lt;br/&gt;    {&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;写注册表&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;         RegistryKey regWrite;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;往HKEY_CURRENT_USER主键里的写子键&lt;br/&gt;         &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果子键已经存在系统会自动覆盖它&lt;/span&gt;&lt;br/&gt;         regWrite = Registry.CurrentUser.CreateSubKey(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Software\\Microsoft\\Internet Explorer\\PageSetup&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;往Test子键里添数据项&lt;/span&gt;&lt;br/&gt;         regWrite.SetValue(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;header&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;amp;w&amp;amp;bPage &amp;amp;p of &amp;amp;P&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;footer&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;amp;u&amp;amp;b&amp;amp;d&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_left&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0.750000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_right&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0.750000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_top&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0.750000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;margin_bottom&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0.750000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        regWrite.SetValue(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Print_Background&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;no&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;关闭该对象&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #000000;"&gt;         regWrite.Close();&lt;br/&gt;&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br/&gt;&lt;br/&gt;    }&lt;br/&gt;}&lt;/span&gt;&lt;/div&gt;&lt;p&gt;以上结果是恢复成默认值。也可以改为0。&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2475027.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2475027.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/04/28/2474995.html</id><title type="text">Web打印</title><summary type="text">&lt;html&gt;&lt;head&gt; &lt;title&gt;打-印-预-览&lt;/title&gt; &lt;script language="javascript" type="text/javascript"&gt; &lt;!-- //弹窗打印函数 function printPage(id) { var needHTML = document.getElementById(id).innerHTML; //alert(needHTML); var OpenWindow = window.open("print.ht..</summary><published>2012-04-28T05:44:00Z</published><updated>2012-04-28T05:44:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2474995.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2474995.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;打-印-预-览&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;    &lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;language&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;弹窗打印函数&lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; printPage(id) {&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; needHTML &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.getElementById(id).innerHTML;&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;alert(needHTML);&lt;/span&gt;&lt;br/&gt;            &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; OpenWindow &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; window.open(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;print.htm&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;abc&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;height=100, width=150, top=0, left=0,toolbar=no,menubar=no, scrollbars=no, resizable=no, location=no, status=no&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;title&amp;gt;打印&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(needHTML);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.write(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            OpenWindow.document.close();&lt;br/&gt;            OpenWindow.document.location.reload();&lt;br/&gt;            OpenWindow.print();&lt;br/&gt;        } &lt;br/&gt;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;--&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="aidd2008"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="div0"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;            不打印的内容&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="div1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="打印"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="printPage('needPrint')"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="needPrint"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;            需要打印的内容&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;跳出新窗体，打印需要打印的内容。&lt;br /&gt;页眉页脚边距的问题还是很头痛。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2474995.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/04/28/2474995.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/04/25/2469994.html</id><title type="text">web中打印内容（去页眉页脚边距）</title><summary type="text">&lt;html&gt;&lt;head&gt; &lt;title&gt;打-印-预-览&lt;/title&gt; &lt;script type="text/javascript" language="javascript"&gt; var hkey_root, hkey_path, hkey_key hkey_root = "HKEY_CURRENT_USER" hkey_path = "\\software\\Microsoft\\Internet Explorer\\PageSetup\\" //设置网</summary><published>2012-04-25T08:01:00Z</published><updated>2012-04-25T08:01:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/04/25/2469994.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/04/25/2469994.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;打-印-预-览&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; language&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="javascript"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_root, hkey_path, hkey_key&lt;br/&gt;        hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;HKEY_CURRENT_USER&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&lt;br/&gt;        hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;\\software\\Microsoft\\Internet Explorer\\PageSetup\\&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;设置网页打印的页眉页脚边距为空 &lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; pagesetup_null() {&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br/&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; RegWsh &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ActiveXObject(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;WScript.Shell&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;header&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;""&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;footer&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;""&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_left&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_right&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_top&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_bottom&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            } &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (e) { }&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;设置网页打印的页眉页脚边距为默认值 &lt;/span&gt;&lt;br/&gt;        &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; pagesetup_default() {&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br/&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; RegWsh &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ActiveXObject(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;WScript.Shell&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;header&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;amp;w&amp;amp;b页码，&amp;amp;p/&amp;amp;P&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;footer&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;amp;u&amp;amp;b&amp;amp;d&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_left&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.750000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_right&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.750000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_top&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.750000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;                hkey_key &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;margin_bottom&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;                RegWsh.RegWrite(hkey_root &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_path &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; hkey_key, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0.750000&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            } &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (e) { }&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; setdivhidden(id) {&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;把指定id以外的层统统隐藏 &lt;/span&gt;&lt;br/&gt;            &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; divs &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.getElementsByTagName(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;DIV&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; divs.length; i&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;++&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (divs.item(i).id &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; id)&lt;br/&gt;                    divs.item(i).style.display &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;none&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; setdivvisible(id) {&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;把指定id以外的层统统显示 &lt;/span&gt;&lt;br/&gt;            &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; divs &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; document.getElementsByTagName(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;DIV&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;            &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;for&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;0&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; i &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; divs.length; i&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;++&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;) {&lt;br/&gt;                &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; (divs.item(i).id &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;!=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; id)&lt;br/&gt;                    divs.item(i).style.display &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;block&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; printpr() &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;预览函数 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        {&lt;br/&gt;            pagesetup_null(); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;预览之前去掉页眉页脚边距&lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            setdivhidden(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;div1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印之前先隐藏不想打印输出的元素&lt;/span&gt;&lt;br/&gt;            &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; WebBrowser &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"&amp;gt;&amp;lt;/OBJECT&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;            document.body.insertAdjacentHTML(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;beforeEnd&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, WebBrowser); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;在body标签内加入html（WebBrowser activeX控件） &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            WebBrowser1.ExecWB(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;7&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印预览 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            WebBrowser1.outerHTML &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;""&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;从代码中清除插入的html代码 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            pagesetup_default(); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;预览结束后页眉页脚恢复默认值 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            setdivvisible(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;div1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;预览结束后显示按钮 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        }&lt;br/&gt;        &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; print() &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印函数 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        {&lt;br/&gt;            pagesetup_null(); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印之前去掉页眉，页脚 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            setdivhidden(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;div1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印之前先隐藏不想打印输出的元素 &lt;/span&gt;&lt;br/&gt;            &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; WebBrowser &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;lt;OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"&amp;gt;&amp;lt;/OBJECT&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;            document.body.insertAdjacentHTML(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;beforeEnd&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, WebBrowser); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;在body标签内加入html（WebBrowser activeX控件） &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            WebBrowser1.ExecWB(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;6&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            WebBrowser1.outerHTML &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;""&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;; &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;从代码中清除插入的html代码 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            pagesetup_default(); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印结束后页眉页脚恢复默认值 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            setdivvisible(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;div1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;); &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;打印结束后显示按钮 &lt;/span&gt;&lt;br/&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        } &lt;br/&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;form &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="form1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="div0"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="btnClose"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Javascript:window.opener=null;window.close()"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br/&gt;            value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="关闭"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="打印预览"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="printpr()"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;input &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="button"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; onclick&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="print()"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="打印"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="div1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;        文字。。。&lt;br/&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;img &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;alt&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;='&amp;lt;%=this.rooDir+this.Request.QueryString["URL"] &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;%&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;' /&amp;gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;form&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;缺点：&lt;br /&gt;有安全性提示，需要手动允许运行或者修改浏览器安全性设置。&amp;nbsp;&lt;br /&gt;页眉页脚边距有时候不灵光，需要多试几次（不知道是不是我电脑的问题）。&lt;/p&gt;&lt;p&gt;页眉页脚边距的默认值可以通过在注册表里删除一个项footer，关闭注册表，随便新打开一个浏览器页面，打印预览，再打开注册表来查看各个项的默认值。&lt;br /&gt;比如删除HKEY_CURRENT_USER\software\Microsoft\Internet Explorer\PageSetup\下面的footer项。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2469994.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/04/25/2469994.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/04/08/2438289.html</id><title type="text">快速排序代码</title><summary type="text">using System;using System.Collections.Generic;using System.Text;namespace temp{ public class QuickSort { /// &lt;summary&gt; /// 排序 /// &lt;/summary&gt; /// &lt;param name="numbers"&gt;待排序数组&lt;/param&gt; /// &lt;param name="left"&gt;数组第一个元素索引Index&lt;/param&gt; /// &lt;param na.</summary><published>2012-04-08T15:50:00Z</published><updated>2012-04-08T15:50:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/04/08/2438289.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/04/08/2438289.html"/><content type="html">&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; temp&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; QuickSort 　&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; 　&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 排序&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="numbers"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;待排序数组&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; 　&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="left"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;数组第一个元素索引Index&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="right"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;数组最后一个元素索引Index&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Sort(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;[] numbers,&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; left,&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; right) &lt;br /&gt;        { &lt;br /&gt;            &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;左边索引小于右边，则还未排序完成 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (left &amp;lt; right) &lt;br /&gt;            { &lt;br /&gt;                &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;取中间的元素作为比较基准，小于他的往左边移，大于他的往右边移 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;                &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; middle = numbers[(left + right) / &lt;span style="color: #800080;"&gt;2&lt;/span&gt;]; &lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = left - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;; &lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j = right + &lt;span style="color: #800080;"&gt;1&lt;/span&gt;; &lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;) &lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (numbers[++i] &amp;lt; middle &amp;amp;&amp;amp; i &amp;lt; right)&lt;br /&gt;                    { ;}&lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (numbers[--j] &amp;gt; middle &amp;amp;&amp;amp; j &amp;gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt;)&lt;br /&gt;                    { ;}                     &lt;br /&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (i &amp;gt;= j) &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;                    Swap(numbers,i,j); &lt;br /&gt;                } &lt;br /&gt;                Sort(numbers,left,i - &lt;span style="color: #800080;"&gt;1&lt;/span&gt;); 　&lt;br /&gt;                Sort(numbers,j + &lt;span style="color: #800080;"&gt;1&lt;/span&gt;,right); 　&lt;br /&gt;            } &lt;br /&gt;        } &lt;br /&gt;        &lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; 交换元素值 &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="numbers"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;数组&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="i"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;当前左边索引&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt; &lt;span style="color: #808080;"&gt;&amp;lt;param name="j"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;当前右边索引&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Swap(&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;[] numbers,&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i,&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; j) 　&lt;br /&gt;        { &lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; number = numbers[i]; 　&lt;br /&gt;            numbers[i] = numbers[j]; &lt;br /&gt;            numbers[j] = number;&lt;br /&gt;        } 　&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Main() 　&lt;br /&gt;        { 　&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;[] arr = { &lt;span style="color: #800080;"&gt;6&lt;/span&gt;,&lt;span style="color: #800080;"&gt;5&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;span style="color: #800080;"&gt;9&lt;/span&gt;,&lt;span style="color: #800080;"&gt;7&lt;/span&gt;,&lt;span style="color: #800080;"&gt;4&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;,-&lt;span style="color: #800080;"&gt;4&lt;/span&gt;,-&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;span style="color: #800080;"&gt;3&lt;/span&gt;,&lt;span style="color: #800080;"&gt;2&lt;/span&gt;,&lt;span style="color: #800080;"&gt;0&lt;/span&gt;,&lt;span style="color: #800080;"&gt;9&lt;/span&gt; }; 　&lt;br /&gt;            Sort(arr, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, arr.Length-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;); 　&lt;br /&gt;            StringBuilder temp = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; StringBuilder(); &lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = &lt;span style="color: #800080;"&gt;0&lt;/span&gt;; i &amp;lt;= arr.Length-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;; i++) 　&lt;br /&gt;            { 　&lt;br /&gt;                temp.Append(arr[i].ToString()+&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;,&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;); &lt;br /&gt;            } 　&lt;br /&gt;            Console.WriteLine(temp.ToString().Substring(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;, temp.Length-&lt;span style="color: #800080;"&gt;1&lt;/span&gt;)); 　&lt;br /&gt;            Console.ReadLine(); 　&lt;br /&gt;        } 　&lt;br /&gt;    } 　&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2438289.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/04/08/2438289.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425336.html</id><title type="text">C#中的四舍五入方法、C#中获取时间戳（UnixTime）的方法</title><summary type="text">如果问C#程序员，四舍五入方法是怎么写的。很多人上来就会轻而易举的写上一个Math.Round()方法。但却不知，其中可悲的奥妙之处！试写出下列计算结果： Math.Round(0.5) Math.Round(1.5) 肯定有一部分人会写，计算结果为1和2。 那就大错特错了！事实证明，这两个表达式的结果分别为0和2！这就是很多程序的BUG所在。 细心的程序员们可以看一下MSDN中对Math.Round(Decimal)方法的描述，其中对于返回值的描述如下：返回值类型：System.Decimal最接近参数d的整数。如果d的小数部分正好处于两个整数中间，其中一个整数为偶数，另一个整...</summary><published>2012-03-30T07:02:00Z</published><updated>2012-03-30T07:02:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425336.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425336.html"/><content type="html">&lt;p&gt;如果问C#程序员，四舍五入方法是怎么写的。很多人上来就会轻而易举的写上一个&lt;span style="color: #33cccc;"&gt;Math&lt;/span&gt;.Round()方法。但却不知，其中可悲的奥妙之处！&lt;/p&gt;&lt;p&gt;试写出下列计算结果：&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;span style="background-color: #fff; color: #33cccc;"&gt;Math&lt;/span&gt;&lt;span style="background-color: #fff; color: #000;"&gt;.Round(0.5)&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #fff; color: #33cccc;"&gt;Math&lt;/span&gt;&lt;span style="background-color: #fff; color: #000;"&gt;.Round(1.5)&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;肯定有一部分人会写，计算结果为&lt;span style="color: #ff0000;"&gt;1&lt;/span&gt;和&lt;span style="color: #ff0000;"&gt;2&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;那就大错特错了！事实证明，这两个表达式的结果分别为&lt;span style="color: #ff0000;"&gt;0&lt;/span&gt;和&lt;span style="color: #ff0000;"&gt;2&lt;/span&gt;！这就是很多程序的BUG所在。&lt;/p&gt;&lt;p&gt;细心的程序员们可以看一下MSDN中对&lt;span style="color: #33cccc;"&gt;Math&lt;/span&gt;.Round(Decimal)方法的描述，其中对于返回值的描述如下：&lt;/p&gt;&lt;div style="border: #0a0af6 2px solid;"&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;返回值&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;类型：System.Decimal&lt;br /&gt;最接近参数&amp;nbsp;d&amp;nbsp;的整数。&lt;span style="color: #ffcc00;"&gt;如果&amp;nbsp;d&amp;nbsp;的小数部分正好处于两个整数中间，其中一个整数为偶数，另一个整数为奇数，则返回偶数。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;这&lt;span style="color: #000000;"&gt;就已经充分解释了，为什么上面的两个表达式的返回值分别为0和2。也证明了简单的Math.Round(Decimal)方法无法实现四舍五入的功能！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;.NET中的Math.Round()，还提供另外一些重载方法，其中一个是Math.Round(Decimal, MidpointRounding)方法，通过这个方法，可以实现对十进制小数的四舍五入。方法如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Math.Round(Decimal, MidpointRounding.AwayFromZero)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;大功告成！让我们的程序告别BUG！&lt;/p&gt;&lt;p&gt;------------------------------------------------------------------------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;.Net中没有封装获取时间戳（UnixTime，相对于1970年1月1日凌晨的毫秒数）的方法。因此本人写了如下方法实现。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; System.DateTime(&lt;span style="color: #800080;"&gt;1970&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;1&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;));&lt;br /&gt;&lt;br /&gt;DateTime nowTime = DateTime.Now;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;long&lt;/span&gt; unixTime = (&lt;span style="color: #0000ff;"&gt;long&lt;/span&gt;)Math.Round((nowTime - startTime).TotalMilliseconds, MidpointRounding.AwayFromZero);&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2425336.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425336.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425051.html</id><title type="text">C#（Winform）实现条码打印</title><summary type="text">电脑上安装了39条码字体：C39HrP24DlTt先看下控件界面截图转换条码字体 private void button1_Click(object sender, EventArgs e) { Bitmap b1 = new Bitmap(Convert.ToInt32(textBox2.Text), Convert.ToInt32 ( textBox3.Text)); Graphics g1 = Graphics.FromImage(b1); Font font1 = new Font("C39H...</summary><published>2012-03-30T04:58:00Z</published><updated>2012-03-30T04:58:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425051.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425051.html"/><content type="html">&lt;p&gt;电脑上安装了39条码字体：C39HrP24DlTt&lt;/p&gt;&lt;p&gt;先看下控件界面截图&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012033012305123.jpg" alt="" /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('05df460d-608f-4bf1-a841-08d3c0b95525')"&gt;&lt;div id="cnblogs_code_open_05df460d-608f-4bf1-a841-08d3c0b95525" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; button1_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Bitmap b1 = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Bitmap(Convert.ToInt32(textBox2.Text), Convert.ToInt32 ( textBox3.Text));&lt;br /&gt;            Graphics g1 = Graphics.FromImage(b1);&lt;br /&gt;            Font font1 = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Font(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;C39HrP24DlTt&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;, Convert.ToInt32(textBox4.Text));&lt;br /&gt;            g1.DrawString(textBox1.Text.ToString(), font1, Brushes.Black, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; PointF(Convert.ToInt32(textBox5.Text), Convert.ToInt32(textBox6.Text)));&lt;br /&gt;            pictureBox1.BackgroundImage = b1;&lt;br /&gt;            pictureBox1.BackgroundImageLayout = ImageLayout.Zoom;&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;pageSetupDialog1、printDialog1、printPreviewDialog1的document属性都选择为printDocument1&lt;/p&gt;&lt;p&gt;给printDocument1添加一个PrintPage事件printDocument1_PrintPage&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('874f4438-b4d2-45ce-b5de-69e52d0d6b70')"&gt;&lt;div id="cnblogs_code_open_874f4438-b4d2-45ce-b5de-69e52d0d6b70" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; button2_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.pageSetupDialog1.ShowDialog(); &lt;br /&gt;&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('20ad29ce-0805-4210-aeb4-96bc969b254f')"&gt;&lt;div id="cnblogs_code_open_20ad29ce-0805-4210-aeb4-96bc969b254f" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; button3_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.printPreviewDialog1.ShowDialog(); &lt;br /&gt;&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('72fd38f6-9ad1-460b-938f-505fc4eec462')"&gt;&lt;div id="cnblogs_code_open_72fd38f6-9ad1-460b-938f-505fc4eec462" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; button4_Click(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.printDialog1.ShowDialog() == DialogResult.OK)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.printDocument1.Print();&lt;br /&gt;            }&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('0696c1cd-e14a-40e1-8696-7c38fe437268')"&gt;&lt;div id="cnblogs_code_open_0696c1cd-e14a-40e1-8696-7c38fe437268" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; printDocument1_PrintPage(&lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; sender, System.Drawing.Printing.PrintPageEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;打印内容 为 整个Form&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Image myFormImage;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;myFormImage = new Bitmap(this.Width, this.Height);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;Graphics g = Graphics.FromImage(myFormImage);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;g.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;e.Graphics.DrawImage(myFormImage, 0, 0);&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;打印内容 为 局部的 this.groupBox1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            Bitmap _NewBitmap = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Bitmap(groupBox1.Width, groupBox1.Height);&lt;br /&gt;            groupBox1.DrawToBitmap(_NewBitmap, &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Rectangle(&lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, _NewBitmap.Width, _NewBitmap.Height));&lt;br /&gt;            e.Graphics.DrawImage(_NewBitmap, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, &lt;span style="color: #800080;"&gt;0&lt;/span&gt;, _NewBitmap.Width, _NewBitmap.Height); &lt;br /&gt;&lt;br /&gt;            &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;打印内容 为 自定义文本内容 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: #008000;"&gt;/*&lt;/span&gt;&lt;span style="color: #008000;"&gt;Font font = new Font("宋体", 12);&lt;br /&gt;            Brush bru = Brushes.Blue; &lt;br /&gt;            for (int i = 1; i &amp;lt;= 5; i++)&lt;br /&gt;            {&lt;br /&gt;                e.Graphics.DrawString("Hello world ", font, bru, i*20, i*20);&lt;br /&gt;            }&lt;/span&gt;&lt;span style="color: #008000;"&gt;*/&lt;/span&gt;&lt;br /&gt;        }&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('a4a04c12-eba7-4531-8058-edf2a0822412')"&gt;&lt;div id="cnblogs_code_open_a4a04c12-eba7-4531-8058-edf2a0822412" class="cnblogs_code_hide"&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; Form1()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.printDocument1.OriginAtMargins = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;启用页边距&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;              &lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;.pageSetupDialog1.EnableMetric = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;以毫米为单位&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;         }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;没有做异常处理，比如没有启动打印服务的情况下，程序会不友好地报错。&lt;/p&gt;&lt;p&gt;转成39条码字体，支持的字符有&lt;br /&gt;A-Z，26个字母，不分大小写，都表示成大写；&lt;br /&gt;0-9，10个数字；&lt;br /&gt;+-*/%$.，7个符号；&lt;br /&gt;space，空格。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012033013064689.jpg" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012033013085880.jpg" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2425051.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/03/30/2425051.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/01/15/2323093.html</id><title type="text">不注册使用 .NET Reactor</title><summary type="text">.NET Reactor 是个好东西，只不过这家伙升级的速度非常快，加密算法经常变化，而且越来越厉害，实在懒得 "跟" 了。这类工具通常在 "壳" 上做了大量的工作，诸如什么 JIT Hook、native loader 之类的。而我通常只使用它的混淆功能，所以用另外一种方法 "绕" 过去，即便不注册，也可以使用最新版本。 首先，我们准备一个简单一点的 DLL，用于分析 .NET Reactor 混淆后的限制。test.dllnamespace MyLibrary{ public class MyClass { public void</summary><published>2012-01-15T14:00:00Z</published><updated>2012-01-15T14:00:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2323093.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2323093.html"/><content type="html">&lt;p&gt;.NET Reactor 是个好东西，只不过这家伙升级的速度非常快，加密算法经常变化，而且越来越厉害，实在懒得 "跟" 了。这类工具通常在 "壳" 上做了大量的工作，诸如什么 JIT Hook、native loader 之类的。而我通常只使用它的混淆功能，所以用另外一种方法 "绕" 过去，即便不注册，也可以使用最新版本。&lt;/p&gt;&lt;p&gt;首先，我们准备一个简单一点的 DLL，用于分析 .NET Reactor 混淆后的限制。test.dll&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; MyLibrary&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; MyClass&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Test()&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;MyClass.Test...&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; MyLibrary.Test&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; MyClass2&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; TestXXX()&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;MyClass2.Test...&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;我们使用 .NET Reactor 对该 DLL 进行混淆后，调用时会出现如下提示。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012011521504969.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;OK! 接下来，我们把这个东西给去掉。&lt;/p&gt;&lt;p&gt;打开 Reflector，我们会发现每个 .cctor 中都增加了如下代码 (可能不同加密结果名称有所不同)。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;specialname&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;rtspecialname&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; .cctor() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.maxstack&lt;/span&gt; &lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0000:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; &amp;lt;PrivateImplementationDetails&amp;gt;{B4838DC1-AC79-43d1-949F-41B518B904A8}::CS$&lt;span style="color: #800080;"&gt;0&lt;/span&gt;$&lt;span style="color: #800080;"&gt;0006&lt;/span&gt;()&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0005:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ret&lt;/span&gt; &lt;br /&gt;}&lt;/div&gt;&lt;p&gt;很显然，&amp;lt;PrivateImplementationDetails&amp;gt;{B4838DC1-AC79-43d1-949F-41B518B904A8} 类型是 .NET Reactor 注入进去的，顺藤摸瓜进入 CS$0$0006()。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; CS$&lt;span style="color: #800080;"&gt;0&lt;/span&gt;$&lt;span style="color: #800080;"&gt;0006&lt;/span&gt;() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.maxstack&lt;/span&gt; &lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0000:&lt;/span&gt; br L_0007&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0005:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0006:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldc.i4.0&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0007:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldsfld&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; &amp;lt;PrivateImplementationDetails&amp;gt;{B4838DC1-AC79-43d1-949F-41B518B904A8}::CS$&lt;span style="color: #800080;"&gt;0&lt;/span&gt;$&lt;span style="color: #800080;"&gt;0004&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000c:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;brtrue.s&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000e:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldc.i4.1&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000f:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;stsfld&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; &amp;lt;PrivateImplementationDetails&amp;gt;{B4838DC1-AC79-43d1-949F-41B518B904A8}::CS$&lt;span style="color: #800080;"&gt;0&lt;/span&gt;$&lt;span style="color: #800080;"&gt;0004&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0014:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldstr&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;This assembly is protected by an unregistered version of \".NET Reactor\". Copyright @ Eziriz, www.eziriz.com&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0019:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldstr&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Lock System&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_001e:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt; valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult &lt;br /&gt;    [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0023:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0024:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;leave&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0029:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_002a:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;leave&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_002f:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ret&lt;/span&gt; &lt;br /&gt;    .try L_0014 to L_0029 catch &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; handler L_0029 to L_002f&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;那行字符串符合我们通缉目标的特征，接下来怎么做？当然是把这个方法内部代码删除掉了。(如果你愿意，也可以将所有 .cctor 中的那行代码给批量替换掉)&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #ff00ff;"&gt;d:&lt;/span&gt;\temp&amp;gt; ildasm test.dll /out=test.il&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Protected&lt;/span&gt; module -- cannot disassemble&lt;/div&gt;&lt;p&gt;不好意思，Suppress ILDASM 是最基本的手段。我们换一个 ILDASM.exe (可从网上找该修改版本，剔除了 SuppressIldasmAttribute 特性限制)。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #ff00ff;"&gt;d:&lt;/span&gt;\temp&amp;gt; &lt;span style="color: #ff00ff;"&gt;d:&lt;/span&gt;\program\tools\ILDasm\ILDasm.exe test.dll /out=test.il&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; WARNING: Created Win32 resource file test.res&lt;/span&gt;&lt;/div&gt;&lt;p&gt;打开编辑器，搜索 CS$0$0006，然后将该方法体删除，只保留 ret。(如果有 publickey，注意删除)&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; CS$&lt;span style="color: #800080;"&gt;0&lt;/span&gt;$&lt;span style="color: #800080;"&gt;0006&lt;/span&gt;() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.maxstack&lt;/span&gt; &lt;span style="color: #800080;"&gt;8&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;ret&lt;/span&gt; &lt;br /&gt;}&lt;/div&gt;&lt;p&gt;保存，重新编译该 IL 代码 (如果有 Public Key，注意使用 /key=...)。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #ff00ff;"&gt;d:&lt;/span&gt;\temp&amp;gt; ilasm /dll test.il /out=test2.dll&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;Emitting fields &lt;span style="color: #0000ff;"&gt;and&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;methods:&lt;/span&gt;&lt;br /&gt;Global  &lt;span style="color: #ff00ff;"&gt;Methods:&lt;/span&gt; &lt;span style="color: #800080;"&gt;1&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;1&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;Fields:&lt;/span&gt; &lt;span style="color: #800080;"&gt;4&lt;/span&gt;;      &lt;span style="color: #ff00ff;"&gt;Methods:&lt;/span&gt; &lt;span style="color: #800080;"&gt;8&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;2&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;Methods:&lt;/span&gt; &lt;span style="color: #800080;"&gt;3&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;3&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;Methods:&lt;/span&gt; &lt;span style="color: #800080;"&gt;3&lt;/span&gt;;&lt;br /&gt;Resolving local member &lt;span style="color: #ff00ff;"&gt;refs:&lt;/span&gt; &lt;span style="color: #800080;"&gt;9&lt;/span&gt; -&amp;gt; &lt;span style="color: #800080;"&gt;9&lt;/span&gt; defs, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; refs, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; unresolved&lt;br /&gt;&lt;br /&gt;Emitting events &lt;span style="color: #0000ff;"&gt;and&lt;/span&gt; &lt;span style="color: #ff00ff;"&gt;properties:&lt;/span&gt;&lt;br /&gt;Global&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;Class&lt;/span&gt; &lt;span style="color: #800080;"&gt;3&lt;/span&gt;&lt;br /&gt;Resolving local member &lt;span style="color: #ff00ff;"&gt;refs:&lt;/span&gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt; -&amp;gt; &lt;span style="color: #800080;"&gt;0&lt;/span&gt; defs, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; refs, &lt;span style="color: #800080;"&gt;0&lt;/span&gt; unresolved&lt;br /&gt;Writing PE file&lt;br /&gt;Signing file with strong name&lt;br /&gt;Operation completed successfully&lt;/div&gt;&lt;p&gt;我们试试这个 test2.dll，那个讨厌的对话框已经消失了，不见了&amp;hellip;&amp;hellip;&lt;/p&gt;&lt;p&gt;结束了？等等&amp;hellip;&amp;hellip;&lt;/p&gt;&lt;p&gt;我们给 MyClass2 添加一个私有方法。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; MyLibrary.Test&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; MyClass2&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; TestXXX()&lt;br /&gt;        {&lt;br /&gt;            Test2();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Test2()&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;MyClass2 Private Test...&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;用 .NET Reactor 混淆后，可能你会发现上面写的那个 &amp;lt;PrivateImplementationDetails&amp;gt;{B4838DC1-AC79-43d1-949F-41B518B904A8} 不见了，.cctor 里面也没有注入额外的代码。所不同的是出现了一个名字古里古怪的家伙，就像下面这样。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;.namespace&lt;/span&gt; AKEtMeX)o&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.class&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;auto&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ansi&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;beforefieldinit&lt;/span&gt; AAxshPnXX&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;extends&lt;/span&gt; [mscorlib]System.Object&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;specialname&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;rtspecialname&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; .cctor() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static pinvokeimpl(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;nr_native_lib.dll&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; as &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;nr_nli&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ansi&lt;/span&gt; winapi) &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; AAxshPnXX(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; marshal(bstr), &lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt; preservesig&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static pinvokeimpl(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Learn.Library_nat.dll&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; as &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;nr_nli&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ansi&lt;/span&gt; winapi) &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; ABy2LSAxY(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; marshal(bstr), &lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt; preservesig&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static pinvokeimpl(&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Learn.Library_nat.dll&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; as &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;nr_startup&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ansi&lt;/span&gt; winapi) &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; ACiuCWtbY(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; marshal(bstr)) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt; preservesig&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; ADxAfYIbq() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AER(Ib2WO(&lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AFxcDdVK8(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; AGEdqxnDQ(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AHrgRGDAh() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt; AI0mY6Kel() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; AJM2IfMnl() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AKEtMeX)o() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; ALJw(16JK() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.field&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; AAxshPnXX&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.field&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; ABy2LSAxY&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.field&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; ACiuCWtbY&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;.field&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; ADxAfYIbq&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;我们翻看其内部方法，很显然下面这个就是我们要修改的目标。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; assembly &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; AHrgRGDAh() &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.maxstack&lt;/span&gt; &lt;span style="color: #800080;"&gt;4&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0000:&lt;/span&gt; br L_0007&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0005:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0006:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldc.i4.0&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0007:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldsfld&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; AKEtMeX)o.AAxshPnXX::AAxshPnXX&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000c:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;brtrue.s&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000e:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldc.i4.1&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_000f:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;stsfld&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; AKEtMeX)o.AAxshPnXX::AAxshPnXX&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0014:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldstr&lt;/span&gt; &lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0019:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ldstr&lt;/span&gt; &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Lock System&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_001e:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt; valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult &lt;br /&gt;    [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0023:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0024:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;leave&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_0029:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_002a:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;leave&lt;/span&gt; L_002f&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;L_002f:&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ret&lt;/span&gt; &lt;br /&gt;    .try L_0014 to L_0029 catch &lt;span style="color: #0000ff;"&gt;object&lt;/span&gt; handler L_0029 to L_002f&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;至于后面怎么做，无需我多言了。(其实在这个例子中，根本没有调用该方法，也就是说不会出现弹出框&amp;hellip;&amp;hellip;）&lt;/p&gt;&lt;p&gt;-------------------------------&lt;/p&gt;&lt;p&gt;附：如果你希望加密 EXE，那么还是老老实实进行脱壳，然后修复，再然后&amp;hellip;&amp;hellip;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2323093.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2323093.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322705.html</id><title type="text">修改ildasm.exe</title><summary type="text">SuppressIldasmAttribute 是最简单也是最常用的 "反反编译" 手段，它的作用就是"提醒" ildasm.exe 不要工作。但作为一个重要的反编译工具，我们当然不希望 ILDasm.exe 这么"聪明"。没办法，还是得自己动手，给ildasm.exe 当头一棒，打傻再说。 首先拿出 CFF Explorer 看看 ildasm.exe 的基本信息。 晕！居然是 Win32 Native Code，看来试图修改 IL 的老办法是没戏了。怎么办呢？既然是 native code，也就是说它没有办法用我们所熟悉的反射手段</summary><published>2012-01-14T21:16:00Z</published><updated>2012-01-14T21:16:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322705.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322705.html"/><content type="html">&lt;p&gt;SuppressIldasmAttribute 是最简单也是最常用的 "反反编译" 手段，它的作用就是"提醒" ildasm.exe 不要工作。但作为一个重要的反编译工具，我们当然不希望 ILDasm.exe 这么"聪明"。没办法，还是得自己动手，给ildasm.exe 当头一棒，打傻再说。&lt;/p&gt;&lt;p&gt;首先拿出 CFF Explorer 看看 ildasm.exe 的基本信息。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012011505064994.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;晕！居然是 Win32 Native Code，看来试图修改 IL 的老办法是没戏了。怎么办呢？既然是 native code，也就是说它没有办法用我们所熟悉的反射手段来检查 SuppressIldasmAttribute 特性。要得到结果，自然只能通过"SuppressIldasmAttribute" 这个字符串来检索该 PE 的资源了。如果将这个字符串改变一下，让它无法匹配，不是就可以绕过去了吗？呵呵~~~~ 试试看。这次要用的工具是 &lt;strong&gt;WinHex&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012011505101936.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;将字符串改成任意等长度字符，保存到另外的文件中。再拿一个添加了 SuppressIldasmAttribute 特性的程序集进行测试，结果证明成功打傻那小子~~~~~~~ &lt;img src="http://www.rainsts.net/styles/default/images/smilies/icon_lol.gif" alt="[lol]" border="0" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;修改前&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012011505114091.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;修改后&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/45194/2012011505121886.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2322705.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322705.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322678.html</id><title type="text">简单操作IL文件</title><summary type="text">IL文件修改入门篇================================== Object: 掌握简单的IL文件处理知识 能够熟练运用ildasm,ilasm工具 ================================== 1.编写简单的hello.cs2.编译源代码csc hello.cs3.反编译hello.exe,命令如下： ildasm hello.exe /out=hello.il4.打开hello.il文件，找到下面语句 IL_0000: ldstr "Hello World!" 修改为 IL_0000: ldstr "Hello </summary><published>2012-01-14T20:01:00Z</published><updated>2012-01-14T20:01:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322678.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322678.html"/><content type="html">&lt;p&gt;&lt;strong&gt;IL文件修改入门篇&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;================================== &lt;br /&gt;Object: &lt;br /&gt;&amp;nbsp;&amp;nbsp; 掌握简单的IL文件处理知识 &lt;br /&gt;&amp;nbsp;&amp;nbsp; 能够熟练运用ildasm,ilasm工具 &lt;br /&gt;================================== &lt;br /&gt;1.编写简单的hello.cs&lt;/p&gt;&lt;p&gt;2.编译源代码&lt;br /&gt;csc hello.cs&lt;/p&gt;&lt;p&gt;3.反编译hello.exe,命令如下： &lt;br /&gt;ildasm hello.exe /out=hello.il&lt;/p&gt;&lt;p&gt;4.打开hello.il文件，找到下面语句 &lt;br /&gt;IL_0000:&amp;nbsp; ldstr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Hello World!" &lt;br /&gt;修改为 &lt;br /&gt;IL_0000:&amp;nbsp; ldstr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Hello World! A Cracked Version." &lt;br /&gt;保存文件。&lt;/p&gt;&lt;p&gt;5.编译il文件 &lt;br /&gt;ilasm /res:hello.res hello.il /out:hellocracked.exe &lt;br /&gt;--------------------------------------------------------&lt;/p&gt;&lt;p&gt;Microsoft (R) .NET Framework IL Assembler.&amp;nbsp; Version 1.1.4322.573 &lt;br /&gt;Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. &lt;br /&gt;Assembling 'hello.il' , no listing file, to EXE --&amp;gt; 'hellocracked.exe' &lt;br /&gt;Source file is ANSI&lt;/p&gt;&lt;p&gt;Assembled method HelloWorld::Main &lt;br /&gt;Assembled method HelloWorld::.ctor &lt;br /&gt;Creating PE file&lt;/p&gt;&lt;p&gt;Emitting members: &lt;br /&gt;Global &lt;br /&gt;Class 1 Methods: 2; &lt;br /&gt;Writing PE file &lt;br /&gt;Operation completed successfully&lt;/p&gt;&lt;p&gt;----------------------------------------------------------- &lt;br /&gt;成功编译。&lt;/p&gt;&lt;p&gt;5.运行hellocracked.exe,结果如下： &lt;br /&gt;Hello World! A Cracked Version.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;OK。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;IL文件修改提高篇&lt;/strong&gt; &lt;br /&gt;================================== &lt;br /&gt;Object: &lt;br /&gt;&amp;nbsp;&amp;nbsp; 熟悉强名字签名之后的代码处理 &lt;br /&gt;================================== &lt;br /&gt;1.修改hello.cs文件，加入强名字属性代码 &lt;br /&gt;[assembly:AssemblyKeyFileAttribute("key.snk")] &lt;br /&gt;[assembly:AssemblyDelaySignAttribute(false)]&lt;/p&gt;&lt;p&gt;2.生成强名字对，这就是一个典型的RSA应用 &lt;br /&gt;sn -k key.snk&lt;/p&gt;&lt;p&gt;3.编译hello.cs文件 &lt;br /&gt;csc hello.cs&lt;/p&gt;&lt;p&gt;4.反编译hello.exe,命令如下： &lt;br /&gt;ildasm hello.exe /out=hello.il&lt;/p&gt;&lt;p&gt;5.打开hello.il文件，找到下面语句 &lt;br /&gt;IL_0000:&amp;nbsp; ldstr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Hello World!" &lt;br /&gt;修改为 &lt;br /&gt;IL_0000:&amp;nbsp; ldstr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Hello World! A Cracked Version." &lt;br /&gt;保存文件。&lt;/p&gt;&lt;p&gt;5.编译il文件 &lt;br /&gt;ilasm /res:hello.res hello.il /out:hellocracked.exe &lt;br /&gt;--------------------------------------------------------&lt;/p&gt;&lt;p&gt;Microsoft (R) .NET Framework IL Assembler.&amp;nbsp; Version 1.1.4322.573 &lt;br /&gt;Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. &lt;br /&gt;Assembling 'hello.il' , no listing file, to EXE --&amp;gt; 'hellocracked.exe' &lt;br /&gt;Source file is ANSI&lt;/p&gt;&lt;p&gt;Assembled method HelloWorld::Main &lt;br /&gt;Assembled method HelloWorld::.ctor &lt;br /&gt;Creating PE file&lt;/p&gt;&lt;p&gt;Emitting members: &lt;br /&gt;Global &lt;br /&gt;Class 1 Methods: 2; &lt;br /&gt;Writing PE file &lt;br /&gt;Operation completed successfully&lt;/p&gt;&lt;p&gt;----------------------------------------------------------- &lt;br /&gt;成功编译。&lt;/p&gt;&lt;p&gt;5.运行hellocracked.exe,结果如下：&lt;/p&gt;&lt;p&gt;Unhandled Exception: System.IO.FileLoadException: Strong name validation failed &lt;br /&gt;for assembly 'hellocracked.exe'. &lt;br /&gt;File name: "hellocracked.exe"&lt;/p&gt;&lt;p&gt;出现错误，原因是因为签名的代码被修改了，这是在破解时通常会遇到的，下面来介绍如何纠正该错误。&lt;/p&gt;&lt;p&gt;[方法A] &lt;br /&gt;6.1.1、重新生成exe文件 &lt;br /&gt;ilasm /res:hello.res hello.il /out:hellocracked_resign.exe&lt;/p&gt;&lt;p&gt;6.1.2、因为我们有RSA keypair,所以可以重新签名程序，但是在破解时，是不知道签名的RSA keypair的，而且根据RSA算法，破解的可能性几乎不可能的。 &lt;br /&gt;sn -R hellocracked_resign.exe key.snk &lt;br /&gt;----------------------------------------------------------- &lt;br /&gt;Microsoft (R) .NET Framework 强名称实用工具版本 1.1.4322.573 &lt;br /&gt;Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.&lt;/p&gt;&lt;p&gt;成功地对程序集&amp;ldquo;hellocracked_resign.exe&amp;rdquo;进行了重新签名 &lt;br /&gt;----------------------------------------------------------- &lt;br /&gt;6.1.3、重新运行hellocracked_resign.exe，OK &lt;br /&gt;Hello World! A Cracked Version.&lt;/p&gt;&lt;p&gt;[方法B] &lt;br /&gt;6.2.1、删除IL文件中的如下内容，保存文件 &lt;br /&gt;.publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00&amp;nbsp;&amp;nbsp; // .$.............. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00&amp;nbsp;&amp;nbsp; // .$..RSA1........ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3B B2 D0 F9 DA 7E 55 B2 50 40 6B CF EB 20 F6 67&amp;nbsp;&amp;nbsp; // ;....~U.P@k.. .g &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; E7 D6 AF 65 32 4F 6D 21 5D 91 53 0B 04 C7 E2 15&amp;nbsp;&amp;nbsp; // ...e2Om!].S..... &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; F0 6A EE 38 F8 74 DB 22 34 F9 A1 B5 16 C1 04 66&amp;nbsp;&amp;nbsp; // .j.8.t."4......f &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B7 0B A8 36 49 9E 8A 71 E1 D1 26 AB A2 78 4E 3A&amp;nbsp;&amp;nbsp; // ...6I..q..&amp;amp;..xN: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8B 71 8C 7F 4D 54 22 28 5F 1F 8D DE 6C 96 EC 22&amp;nbsp;&amp;nbsp; // .q..MT"(_...l.." &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 34 8A 35 3F 95 0A F4 F4 7F B7 8C F5 5D F4 CB 54&amp;nbsp;&amp;nbsp; // 4.5?........]..T &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 92 94 DD 5E D5 0D 20 12 7F B1 9B 15 7F 0E FB 2A&amp;nbsp;&amp;nbsp; // ...^.. ........* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 76 5F 45 3D 20 2C E2 6D FE 55 72 30 49 76 28 FE ) // v_E= ,.m.Ur0Iv(.&lt;/p&gt;&lt;p&gt;6.2.2 重新生成exe文件 &lt;br /&gt;ilasm /res:hello.res hello.il /out:hellocracked_nosign.exe&lt;/p&gt;&lt;p&gt;6.2.3 重新运行hellocracked_nosign.exe，OK &lt;br /&gt;Hello World! A Cracked Version. &lt;br /&gt;因为删除了签名信息，所以代码仍然可以正常执行，就这是破解时通常所用的方法。&lt;/p&gt;&lt;p&gt;如果你能够看懂IL代码，基本上就可以做你想做的任何修改了。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2322678.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322678.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322672.html</id><title type="text">MSIL条件跳转（简单注释）</title><summary type="text">c# code：using System;public class aidd2008{ public static void Main(String[] argv) { int x = 10; int y = 6; if (x &gt; y) { Console.WriteLine(x); } else { Console.WriteLine(y); } Console.Read(); } } MSIL code...</summary><published>2012-01-14T16:17:00Z</published><updated>2012-01-14T16:17:00Z</updated><author><name>张银</name><uri>http://www.cnblogs.com/aidd2008/</uri></author><link rel="alternate" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322672.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322672.html"/><content type="html">&lt;p&gt;c# code：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; aidd2008&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; Main(String[] argv)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; x = &lt;span style="color: #800080;"&gt;10&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; y = &lt;span style="color: #800080;"&gt;6&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (x &amp;gt; y)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(x);&lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(y);&lt;br /&gt;        }&lt;br /&gt;        Console.Read();&lt;br /&gt;    }  &lt;br /&gt;} &lt;/div&gt;&lt;p&gt;MSIL code：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; =============== CLASS MEMBERS DECLARATION ===================&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;.class&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;auto&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;ansi&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;beforefieldinit&lt;/span&gt; aidd2008&lt;br /&gt;       &lt;span style="color: #0000ff;"&gt;extends&lt;/span&gt; [mscorlib]System.Object&lt;br /&gt;{&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;.method&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;hidebysig&lt;/span&gt; static &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;  Main(&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] argv) &lt;span style="color: #0000ff;"&gt;cil&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;managed&lt;/span&gt;&lt;br /&gt;  {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.entrypoint&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 代码大小       44 (0x2c)&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #0000ff;"&gt;.maxstack&lt;/span&gt;  &lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;.locals&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;init&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt; V_0,&lt;br /&gt;             &lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt; V_1,&lt;br /&gt;             &lt;span style="color: #0000ff;"&gt;bool&lt;/span&gt; V_2)&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义三个变量&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0000:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0001:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldc.i4.s&lt;/span&gt;   &lt;span style="color: #800080;"&gt;10&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把整型值10载入堆栈&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0003:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;stloc.0&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把刚才载入堆栈的10赋值给第一个local变量，int x=10&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0004:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldc.i4.6&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把整型值6载入堆栈 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0005:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;stloc.1&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把刚才载入堆栈的6赋值给第二个local变量，int y=6&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0006:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldloc.0&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0007:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldloc.1&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;这两句，把x,y两个local变量载入堆栈&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0008:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;cgt&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;比较x，y的大小，结果会保存在堆栈最上方（结果以0或1表示true ，false）&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_000a:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldc.i4.0&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;把0载入堆栈 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_000b:&lt;/span&gt;  ceq&lt;span style="color: #008000;"&gt;//比较0和cgt的运算结果是否相等，结果会保存在堆栈最上方（结果以0或1表示true ，false）&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_000d:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;stloc.2&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;ceq的运算结果保存入bool变量中&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_000e:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldloc.2&lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;再把ceq运算结果载入&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_000f:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;brtrue.s&lt;/span&gt;   IL_001c&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;判断跳转，若跳转显式Y，不跳转显式X&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0011:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0012:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldloc.0&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0013:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt;       &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; [mscorlib]System.Console::WriteLine(&lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0018:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0019:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_001a:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;br.s&lt;/span&gt;       IL_0025&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_001c:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_001d:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ldloc.1&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_001e:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt;       &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; [mscorlib]System.Console::WriteLine(&lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt;)&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0023:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0024:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;nop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_0025:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;call&lt;/span&gt;       &lt;span style="color: #0000ff;"&gt;int32&lt;/span&gt; [mscorlib]System.Console::Read()&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_002a:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;pop&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #ff00ff;"&gt;IL_002b:&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;ret&lt;/span&gt;&lt;br /&gt;  } &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; end of method aidd2008::Main&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/aidd2008/aggbug/2322672.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/aidd2008/archive/2012/01/15/2322672.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
