﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-积累与沉淀的跌代</title><link>http://www.cnblogs.com/pvistely/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Feb 2010 23:48:27 GMT</lastBuildDate><pubDate>Tue, 09 Feb 2010 23:48:27 GMT</pubDate><ttl>60</ttl><item><title>小东西WinForm的等待窗口</title><link>http://www.cnblogs.com/pvistely/archive/2009/11/27/1611718.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Thu, 26 Nov 2009 18:07:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2009/11/27/1611718.html</guid><description><![CDATA[<p>阅读: 613 评论: 3 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2009-11-27 02:07 <a href="http://www.cnblogs.com/pvistely/archive/2009/11/27/1611718.html" target="_blank">原文链接</a></p><p>一般在做WinForm应用时会遇到较长时间的用户操作等待,此时最好加个等待窗口,给用户一个良好的操作体验.</p>
<p>太懒本来想在网上找一个代码的,但没找到合适的,只能自己动手写一个了,附上代码,也给自己做个备份</p>
<p>包括一个private的内建等待窗口类,及一个public的WaitForm类</p>
<p>WaitForm类提供Show及Close两个方法,代码中等待窗口不为模式窗口</p>
<p>在应用中需要操作长时间运作时可用下面的模式调用:</p>
<p>WaitForm.Show(this);//显示等待窗口</p>
<p>DoSomthing();//主窗口长时间操作</p>
<p>WaitForm.Close();//关闭等待窗口</p>
<p>&nbsp;</p>
<p>这段代码主要应用了多线程方式完成,使用一个AutoResetEvent事件信号量来做窗口状态处理,并增保证了等待窗口在异常关闭的情况下能正确的退出显示线程.</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><img style="display: none;" align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_021115').style.display='none'; document.getElementById('Code_Open_Image_021115').style.display='inline'; document.getElementById('Code_Open_Text_021115').style.display='inline';" id="Code_Closed_Image_021115" /><img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_021115').style.display='none'; getElementById('Code_Closed_Image_021115').style.display='inline'; getElementById('Code_Closed_Text_021115').style.display='inline';" style="display: inline;" id="Code_Open_Image_021115" /><span style="display: none;" class="cnblogs_code_Collapse" id="Code_Closed_Text_021115">Code</span><span style="display: inline;" id="Code_Open_Text_021115"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Collections.Generic;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.ComponentModel;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Data;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Drawing;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Linq;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Text;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Windows.Forms;<br /></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;System.Threading;<br /></span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;BMSAP.Windows<br />{<br />&nbsp;&nbsp; </span><span style="color: #0000ff;">
<div class="cnblogs_code"><img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_021136').style.display='none'; document.getElementById('Code_Open_Image_021136').style.display='inline'; document.getElementById('Code_Open_Text_021136').style.display='inline';" id="Code_Closed_Image_021136" /><img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" height="16" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_021136').style.display='none'; getElementById('Code_Closed_Image_021136').style.display='inline'; getElementById('Code_Closed_Text_021136').style.display='inline';" style="display: none;" id="Code_Open_Image_021136" /><span class="cnblogs_code_Collapse" id="Code_Closed_Text_021136"></span><span style="display: none;" id="Code_Open_Text_021136"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;FrmWait&nbsp;:&nbsp;Form<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;Required&nbsp;designer&nbsp;variable.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;System.ComponentModel.IContainer&nbsp;components&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;Clean&nbsp;up&nbsp;any&nbsp;resources&nbsp;being&nbsp;used.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="disposing"&gt;</span><span style="color: #008000;">true&nbsp;if&nbsp;managed&nbsp;resources&nbsp;should&nbsp;be&nbsp;disposed;&nbsp;otherwise,&nbsp;false.</span><span style="color: #808080;">&lt;/param&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">override</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Dispose(</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;disposing)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(disposing&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;(components&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;components.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">base</span><span style="color: #000000;">.Dispose(disposing);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">#region</span><span style="color: #000000;">&nbsp;Windows&nbsp;Form&nbsp;Designer&nbsp;generated&nbsp;code</span><span style="color: #000000;"><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;Required&nbsp;method&nbsp;for&nbsp;Designer&nbsp;support&nbsp;-&nbsp;do&nbsp;not&nbsp;modify<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;the&nbsp;contents&nbsp;of&nbsp;this&nbsp;method&nbsp;with&nbsp;the&nbsp;code&nbsp;editor.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;InitializeComponent()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Windows.Forms.Label();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.SuspendLayout();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;label1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Dock&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;System.Windows.Forms.DockStyle.Fill;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Font&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Font(</span><span style="color: #800000;">"</span><span style="color: #800000;">Microsoft&nbsp;YaHei</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;18F,&nbsp;System.Drawing.FontStyle.Regular,&nbsp;System.Drawing.GraphicsUnit.Point,&nbsp;((</span><span style="color: #0000ff;">byte</span><span style="color: #000000;">)(</span><span style="color: #800080;">0</span><span style="color: #000000;">)));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Location&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Point(</span><span style="color: #800080;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">label1</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Size(</span><span style="color: #800080;">386</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">60</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.TabIndex&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">0</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.Text&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">正&nbsp;在&nbsp;处&nbsp;理&nbsp;请&nbsp;稍&nbsp;候&nbsp;</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1.TextAlign&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;System.Drawing.ContentAlignment.MiddleCenter;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;FrmWait<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AutoScaleDimensions&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.SizeF(7F,&nbsp;17F);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AutoScaleMode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;System.Windows.Forms.AutoScaleMode.Font;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ClientSize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Size(</span><span style="color: #800080;">386</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">60</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ControlBox&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Controls.Add(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.label1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Font&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Drawing.Font(</span><span style="color: #800000;">"</span><span style="color: #800000;">Microsoft&nbsp;YaHei</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;9F,&nbsp;System.Drawing.FontStyle.Regular,&nbsp;System.Drawing.GraphicsUnit.Point,&nbsp;((</span><span style="color: #0000ff;">byte</span><span style="color: #000000;">)(</span><span style="color: #800080;">0</span><span style="color: #000000;">)));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.FormBorderStyle&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;System.Windows.Forms.FormBorderStyle.FixedSingle;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Margin&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;System.Windows.Forms.Padding(</span><span style="color: #800080;">4</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">4</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">4</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800080;">4</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Name&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">FrmWait</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ShowIcon&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ShowInTaskbar&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.StartPosition&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;System.Windows.Forms.FormStartPosition.CenterScreen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.ResumeLayout(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;System.Windows.Forms.Label&nbsp;label1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;FrmWait()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">delegate</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;ExecutedInvokeHeandle();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;等待窗口<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;WaitForm<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;等待窗口对象<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;FrmWait&nbsp;mWait;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;事件状态通知<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;AutoResetEvent&nbsp;mEvents;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;显示状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;mShowing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;等待状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;mWaiting&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;WaitForm()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">全局等待信号</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mEvents&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;AutoResetEvent(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;窗口关闭事件<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="sender"&gt;&lt;/param&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="e"&gt;&lt;/param&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;WaitForm_FormClosed(</span><span style="color: #0000ff;">object</span><span style="color: #000000;">&nbsp;sender,&nbsp;FormClosedEventArgs&nbsp;e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(mWaiting&nbsp;</span><span style="color: #000000;">||</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">!</span><span style="color: #000000;">(sender&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;FrmWait))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">信号等待中被异常关闭,或主窗口被关闭时自动通知信号复位</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mEvents.Set();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mShowing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">回收等待窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">finally</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;显示等待窗口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="pComponet"&gt;</span><span style="color: #008000;">调用对象,可为控件或窗口</span><span style="color: #808080;">&lt;/param&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Show(Control&nbsp;pComponet)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">已显示则返回</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(mShowing)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">创建等待窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FrmWait();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置窗口关闭事件</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.FormClosed&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FormClosedEventHandler(WaitForm_FormClosed);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">启动显示线程</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;tmpThread&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Thread(show);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpThread.Start(pComponet);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;关闭等待窗口<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Close()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(mShowing)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如果显示中则设置关闭信号</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mEvents.Set();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">修改等待状态</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWaiting&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;显示窗口过程<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="pComponet"&gt;&lt;/param&gt;</span><span style="color: #808080;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;show(</span><span style="color: #0000ff;">object</span><span style="color: #000000;">&nbsp;pComponet)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(pComponet&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pComponet&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;Control)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置显示状态</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mShowing&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">当调用对象为Win控件时</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pComponet&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Control).BeginInvoke(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ExecutedInvokeHeandle(</span><span style="color: #0000ff;">delegate</span><span style="color: #000000;">()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">进行异步调用</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(pComponet&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pComponet&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;Control)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">显示等待窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.Show((pComponet&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Control).FindForm());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置父级窗口关闭事件</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pComponet&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Control).FindForm().FormClosed&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FormClosedEventHandler(WaitForm_FormClosed);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">激活父级窗口,</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pComponet&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Control).FindForm().Activate();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">如查询不到父级窗口设置顶层显示,此处可用GetDesktop的API来获取桌面窗口,并设置为父级窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.TopMost&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">显示等待窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.Show();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置等待信号</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWaiting&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mEvents.WaitOne();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">等待结束</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWaiting&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(pComponet&nbsp;</span><span style="color: #0000ff;">as</span><span style="color: #000000;">&nbsp;Control).BeginInvoke(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;ExecutedInvokeHeandle(</span><span style="color: #0000ff;">delegate</span><span style="color: #000000;">()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">关闭窗口</span><span style="color: #008000;"><br /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mWait.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span></span></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/pvistely/aggbug/1611718.html?type=1" width="1" height="1" alt=""/><p>评论: 3　<a href="http://www.cnblogs.com/pvistely/archive/2009/11/27/1611718.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2009/11/27/1611718.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>FluorineFx ASObject自动转换基础类 AutoParseASObject ，用于Flash AMF协议解析</title><link>http://www.cnblogs.com/pvistely/archive/2009/04/28/1445772.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Tue, 28 Apr 2009 15:45:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2009/04/28/1445772.html</guid><description><![CDATA[<p>阅读: 1541 评论: 1 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2009-04-28 23:45 <a href="http://www.cnblogs.com/pvistely/archive/2009/04/28/1445772.html" target="_blank">原文链接</a></p><p>在做AMF协议应用时会遇到一个数据转换问题，也就是从ASObject转换成.NET的类</p>
<p>如：热血三国中的战场信息</p>
<p>　　<img src="http://pic002.cnblogs.com/img/pvistely/200904/2009042823310297.jpg" /></p>
<p>转换为.NET中战场信息类</p>
<p><img src="http://pic002.cnblogs.com/img/pvistely/200904/2009042823331021.jpg" /></p>
<p>诸如此类的类型转换，可以利用<span style="color: #33cccc;"><span style="color: #008080;">AutoParseASObject<span style="color: #000000;">来做为基础类进行自动解析，使用此基础类前先定义好相对应的数据库，类中<span style="color: #008080;">Field</span>或<span style="color: #008080;">Property</span>名称必需与转换对象一至（有兴趣的朋友可以自己加类型属性，这样就更为灵活）</span></span></span></p>
<p><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;">下面是<span style="color: #33cccc;"><span style="color: #008080;">AutoParseASObject<span style="color: #000000;">代码，当然除了AMF数据对象转换也可以应用于其他数据转换过程中，如数据库结构类，JSON数据等的处理，</span></span></span></span></span></span></p>
<p><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;"><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;">原理是利用<span style="color: #008000;"><span style="color: #008080;">Type</span></span>来自动创建实例对象，并将相关数据值自动进行类型转换，得到一个新的实例，</span></span></span></span></span></span></p>
<p><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;"><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;">有人或许会想，是否可以动态创建一个数据类呢，这个是完全可以实现的，利用.NET的动态编译完全可以做到，具体怎么实现我就不写了，应该更为简单.</span></span></span></span></span></span></p>
<p><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;"><span style="color: #33cccc;"><span style="color: #008080;"><span style="color: #000000;">代码实现：(<span style="color: #ff9900;"><span style="color: #ff6600;">郁闷发布那个插入代码用起来好不爽....=.=还是直接帖一下得了</span></span>)</span></span></span></span></span></span></p>
<div>
<p class="MsoNormal"><span style="font-size: 9pt; color: blue; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;">public</span><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"> <span style="color: blue;">class</span> <span style="color: #2b91af;">AutoParseASObject</span>&lt;T&gt;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">public</span> <span style="color: blue;">static</span> T Parse(<span style="color: #2b91af;">ASObject</span> pObj)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">try<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">Type</span> tmpType = <span style="color: blue;">typeof</span>(T);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>T tmpRstObj = (T)<span style="color: #2b91af;">Activator</span>.CreateInstance(tmpType);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #2b91af;">MemberInfo</span>[] tmpMembers = tmpType.GetMembers();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">for</span> (<span style="color: blue;">int</span> i = 0; i &lt; tmpMembers.Length; i++)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">var</span> tmpVar = <span style="color: blue;">from</span> value <span style="color: blue;">in</span> pObj<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">where</span> value.Key.ToLower() == tmpMembers[i].Name.ToLower()<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">select</span> value.Value;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">using</span> (<span style="color: #2b91af;">IEnumerator</span>&lt;<span style="color: blue;">object</span>&gt; tmpEnum = tmpVar.GetEnumerator())<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">if</span> (tmpEnum.MoveNext())<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">switch</span> (tmpMembers[i].MemberType)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">case</span> <span style="color: #2b91af;">MemberTypes</span>.Field:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tmpType.GetField(tmpMembers[i].Name).SetValue(tmpRstObj, <span style="color: #2b91af;">Convert</span>.ChangeType(tmpEnum.Current, tmpType.GetField(tmpMembers[i].Name).FieldType));<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">break</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">case</span> <span style="color: #2b91af;">MemberTypes</span>.Property:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">if</span> (tmpType.GetProperty(tmpMembers[i].Name).CanWrite)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>tmpType.GetProperty(tmpMembers[i].Name).SetValue(tmpRstObj, <span style="color: #2b91af;">Convert</span>.ChangeType(tmpEnum.Current, tmpType.GetProperty(tmpMembers[i].Name).PropertyType), <span style="color: blue;">null</span>);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: blue;">break</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">return</span> tmpRstObj;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: blue;">catch</span> { <span style="color: blue;">return</span> <span style="color: blue;">default</span>(T); }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;"><span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; line-height: 115%; font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-no-proof: yes;">}</span></p>
</div><img src="http://www.cnblogs.com/pvistely/aggbug/1445772.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/pvistely/archive/2009/04/28/1445772.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2009/04/28/1445772.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>PPPOE数据包转换及SharpPcap应用</title><link>http://www.cnblogs.com/pvistely/archive/2009/02/24/1396902.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Mon, 23 Feb 2009 18:00:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2009/02/24/1396902.html</guid><description><![CDATA[<p>阅读: 1943 评论: 2 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2009-02-24 02:00 <a href="http://www.cnblogs.com/pvistely/archive/2009/02/24/1396902.html" target="_blank">原文链接</a></p><p>在最近写的一个程序中需要用到Sniffer功能，但由于通过.net自身的Socket做出来的Sniffer不能达到实际应用的要求（如不能监听WIFI数据包）所以找到了WinPCAP的.NET库SharpPcap(<font face="Verdana"><a href="http://www.tamirgal.com/home/dev.aspx?Item=SharpPcap">http://www.tamirgal.com/home/dev.aspx?Item=SharpPcap</a></font>)</p>
<p>&nbsp;</p>
<p>说下我遇到的问题，由于我自己用的是通过路由器上网，所以做出来的东西所有功能都可以用，但把程序发到一些朋友那里就遇到问题了，关于SNIFFER的所有功能都不能用，起先还以为是程序功能问题，不停的在做修改，慢慢的才意识到原来是由于PPPOE拨号的原因，通过网上找了相关PPPOE的资料才知道，他将原来的数据包加上了一个PPPOE的协议包头，为了使程序支持PPPOE的协议只能把数据包转换成一般的TCP/IP包，PPPOE的协议有８字节组成，之后就是原有的TCP/IP协议包，一般的ADSL拨号都不会加密，因此可以不考虑加密的因素通过PCAP来做包转换主要有这几个过程，</p>
<p>１.获取PPPOE的原始以太包</p>
<p>２.将原始以太包头写入新以太包做为头部</p>
<p>３.移去原始以太包头部后的８个字节</p>
<p>４.将处理后的以太包数据块写入新包中</p>
<p>&nbsp;</p>
<p>具体的PCAP应用实现代码：</p>
<p>&nbsp;1&nbsp;<span style="color: #008000">//</span><span style="color: #008000">数据包接收事件</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">Device.PcapOnPacketArrival&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Pcap.PacketArrivalEvent(PcapOnPacketArrival);<br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #008000">//</span><span style="color: #008000">设置过滤条件，＂以太协议为0x8864(即PPPOE协议)或TCP协议＂</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">Device.PcapSetFilter(</span><span style="color: #800000">"</span><span style="color: #800000">ether[12:2]=0x8864&nbsp;or&nbsp;tcp</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #008000">//</span><span style="color: #008000">开始截包</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">PcapCapture(</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #008000">//</span><span style="color: #008000">截包事件</span><span style="color: #008000"><br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;PcapOnPacketArrival(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;Packet&nbsp;packet){<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /><br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;TCPPacket&nbsp;tmpTcpPacket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当获取的数据包为TCPPacket时直接转换为TCP数据包</span><span style="color: #008000"><br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(packet&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;TCPPacket)&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;{<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpTcpPacket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(packet&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;TCPPacket);<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;}<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">当为以太包时，则尝试转换成TCP数据包</span><span style="color: #008000"><br />
</span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(packet&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;EthernetPacket)<br />
</span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">　　　　　&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">协议数据区（TCP/IP协议包数据区，包括IP协议数据及TCP协议数据）</span><span style="color: #008000"><br />
</span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;tmpBuf&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[packet.Data.Length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">8</span><span style="color: #000000">];<br />
</span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">　　　　　&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">复制实际TCP/IP数据块</span><span style="color: #008000"><br />
</span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array.Copy(packet.Data,&nbsp;</span><span style="color: #800080">8</span><span style="color: #000000">,&nbsp;tmpBuf,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;tmpBuf.Length);<br />
</span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MemoryStream&nbsp;tmpMs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MemoryStream();<br />
</span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">将原来的以太包头作为目标TCP/IP数据包的以太头</span><span style="color: #008000"><br />
</span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpMs.Write(packet.Header,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;packet.Header.Length);<br />
</span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">将实际TCP/IP数据包写入目标TCP/IP数据包中，跟在以太包头后面，成为一个新的TCP/IP数据包</span><span style="color: #008000"><br />
</span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpMs.Write(tmpBuf,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;tmpBuf.Length);<br />
</span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">　　　　　　　　</span><span style="color: #008000">//</span><span style="color: #008000">尝试创建新的TCP/IP数据包对象，<br />
</span><span style="color: #008080">35</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">第一个参数为以太头长度，第二个为数据包数据块</span><span style="color: #008000"><br />
</span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpTcpPacket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TCPPacket(packet.Header.Length,&nbsp;tmpMs.ToArray());<br />
</span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;{&nbsp;tmpTcpPacket&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;}<br />
</span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmpMs.Dispose();<br />
</span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /><br />
</span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">}</span></p>
 <img src="http://www.cnblogs.com/pvistely/aggbug/1396902.html?type=1" width="1" height="1" alt=""/><p>评论: 2　<a href="http://www.cnblogs.com/pvistely/archive/2009/02/24/1396902.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2009/02/24/1396902.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Microsoft SQL Server 2008 基本安装说明</title><link>http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Tue, 30 Dec 2008 17:33:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html</guid><description><![CDATA[<p>阅读: 2415 评论: 1 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2008-12-31 01:33 <a href="http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html" target="_blank">原文链接</a></p><p>&nbsp;</p>
<p>Microsoft SQL Server 2008 基本安装说明</p>
<p>安装SQL2008的过程与SQL2005的程序基本一样,只不过在安装的过程中部分选项有所改变,当然如果只熟悉SQL2000安装的同志来说则是一个革命性的变动,</p>
<p>一、安装前的准备<br />
1. 需要.Net Framework 3.5，若在Vista或更高的OS上需要3.5 SP1的支持（在SQL2008安装的前会自动更新安装）<br />
2. 需要Widnows PowerShell的支持,WPS是一个功能非常强大的Shell应用，命令与DOX/UNIX兼容并支持直接调用.NET模块做行命令编辑，是非常值得深入研究的工具（在SQL2008安装时会自动更新安装）<br />
3. 需要确保Windows Installer的成功启动，需要4.5以上版本（需要检查服务启动状态service.msc)<br />
4. 需要MDAC2.8 sp1的支持（XP以上系统中已集成）<br />
5. 若机器上已经安装Visual studio 2008则需要VS 2008 sp1以上版本的支持（需要自己从MS的网站上下载安装<a href="http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?familyid=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;displaylang=en</a>）</p>
<p>&nbsp;</p>
<p>二、安装配置过程<br />
1.进行SQL Server安装中心，选择"安装"选项，在新的电脑上安装SQL2008可以直接选择&#8220;全新SQL Server独立安装或向现有安装功能"，将会安装一个默认SQL实列，如下图 </p>
<p><img style="width: 816px; height: 613px" height="613" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/0.jpg" width="816" border="0" /></p>
<p><img height="615" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/1.jpg" width="820" border="0" /></p>
<p>2.功能选择，对于只安装数据库服务器来说，功能的选择上可以按实际工作需要来制定，本人一般选择：数据库引擎服务、客户端工具连接、SQL Server 联机丛书、管理工具－基本、管理工具－完整<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中数据库引擎服务是SQL数据库的核心服务，Analysis及Reporting服务可按部署要求安装，这两个服务可能需要IIS的支持。如下图 </p>
<p><br />
<img height="689" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/2.jpg" width="873" border="0" /></p>
<p>3.实列设置，可直接选择默认实例进行安装，或则若同一台服务器中有多个数据服务实列可按不同实列名进行安装。如图</p>
<p><br />
<img height="689" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/3.jpg" width="873" border="0" /></p>
<p>4.服务器配置，服务器配置主要是服务启动帐户的配置，服务的帐户名推荐使用NT AUTHORITY\SYSTEM的系统帐户，并指定当前选择服务的启动类型，如图<br />
<img height="689" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/4.jpg" width="873" border="0" /></p>
<p>5.数据库引擎配置，在当前配置中主要设置SQL登录验证模式及账户密码，与SQL的数据存储目录，身份验证模式推荐使用混合模式进行验证，在安装过程中内置的SQL Server系统管理员帐户(sa)的密码比较特殊，SQL2008对SA的密码强度要求相对比较高，需要有大小写字母、数字及符号组成，否则将不允许你继续安装。在"指定Sql Server管理员"中最好指定本机的系统管理员administrator。如图</p>
<p><br />
<img height="689" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/5.2.jpg" width="873" border="0" /><img height="689" alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/5.1.jpg" width="873" border="0" />&nbsp;</p>
<img src="http://www.cnblogs.com/pvistely/aggbug/1365702.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>SQL 2000 异数据库数据同步</title><link>http://www.cnblogs.com/pvistely/archive/2007/07/23/828805.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Mon, 23 Jul 2007 13:58:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2007/07/23/828805.html</guid><description><![CDATA[<p>阅读: 1182 评论: 4 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2007-07-23 21:58 <a href="http://www.cnblogs.com/pvistely/archive/2007/07/23/828805.html" target="_blank">原文链接</a></p><p>最近在为客户做异地分公司 数据库同步的处理<br>采用SQL代理加FTP服务器来实现<br>在代理中定义处理步骤用VBS实现<br>客户端：（约定一天只允许同步一次数据）<br>&nbsp;&nbsp;&nbsp;1.测试是否已经备份数据库，若已备份直接返回<br>&nbsp;&nbsp; 2.按要求整理同步数据，采用存储过程来整理数据，并存入临时数据库中<br>&nbsp;&nbsp; 8.设置备份标志<br>&nbsp;&nbsp;&nbsp;3.将临时数据库备份至指定目录<br>&nbsp;&nbsp; 4.调用VBS压缩备份数据<br>&nbsp;&nbsp; 5.生成命令行FTP操作指令（BAT)<br>&nbsp;&nbsp; 6.调用FTP操作<br>&nbsp;&nbsp; 7.将备份压缩包移至备份数据目录<br>&nbsp;&nbsp; <br><br><br>服务器端：（每小时查询压缩文件是否上传）<br>&nbsp; 1.生成解压命令行脚本（BAT)<br>&nbsp; 2.解压<br>&nbsp; 3.恢复数据库至临时库中，当数据不存在时自动退出<br>&nbsp; 4.调用数据处理存储过程进行与主库数据合并<br>&nbsp; 6.移动上传数据包至数据目录</p>
<img src="http://www.cnblogs.com/pvistely/aggbug/828805.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/pvistely/archive/2007/07/23/828805.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2007/07/23/828805.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>请把这个消息提示框拿掉,谢谢</title><link>http://www.cnblogs.com/pvistely/archive/2006/12/14/592237.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Thu, 14 Dec 2006 07:57:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2006/12/14/592237.html</guid><description><![CDATA[<p>阅读: 3836 评论: 26 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2006-12-14 15:57 <a href="http://www.cnblogs.com/pvistely/archive/2006/12/14/592237.html" target="_blank">原文链接</a></p><p><span style="COLOR: #ff0000">我放首页一会,希望大家原谅,主要是为了让大家来测试这个方法,</span><br><br>这几天在想怎么保护.NET的程序,<br>正在测试第一个想法,如果成功那就最好了,<br>但自己想来想去都太简单了,这个处理方法,<br>希望大家测试一下,不知道是不是能破解掉这个方法,<br>这个方法原理非常简单.自己觉得很不安全,<br>希望大家推荐一个更好的保护方法.谢谢<br><br>测试程序:<br><a href="http://www.cnblogs.com/Files/pvistely/try.rar">http://www.cnblogs.com/Files/pvistely/try.rar</a><br>.NET 2.0<br>本程序只有一个显示消息框的功能<br><img height=262 alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_06121401.PNG" width=471 border=0><br>确定后可按任意键退出<br><img height=106 alt="" src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_06121402.png" width=154 border=0><br><br>不知道大家是不是能把这个消息框拿掉<br><br>期待中.....</p>
<img src="http://www.cnblogs.com/pvistely/aggbug/592237.html?type=1" width="1" height="1" alt=""/><p>评论: 26　<a href="http://www.cnblogs.com/pvistely/archive/2006/12/14/592237.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2006/12/14/592237.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>MS新版Wallop,</title><link>http://www.cnblogs.com/pvistely/archive/2006/10/12/526992.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Thu, 12 Oct 2006 02:07:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2006/10/12/526992.html</guid><description><![CDATA[<p>阅读: 264 评论: 1 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2006-10-12 10:07 <a href="http://www.cnblogs.com/pvistely/archive/2006/10/12/526992.html" target="_blank">原文链接</a></p><p><img height=172 alt="" src="http://www.seaspace.cn/img_2/seaspace_061005_4.jpg" width=400 border=0><br>用Wallop(<a href="http://mywallop.com/">http://mywallop.com</a>)已经好久了，在WLP上认识了很多朋友，在前不久微软又退出了最新的Wallop(<a href="http://www.wallop.com/">http://www.wallop.com</a>)以前的WLP应该属于MS实验室的产品，现在的则是BATA了，在不久的将来应该又是一个MS赚钱的好地方(虽然Wallop已经独立为一个公司)，呵呵，<br>现在还在等待WLP的邀请，虽然发了申请的邮箱，但如果朋友还有多于的邀请名额，请给我一个吧，哈<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#118;&#105;&#115;&#116;&#101;&#108;&#121;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;"><br>pvistely@gmail.com</a></p>
<img src="http://www.cnblogs.com/pvistely/aggbug/526992.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/pvistely/archive/2006/10/12/526992.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2006/10/12/526992.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>被VB6搞死。。。。。。。鸟</title><link>http://www.cnblogs.com/pvistely/archive/2006/09/15/505406.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Fri, 15 Sep 2006 08:50:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2006/09/15/505406.html</guid><description><![CDATA[<p>阅读: 169 评论: 1 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2006-09-15 16:50 <a href="http://www.cnblogs.com/pvistely/archive/2006/09/15/505406.html" target="_blank">原文链接</a></p>近日在做一个微型项目，用VB6做，<br>在类模板中定义，<br>Public Event GetSubTable(pMainId As String, pID As String,pSaveDatas() As DataInfor,&nbsp; pHaveMore As Boolean, pCancel As Boolean)<br><br>在IDE中可以完美运行，但在编译后就出现自动退出的问题，一开始还以为是平台问题，在多台机子上测试效果一样<br>用SMARTCHECK做调试发现在程序运行发生无效参数的异常，但找来找去都找不到具体的位置<br>最后经过一条一条语句的过虑，终于发现在事件调用上的错，<br>通过反汇编可以看到在调用的时候在VB运行库中发生了内存地址溢出的问题，<br><br>将事件参数顺序调整后，整个程序即正常<br>Public Event GetSubTable(pSaveDatas() As DataInfor,&nbsp;pMainId As String, pID As String, pHaveMore As Boolean, pCancel As Boolean)<br><br><br><br>为了这个问题，花了我一天的时候 
<img src="http://www.cnblogs.com/pvistely/aggbug/505406.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/15/505406.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/15/505406.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>企业管理应用系统平台插件接口应用说明</title><link>http://www.cnblogs.com/pvistely/archive/2006/09/09/499361.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Fri, 08 Sep 2006 17:57:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2006/09/09/499361.html</guid><description><![CDATA[<p>阅读: 1438 评论: 0 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2006-09-09 01:57 <a href="http://www.cnblogs.com/pvistely/archive/2006/09/09/499361.html" target="_blank">原文链接</a></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana" align=left><img style="WIDTH: 733px; HEIGHT: 468px" height=468 src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_BMSAP_060909.PNG" width=733 border=0><br>系统插件主要基于IAppMDIProc接口实现，<br>接口中提供了MainMdi属性，在程序加载插件时，由主程序负责指定当前主窗口，<br>ProcInformation,ProcLogo,ProcName主要是用于显示插件属性，包括信息说明，图标，及插件名称<br>DoAction方法在调用系统功能时会将功能名传递至此方法，<br>　　如：<br>　　　　在Function.xml文件中定义了：<br>　　　　　　&lt;内容 CodeName="Archive.Department"&gt;部门档案&lt;/内容&gt;<br>　　　　在主程序中将会自动查询是否正确加载Archive插件，若已经加载则会调用DoAction方法：<br>　　　　　DoAction("Department",ref tmpCancel)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 若在插件处理中将tmpCancel置为TRUE时则主程序将不再继续处理<br>&nbsp;&nbsp;插件负责返回一个Form对象，告诉主窗口当前是否有新的窗口创建<br>OnApplicationInited方法在系统初始化完成后调用，一些插件特有的初始操作可在此完成，像加载一些特定的数据（加密数据等）<br>OnApplicationShutDown方法在主程序关闭时调用</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">在应用平台主中，系统将提供一个Platform的静态对象，对象中包括：<br>当前登录应用系统信息Application(为ApplicationInformation实例)<br>当前数据连接Connection<br>是否正在处理业务操作DoAction<br>主窗口对象MainForm<br>当前登录应用系统数据操作对象TableDefine<br>当前系统平台版本Version</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">其中Application属性提供了，当前登录平台的所有信息，包括用户信息及权限信息等，<br>Cure所提到的插件间通信的问题，我还暂没涉及到，真的谢谢Cure的提醒，<br>目前变通的方法是用ApplicationInformation对象中的Components来完成，<br>只是不知道是否足够达到各位所需要的功能，<br>ApplicationInformation.Components是一个ApplicationComponent的集合，里面是所有当前系统加载的<br>若需要一个指定的插件对象可以用下面的方法调用　<br>　　返回一个Archive插件<br>　　Archive tmpCurArch=(Archive)PlatForm.Application.Components["Archive"]</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><br>日后我将为系统增加IServiceContainer与IServiceProvider的接口实现，这样就能比较正规的达到各插件间彼此的调用</p>
<img src="http://www.cnblogs.com/pvistely/aggbug/499361.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/09/499361.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/09/499361.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>企业管理应用系统平台应用说明</title><link>http://www.cnblogs.com/pvistely/archive/2006/09/07/497278.html</link><dc:creator>Pvistely</dc:creator><author>Pvistely</author><pubDate>Thu, 07 Sep 2006 03:48:00 GMT</pubDate><guid>http://www.cnblogs.com/pvistely/archive/2006/09/07/497278.html</guid><description><![CDATA[<p>阅读: 1624 评论: 4 作者: <a href="http://www.cnblogs.com/pvistely/" target="_blank">Pvistely</a> 发表于 2006-09-07 11:48 <a href="http://www.cnblogs.com/pvistely/archive/2006/09/07/497278.html" target="_blank">原文链接</a></p><p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><span style="FONT-SIZE: 14pt"><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 24pt">企业管理应用系统平台</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </strong><span style="FONT-SIZE: 10pt">(3.0.0.14b)</span><br><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 应用说明<br><br>简述<br></strong></span>&nbsp;&nbsp;&nbsp;&nbsp; 本平台采用插件化工作模式，提供一个共用的系统平台，各项业务处理模块都基于此平台接口进行处理，平台从通用化的角度进行设计开发，内建了权限管理、表单设计、表单处理、查询处理、打印处理、流程设计*、流程处理*等系统模块，方便业务系统设计开发时调用。本平台支持指定数据列加密处理，能实现加密数据实时查询。<br><br><strong style="FONT-SIZE: 14pt">目的<br></strong>&nbsp;&nbsp;&nbsp; 提高实际应用开发效率。<br>&nbsp;&nbsp;&nbsp; 使用此平台能将主要精力放在实际业务处理上，从而高实际应用的开发效率及业务实现正确性。<br><br><strong style="FONT-SIZE: 14pt">平台基本流程<br></strong>
<div align=center src_cetemp="/images/cnblogs_com/pvistely/6125/o_060907_1.png"><img src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_060907_1.png" border=0></div>
<br>&nbsp;<br><strong style="FONT-SIZE: 14pt">平台模块关系</strong><br>
<div align=center src_cetemp="/images/cnblogs_com/pvistely/6125/o_060907_2.png"><img src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_060907_2.png" border=0></div>
<br>&nbsp;<br><span style="FONT-SIZE: 14pt"><strong>平台模块类结构</strong></span><br>
<div align=center src_cetemp="/images/cnblogs_com/pvistely/6125/o_060907_3.png"><img src="http://www.cnblogs.com/images/cnblogs_com/pvistely/6125/o_060907_3.png" border=0></div>
<br>&nbsp;<br><span style="FONT-FAMILY: Verdana">&nbsp;</span><span style="FONT-FAMILY: Verdana"><strong style="FONT-SIZE: 14pt">IAppMDIProc接口说明<br></strong>&nbsp;&nbsp;&nbsp; MainMdi：平台主窗口，由平台设置<br>&nbsp;&nbsp;&nbsp; DoAction：执行功能，由Function.xml中定义功能，并只传功能名不传递模块名详见Function.xml文件说明<br>&nbsp;&nbsp;&nbsp; OnApplicationShutDown：当平台关闭时调用<br>&nbsp;&nbsp;&nbsp; OnApplicationInited：当平台初始完成后调用<br>&nbsp;&nbsp;&nbsp; GetFunIcon：获取指定功能的图标<br>&nbsp;&nbsp;&nbsp; ProcInformation：模块信息说明<br>&nbsp;&nbsp;&nbsp; ProcLogo：模块图标<br>&nbsp;&nbsp;&nbsp; ProcName：模块名称</span>
<p>&nbsp;</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp; <strong>模块加载/卸载<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在平台的关于中点加载或卸载来应用业务部件<br><br><strong style="FONT-SIZE: 14pt">平台配置文件<br></strong><em><u>&nbsp;<strong>Components.xml<br></strong></u></em>&nbsp;&nbsp;支持组件属性配置文件，由单据引擎及单据设计器调用。<br>&nbsp;&nbsp;格式：<br>&nbsp;&nbsp;&nbsp;&lt;Components&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Component Name="组件名称"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Namespace="命名空间"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly="所属程序集"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asm="程序集路径"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Group="所属分组,用于工具栏"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Propertys&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Property Name="属性名"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Caption="属性标题"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Group="所属属性组"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type="类型"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Asm="类型程序集路径"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly="类型程序集"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Propertys&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Component&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp;&lt;/Components&gt;<br>&nbsp;&nbsp;说明：<br>&nbsp;&nbsp;&nbsp;当为组件自带属性时则不用指定相应的属性类型及程序集，附加属性默认类型为String<br>&nbsp;&nbsp;&nbsp;Group选项在表单设计器中应用</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><u><em><strong>&nbsp;Function.xml</strong><br></em></u>&nbsp;&nbsp;平台功能定义文件，与权限配置及业务模块功能结合使用。<br>&nbsp;&nbsp;格式：<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Desktop Software="程序名" SoftCode="程序代码"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;标题 Name="分组名"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Icon="分组图标序列"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;内容 CodeName="功能代码"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Icon="功能图标序列"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Execute="是否为外部功能&lt;TRUE|FALSE&gt;"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Path="外部功能路径"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;功能名<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/内容&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/标题&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Desktop&gt;<br>&nbsp;说明：<br>&nbsp;&nbsp;&nbsp;当Icon未设置时系统将用默认图标代替<br>&nbsp;&nbsp;&nbsp;非外部程序Execute及Path不需指定<br>&nbsp;&nbsp;&nbsp;功能代码格式为：<br>&nbsp;&nbsp;&nbsp;&nbsp;业务模块.功能代码<br>&nbsp;&nbsp;&nbsp;&nbsp;在平台传递时只向指定业务模块传递功能代码，<br>&nbsp;&nbsp;&nbsp;系统功能：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableDesinger：档案项目定义<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Users：操作员管理<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Encypt：字段加密<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Relogin：注销<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit：退出<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; About：关于</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">&nbsp;<em><u><strong>Application.xml<br></strong></u></em>&nbsp;&nbsp;客户端配置文件，包括数据库连接设置，客户端业务模块配置等。<br>&nbsp;格式：<br>&nbsp;&lt;Configs&gt;<br>&nbsp;&nbsp; &lt;Client&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Software&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Name&gt;应用系统名&lt;/Name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;UIPath&gt;功能界面路径（保留）&lt;/UIPath&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;UIFunctionFile&gt;功能定义文件&lt;/UIFunctionFile&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SingleDatabase&gt;是否为单数据库系统[TRUE/FALSE]&lt;/SingleDatabase&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;UIType&gt;界面类型（保留)&lt;/UIType&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RecordLog&gt;记录日志&lt;/RecordLog&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;MaxLogFileSize&gt;日志大小，超过此大小自动清除，以字节为单位&lt;/MaxLogFileSize&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LogFilePath&gt;日志文件&lt;/LogFilePath&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Software&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;UserLogin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;User&gt;登录操作员，格式：操作员编码[空格]操作员姓名&lt;/User&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ServerName&gt;登录数据服务器&lt;/ServerName&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SqlLoginUser&gt;数据服务器登录用户&lt;/SqlLoginUser&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SqlLoginPwd&gt;加密后的数据服务器登录密码&lt;/SqlLoginPwd&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ConnectionTimeOut&gt;连接超时&lt;/ConnectionTimeOut&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;CommandTimeOut&gt;命令超时&lt;/CommandTimeOut&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DatabaseName&gt;应用系统数据库&lt;/DatabaseName&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Account&gt;多库系统,帐套号&lt;/Account&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DbNameSchedule&gt;数据库名规则[%DBNAME%,%YEAR%]（保留）&lt;/DbNameSchedule&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/UserLogin&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;Company&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Name&gt;公司名&lt;/Name&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Address&gt;公司地址&lt;/Address&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Tel&gt;电话&lt;/Tel&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Fax&gt;传真&lt;/Fax&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Company&gt;<br>&nbsp;&nbsp; &lt;/Client&gt;<br>&nbsp;&nbsp; &lt;Components&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 加载业务模块信息<br>&nbsp;&nbsp; &lt;/Components&gt;<br>&nbsp;&lt;/Configs&gt;<br>&nbsp;说明：<br>&nbsp;&nbsp;加载业务模块信息格式<br>&nbsp;&nbsp;&lt;业务模块命名空间 Class="基于IAppMDIProc的入口类" Assembly="程序集名" Path="程序集路径"/&gt;<br><br>&nbsp;<strong><em><u>Application.log</u></em></strong><br>&nbsp;&nbsp;应用程序处理日志。<br><br><strong><em><u>&nbsp;*.PMD</u></em></strong> &nbsp;<br>&nbsp;&nbsp;打印模板文件<br>&nbsp;&nbsp;格式：<br>&nbsp;&nbsp;&nbsp;[TEXTBOX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文本框<br>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;X定位<br>&nbsp;&nbsp;&nbsp;Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y定位<br>&nbsp;&nbsp;&nbsp;WIDTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 宽度<br>&nbsp;&nbsp;&nbsp;HEIGHT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高度<br>&nbsp;&nbsp;&nbsp;AUTOSIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是否自动调整大小<br>&nbsp;&nbsp;&nbsp;BORDER=&lt;NONE|LEFT|RIGHT|TOP|BOTTOM|ALL&gt; &nbsp;&nbsp;边框样式<br>&nbsp;&nbsp;&nbsp;HCENTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;水平居中<br>&nbsp;&nbsp;&nbsp;VCENTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;垂直居中*<br>&nbsp;&nbsp;&nbsp;FORMAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示格式<br>&nbsp;&nbsp;&nbsp;NOPRINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 非打印项<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;[FONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字体设置<br>&nbsp;&nbsp;&nbsp;FACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 字体名<br>&nbsp;&nbsp;&nbsp;SIZE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 大小<br>&nbsp;&nbsp;&nbsp;COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 颜色<br>&nbsp;&nbsp;&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;粗体<br>&nbsp;&nbsp;&nbsp;I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 斜体<br>&nbsp;&nbsp;&nbsp;U&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下划线<br>&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除线<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;[LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 画线<br>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一点X定位<br>&nbsp;&nbsp;&nbsp;Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一点Y定位<br>&nbsp;&nbsp;&nbsp;X2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第二点X定位<br>&nbsp;&nbsp;&nbsp;Y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二点Y定位<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;[ALIGN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对齐*<br>&nbsp;&nbsp;&nbsp;MOD=&lt;CENTER|RIGHT|LEFT&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对齐模式<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;[IMAGE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 图片*<br>&nbsp;&nbsp;&nbsp;PATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 路径<br>&nbsp;&nbsp;&nbsp;SER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;序列化<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;[PAGESPLITER]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;分页*<br>&nbsp;&nbsp;&nbsp;[TAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表格*<br>&nbsp;&nbsp;&nbsp;X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; X定位<br>&nbsp;&nbsp;&nbsp;Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y定位<br>&nbsp;&nbsp;&nbsp;NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表格名<br>&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;说明：<br>&nbsp;&nbsp;&nbsp;&nbsp; 模板文件第一行为参数设置行，一般为空<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;带*的为未实现的保留功能<br>&nbsp;&nbsp;&nbsp;&nbsp; X,Y值单位都为厘米</p>
<p style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><strong><em><u>&nbsp;*.XFrm</u></em></strong><br>&nbsp;&nbsp;表单模板文件<br>&nbsp;&nbsp;&nbsp;格式：<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Root&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;组件 AsmPath=程序集路径 Namespace=命名空间&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;属性Serializable=序列化串 Value=字符值/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Controls&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;属性Serializable=序列化串 Value=字符值/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Controls&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/组件&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Root&gt;<br>&nbsp;&nbsp;&nbsp;说明：<br>&nbsp;&nbsp;&nbsp;&nbsp;当为容器时则需应用Controls<br><br><br><br><br><br><span style="FONT-SIZE: 12pt; COLOR: #ff0000">还有太多太多的东西要做，现在为转成WEB而头痛，由于没做过WEB的项目，所以起步很缓慢，希望能够得到大家的支持与帮助，</span><br></p>
<img src="http://www.cnblogs.com/pvistely/aggbug/497278.html?type=1" width="1" height="1" alt=""/><p>评论: 4　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/07/497278.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/pvistely/archive/2006/09/07/497278.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>