<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[金石博客 LVZZ BLOG]]></title>
  <subtitle type="html"><![CDATA[精诚所至-金石为开-吕正正]]></subtitle>
  <id>http://lvzz.zwms.net/</id> 
  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/" /> 
  <link rel="self" type="application/atom+xml" href="http://lvzz.zwms.net/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2008-06-11T20:55:13+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[工具介紹：Thinstall]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=5" label="技术拾荒" /> 
	  <updated>2008-06-11T20:55:13+08:00</updated>
	  <published>2008-06-11T20:55:13+08:00</published>
		  <summary type="html"><![CDATA[<!--NONSCROLLING BANNER END-->
<div id="nstext" valign="bottom">
<div id="smpMgrCell" style="FLOAT: right; WIDTH: 230px">&nbsp;</div>
<p>作者：蔡學鏞<br /></p>
<p>2004 年 9 月</p>
<p>軟體開發完畢，需要開始考慮到部署 (deployment) 的問題。部署往往不是一件簡單的事，有一些問題需要解決。早期，Java 尚未普及時，許多 Java 程式員都會面臨一個困擾，那就是：用 Java 開發出來的軟體，不保證可以在其他人的 PC 上執行，因為別人可能沒有安裝 JRE (Java Runtime Environment，Java 執行環境)。即使有安裝 JRE，JRE 的版本可能也不對。即使是現在，這個問題依然存在。</p>
<p>同樣地，.NET現在也遇到這個問題。目前，只有 Windows Server 2003 預先安裝好 .NET Framework，其他的作業系統都沒有預先安裝 .NET Framework。這會造成有些公司在評估開發工具時，會捨棄 .NET，而就 MFC，甚至回到 Win32 API，畢竟 MFC 和 Win32 的 DLL 在所有的 Windows 平台上都有。我常覺得這可稱為「舊技術不死，只是凋零」，凋零得還真慢呢！</p>
<p>如果讓安裝程式將 .NET Framework 附在其中，會造成一些問題：安裝 .NET Framework 時需要有足夠的權限，權限不夠則無法安裝。例如，Guest 帳戶無法存取 Registry，安裝 .NET Framework 需要存取 Registry。另外，體積也是一個大問題，.NET Framework 下載超過 20MB(安裝後超過100MB)。</p>
<p>幸好，有一些軟體廠商提供工具可以解決此問題，Thinstall 正是一個這樣的工具。在 .NET Framework 尚未普及的今日，這樣的工具更顯得重要。Thinstall 是 Jitit 公司的產品，你可以在 http://thinstall.com/ 找到它的資料，以及下載 30 天試用版。</p>
<p>顧名思義， Thinstall 是 Thin-Install 的意思，讓軟體免於安裝的困擾。利用 Thinstall ，可以將一個軟體的許多檔案包裝 (package) 成一個 EXE 檔，不需要解壓縮，不需要安裝 (install)，就可以直接執行。利用 Thinstall ，你可以將 .NET Framework 和你的程式，以及相關的檔案都包裝在一起，變成一個自給自足的 EXE 檔。</p>
<p>除了將 .NET Framework 包裝進 EXE 之外，Thinstall 還有一些額外的好處，包括了：</p>
<ul>
    <li>可以將 3rd Party 程式庫，以及相關的檔案，都包裝在一個 EXE 檔中，讓程式執行時，不會有檔案遺失的狀況。 </li>
    <li>Thinstall 使用的壓縮技術，壓縮比例可以比 ZIP 或 RAR 更高。 </li>
    <li>Thinstall 並不會將整個 .NET Framework 都包裝進 EXE，只把有使用到的部分包裝進 EXE，加上使用壓縮技術，這使得包裝出來的程式體積不大，一般都在 3~8MB 之間。 </li>
    <li>Thinstall 有使用加密技術，可以保障資料檔案不會輕易地被他人窺視與竄改，程式也更不容易被反編譯和反組譯。 </li>
    <li>Thinstall 整合安裝程式的功能，可以建立開始選單 (Start Menu) 與桌面捷徑 (Desktop Shortcut)。 </li>
    <li>Thinstall 可以讓軟體變成 30 天試用版 (Trial)。 </li>
</ul>
<p>使用 Thinstall 也不是全然沒有缺點，最明顯的缺點是，執行效率會或多或少受到影響，且浪費更多記憶體。我的經驗是，大多數的程式感覺不出效率變差，但某些用到特殊的技巧的程式，其效率的確變差了。另外，使用 Thinstall 時，必須考慮到法律的問題。因為 Thinstall 將許多程式庫都包裝進來，這些別人開發的程式庫 (包括.NET Framework) 是否可以隨著你的 EXE 而散播，Thinstall 的使用者需要好好研究其授權方式。</p>
<p>Thinstall 的使用方式非常容易，你可以在 Thinstall 的網站上看到用法介紹。較值得注意的是，Jitit 公司不希望 Thinstall 產品被不合法地盜用，所以對於 Thinstall 的保護相當嚴格。使用 Thinstall 時，電腦必須能上網，因為 Thinstall 需要連線到 License Server，來得知你是否為合法的用戶 (或試用戶)，否則將不能執行 Thinstall。你也可以向他們購買 USB 的 Key，就可以不用上網，離線使用 Thinstall。</p>
<p>Thinstall 可以利用PE檔案格式的 Import Table，以及利用 .NET Metadata Table 內記錄的資訊，來得知此程式使用了哪些 DLL，Thinstall 會自動加入這些 DLL，甚至連間接使用到的 DLL (也就是 DLL 所使用的 DLL)，也會被自動加入。但是，Thinstall 無法得知程式中利用 Win32 的 LoadLibrary() 或 .NET的Assembly.Load() 等API所動態載入的 DLL 有哪些，所以使用者必須自行將這些 DLL 加入到 Thinstall 中，以免包裝出來的 EXE 檔殘缺不全。</p>
<p>Thinstall 採用的機制相當巧妙，利用一個 Virtual OS 將程式和 OS 隔開來。如果你的程式是 .NET 程式，則在你的程式和 Virtual OS 之間，還有一個 .NET CLR，如圖 1 所示：</p>
<img height="289" alt="圖 1" src="http://www.microsoft.com/taiwan/msdn/columns/DoNet/images/thinstall_1.gif" width="385" /><br /><span class="clsCap">圖 1</span>
<p>如果你利用Thinstall來包裝.NET程式，那麼Thinstall所產生出來的EXE檔內，除了包含你的原始EXE檔之外，還有.NET Framework，以及Thinstall Virtual OS，如圖2所示。</p>
<img height="361" alt="圖 2" src="http://www.microsoft.com/taiwan/msdn/columns/DoNet/images/thinstall_2.gif" width="481" /><br /><span class="clsCap">圖 2</span>
<p>Thinstall Virtual OS 重新改寫了 300+ 個 Win 32 API，這些 API 大都是和檔案、Registry、Process 等有關。Virtual OS 內有自己的 Virtual File System 和 Virtual Registry。這些被改寫的 API，將 Virtual File System 和 Real File System 整合起來，成為一個新的 File System；將 Virtual Registry 和 Real Registry 整合起來，變成一個新的 Registry。</p>
<p>當系統載入此 Thinstall 包裝出來的 EXE 時，Virtual OS 會先被載入，Virtual OS 會接著載入原始的 EXE (以及.NET Framework)，然後解壓縮與解密、並該更改此 EXE(以及.NET Framework) 所使用到的這 300+ API，使其呼叫到 Virtual OS 的版本，而不是 Real OS 的版本。最後把執行權交給此 EXE。偷天換日的工作，於是完成！</p>
<p>因為 Thinstall 內部使用這套 Virtual OS 的機制，而不是針對 .NET 來設計一個專屬的機制，所以 Thinstall 除了用來包裝 .NET 程式，也可以用來包裝 Java 程式，甚至 VB，或其他程式。我覺得這是一套很方便的工具，值得您也試試。</p>
<!--
<P><b>相關連結：</b></P>
&nbsp;&nbsp;<a class="small" target="_top" href="http://lvzz.zwms.net/FunctionPointer_1.htm">函數指標的進化論 (上)</a>
<P></P>
--></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=121" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=121</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[平淡的新年 断气的工作 寂寥的日子]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=11" label="锈色日记" /> 
	  <updated>2008-02-27T10:09:28+08:00</updated>
	  <published>2008-02-27T10:09:28+08:00</published>
		  <summary type="html"><![CDATA[<p>2008的新年过去了，平台无奇，寂寥相当。先留下个位置，以后补上。</p>
<p>2008年上班第一个月，工作有了变化，也是占位待补。</p>
<p>完。</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=119" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=119</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[石城南京的暴雪]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=11" label="锈色日记" /> 
	  <updated>2008-01-28T11:28:30+08:00</updated>
	  <published>2008-01-28T11:28:30+08:00</published>
		  <summary type="html"><![CDATA[<p>风肆意的飞，雪无情的下，大地一片苍茫。</p>
<p>前天星期六，雪很大，路上不好走动，加班。昨天星期天，雪狂大，还不停的下，依然加班。今天一早起来，雪还是在下，风还是在刮，真是疯狂。预报说还要下几天，这应该是我这一生来看过最大的雪，暴雪。</p>
<p>昨夜加班到10点左右，徒步到新街口地铁站，短短的路上，见到好几个行人跌倒。一片路灯，霓虹灯，照射在茫茫白雪之上，白雪泛着薄弱的光辉，映的漫天都是白色的光芒，美景美景！厚厚的积雪，狠狠的压弯了梧桐树枝，不时的有树枝因为承受不住压力而有力的弹起，于是，一堆雪密集的摔下，在路灯的照映下，显得小有辉煌。那一堆雪，柔和的打在行人的头上，满头满身白色的行人却没有一丝懊恼，而且都很愉悦。路边常常看到一些雪人，有的做的很好看，常常有人停下来和雪人合影，都想留下这美丽的画面。走在路上，心里满是是温暖与舒坦，开阔和愉快。</p>
<p>新街口大洋百货门口，一群人在雪中驻足观望。几只小狗在雪中开心的跳跃，追着主人玩耍。我也禁不住，拿出手机拍了两张照片，可惜手机不是相机，拍的效果不好。</p>
<p>从安德门地铁站出来，美妙的心情就没有了，踏着厚厚的学，看到路边凌乱的停着几辆出租车，出租车都打着停运的标识，搞的我没车坐，于是想等公交车，结果想想，这个天还是不要指望公交车会出现了，还是坐小黑车吧，结果小黑车也不带，他们要跑远点的，钱可以多点。直接晕倒。我很不爽的问一辆停运的出租车：&ldquo;还跑啊？&rdquo;，结果他说：&ldquo;跑怎么不跑的。&rdquo;我很干脆的说：&ldquo;铁心桥多少钱？&rdquo;，他犹豫了一下，回答&ldquo;30&rdquo;，我：&ldquo;走！&rdquo;，就这样，在安德门晃悠了15分钟的我，终于上了出租车，一路上，我看到不少人在向铁心桥方向步行，想想，其实不是每个人都能这么慷慨的打车，慷慨的接受司机的黑刀的，人家宁愿走回去，也不愿意打车，有志气！一路车子滑到了水文所门口。</p>
<p>美妙的，又不美妙的一个下班旅途&hellip;&hellip;</p>
<p>今天早晨，我按预想的，早起约半小时，洗漱完毕，早早出门，结果刚下楼就摔了个跟头，有点无语&hellip;&hellip;</p>
<p>走到铁心桥主干道上，看到大路上全是人，都在等车，我犹豫了一会，往前走了点，到通往三江的十字路口，一路上看到的都是焦急等待的人，打电话说要迟点到的人，抢上出租车的人。在十字路口，等了约二十几分钟，一部能坐的车都没有，今天的大路，根本看不到路面，约有20公分的雪，压在路面上，一部部车就在路上滑行。好不容易，来了一辆空车，居然好像是我昨天上班坐的那辆车，依然是送到小行小区地铁站。一路上看到很多人徒步在行走，也有想拦我们车的，结果都很遗憾的发现我们车里已经坐满了。前面有辆卡车，很明显的看到卡车的后轮子在打滑。晃晃悠悠，就这样到了小行小区地铁站。</p>
<p>一路地铁过来新街口，不在话下。出了地铁站，发现雪更大了。我心里总嘀咕，这样大的雪，政府应该出台政策干预了，要么让企业放假，要么就把交通搞好。今天早上到公司，晨会宣布今天迟到不算，我今天迟到了不到5分钟，还算比较幸运了。呵呵。</p>
<p>好了不多写了咯&hellip;&hellip;</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=118" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=118</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[去掉MSN的广告栏 最绿色有效的办法]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=5" label="技术拾荒" /> 
	  <updated>2008-01-04T12:41:00+08:00</updated>
	  <published>2008-01-04T12:41:00+08:00</published>
		  <summary type="html"><![CDATA[<div class="bvMsg" id="msgcns!9719949cfaa55eaa!681">
<div><font color="#ff6600">最近在网上看到一位高人破解的MSN8.1方法觉得很是不错：</font></div>
<div>
<p><strong>Windows&nbsp;Live&nbsp;Messenger&nbsp;8.1去广告方法：</strong></p>
<p>百度一个ResHacker或者Restorator软件，下载安装打开。&nbsp; <br />在C:\Program&nbsp;Files\MSN&nbsp;Messenger下面找到msgsres.dll文件。</p>
<p><strong>一、去除主面板广告:</strong>打开4004-923号资源，查找里面的ID=Atom(SSConstrainer)<br />将其前面的layoutpos=top改为layoutpos=none。&nbsp; </p>
<p><strong>二、去除聊天对话框广告:</strong>打开4004-920号资源，查找里面的id=atom(adbannergutter)<br />将其前面的layoutpos=bottom改为layoutpos=none。&nbsp;</p>
</div>
</div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=114" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=114</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[XmlDocument如何转成XmlReader]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=4" label="程序研发" /> 
	  <updated>2007-12-26T16:15:08+08:00</updated>
	  <published>2007-12-26T16:15:08+08:00</published>
		  <summary type="html"><![CDATA[<p><font color="#ff0000">总是记不住XmlDocument如何转成XmlReader，很糟糕，还是记下来，省的以后又浪费时间琢磨。</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#339966"> '转为XmlReader<br /></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Public&nbsp;xmlstring As String<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim xd As New Xml.XmlDocument<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xd.LoadXml(xmlstring)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim xmlr As Xml.XmlReader<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlr = Xml.XmlReader.Create(New IO.StringReader(xd.OuterXml))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#339966">'转为DataTable<br /></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim ds As New Data.DataSet<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds.ReadXml(xmlr)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim dt As System.Data.DataTable = ds.Tables(&quot;item&quot;)<br /><br /><font color="#ff0000">总是记不住字符串如何转成BASE64编码，也记下：</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim cc As String = &quot;字符串字符串&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim bt() As Byte = System.Text.Encoding.Default.GetBytes(cc)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim b64str As String = Convert.ToBase64String(bt)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(b64str)<br /></p>
<p><font color="#ff0000">总是记不住图片如何转成BASE64编码，也记下：<br /></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim PhotoBase64 As String<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Not DocumentObj.TaxTempletDesign.BackgroundImage Is Nothing Then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim PhotoStream As New IO.MemoryStream<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DocumentObj.TaxTempletDesign.BackgroundImage.Save(PhotoStream, Imaging.ImageFormat.Jpeg)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim PhotoByte() As Byte = PhotoStream.ToArray<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhotoBase64 = Convert.ToBase64String(PhotoByte)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PhotoBase64 = &quot;&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=112" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=112</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[炒股巨亏 特做兼职]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=10" label="极品收藏" /> 
	  <updated>2007-11-15T14:10:12+08:00</updated>
	  <published>2007-11-15T14:10:12+08:00</published>
		  <summary type="html"><![CDATA[因本人炒股巨亏，经济困难，特做兼职，有意者来电来函咨询，本人承接以下业务：&nbsp;<br /><br />苦力搬运，装卸，车工，钳工，焊工，水电工，瓦工，砸墙，砌墙，筛沙，油漆，通下水道，贴瓷砖，拆洗油烟机，拆装空调，Vb，C++，&nbsp;.NET，C#，Java，j2ee，&nbsp;j2me，asp，delphi，php，汇编，PC游戏开发，网络游戏代练。网络维护管理,重装系统，电脑维修，三维建模，照片上色，平面设计，建筑效果图，flash动画，QQ挂级，硬件设计,电路板设计，单片机开发,&nbsp;四六级替考，办证，代开发票，黑枪，黑车，暗杀，洗钱，要债，洗头，搓澡，按摩，刮痧,拔火罐，算命，割双眼皮......<br />另：本人长期代写小学生寒、暑假作业。替小学生欺负其他同学（年龄在10岁以下），代替学生父母开家会。<br /><br />收费标准：<br />寒假作业:（48页1-3年级）25元<br />　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（48页4-6年级）35元<br />暑假作业:（62页1-3年级）35元<br />　　　&nbsp;&nbsp;&nbsp;（62页4-6年级）45元<br />欺负同学:（身高1.3m-1.4m）45元<br />　　　&nbsp;&nbsp;&nbsp;（身高1.4m-1.6m）65元<br />　　　&nbsp;&nbsp;&nbsp;（身高1.6m-1.8m）85元<br />　　　&nbsp;&nbsp;&nbsp;（身高1.8m以上）价格面议<br />打老师：女老师（75元）<br />　　　　男老师（100元）<br />　　　　体育老师（价格面议）<br />代开家长会：一律50元]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=111" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=111</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[再次装反IIS和.NET FRAMWORK2.0的顺序]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=5" label="技术拾荒" /> 
	  <updated>2007-09-29T17:50:31+08:00</updated>
	  <published>2007-09-29T17:50:31+08:00</published>
		  <summary type="html"><![CDATA[<p>新装电脑，一不小心就把IIS和.NET FRAMWORK2.0的顺序给装反了，装反了也罢，行内人就知道FW2.0在这种情况下是不向IIS注册自己的，这种事情也不是第一次碰到了，每次都是DOS重新注册。可是老是忘记路径，这次记下来吧：</p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -u</p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i</p>
<p>再忘记就可以查到咯，呵呵。</p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=109" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=109</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP数据库连接以及查询]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=4" label="程序研发" /> 
	  <updated>2007-08-27T13:37:30+08:00</updated>
	  <published>2007-08-27T13:37:30+08:00</published>
		  <summary type="html"><![CDATA[<p>&lt;%<br />'该代码可以执行RS读取,以及其他任何单SQL语句(SQL不能用分号分开)<br />Set rs_cmd = Server.CreateObject (&quot;ADODB.Command&quot;)<br />rs_cmd.ActiveConnection =&nbsp; &quot;provider=microsoft.jet.oledb.4.0;&quot; &amp; &quot;data source = &quot; &amp; server.mappath(&quot;test.mdb&quot;)<br />rs_cmd.CommandText = &quot;update Users set User_name='GGG' where User_id=1&quot; <br />Set rs = rs_cmd.Execute<br />%&gt;</p>
<p>&lt;%<br />'该代码省略了可以执行RS读取,以及其他任何单SQL语句(SQL不能用分号分开)<br />Set rs_cmd = Server.CreateObject (&quot;ADODB.Command&quot;)<br />rs_cmd.ActiveConnection =&nbsp; &quot;provider=microsoft.jet.oledb.4.0;&quot; &amp; &quot;data source = &quot; &amp; server.mappath(&quot;test.mdb&quot;)<br />rs_cmd.CommandText = &quot;update Users set User_name='GGG' where User_id=1&quot; <br />rs_cmd.Execute<br />%&gt;</p>
<p>&lt;%<br />'该代码可以执行RS读取<br />Set conn = server.createobject(&quot;adodb.connection&quot;)<br />conn.open =&nbsp; &quot;provider=microsoft.jet.oledb.4.0;&quot; &amp; &quot;data source = &quot; &amp; server.mappath(&quot;test.mdb&quot;)<br />Set rs = server.createobject(&quot;adodb.recordset&quot;)<br />rs.open &quot;select * from users&quot;,Conn,2,2 <br />%&gt;<br /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=107" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=107</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[规则文件批量下载精灵]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=4" label="程序研发" /> 
	  <updated>2007-07-06T00:20:20+08:00</updated>
	  <published>2007-07-06T00:20:20+08:00</published>
		  <summary type="html"><![CDATA[<p><font color="#003300">常常在网上看到一些软件，因为由于论坛的限制，网网被上传者用RAR打包成一个个连续的小压缩包，摆成一长串，放在网络上。真的是很受不了一个一个点着去下载！</font></p>
<font color="#003300">
<p><font color="#003300">常常在网上看到一些漂亮的图片，习惯性的右键保存，或者索性用迅雷之类的下载工具来个批量下载，很可惜的是，迅雷只能支持一个变量，即只支持一个变动数字，或者同时变动相同的数字，并且，迅雷不会在批量下载的时候帮我把文件跟着网站的不同路径来把分文件夹摆放，全部放在一起不断的重名&hellip;&hellip;</font></p>
<p><font color="#003300">不想多说了，我想，没碰过以上情况的朋友可能认为这个软件没大价值！不过我敢说，碰过以上情况的朋友，一定会喜欢上它的。喜欢就来使用吧。它支持多线程，双变量（一般情况下也够用了吧），自动分文件夹，批量建立文件夹群等功能。不想再受下载工具约束的朋友，赶紧来试试吧。呵呵&hellip;&hellip;</font></p>
<p>软件界面很通俗易懂，没有多余的TOOLTIP，一般的朋友都能看懂，如果有不会使用的朋友欢迎在此处提问。</p>
</font>
<p><font color="#003300"><strong>软件名称: </strong>规则文件批量下载精灵</font></p>
<p><font color="#003300"><strong>运行环境:. </strong>WIN NT 操作系统 + .NET FRAMEWORK 2.0 </font></p>
<p>&nbsp;<strong><font color="#ff6600">注意：<br /></font></strong>使用<font color="#003300">规则文件批量下载精灵</font>的计算机必须安装有微软的.net Framework 2.0，本站也提供下载。</p>
<p><font color="#003300"><strong>软件性质: </strong>完全免费</font></p>
<p><font color="#003300"><strong>软件作用:</strong>批量下载网络上常见的成批规则文件，请注意预处理文件夹才能使得下载成功。支持多线程下载。</font></p>
<p><font color="#003300"><strong>软件截图:</strong></font></p>
<p><img height="505" alt="" src="http://lvzz.zwms.net/attachments/month_0707/t2007761260.gif" width="681" /></p>
<p><img height="505" alt="" src="http://lvzz.zwms.net/attachments/month_0707/c20077612624.gif" width="681" /></p>
<p><font color="#003300"><strong>下载地址:&nbsp; </strong></font></p>
<p><font color="#800080"><a href="http://lvzz.zwms.net/software/DBAT.exe">&nbsp;点击下载: 规则文件批量下载精灵</a></font></p>
<p><font color="#003300"><font color="#800080"><a href="http://lvzz.zwms.net/software/dotnetfx.exe">&nbsp;点击下载:&nbsp;.NET FRAMEWORK 2.0</a></font> </font></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=106" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=106</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[VB.NET多线程开发实例 ]]></title>
	  <author>
		 <name>bczwx</name>
		 <uri>http://lvzz.zwms.net/</uri>
		 <email>lvzz.net@gmail.com</email>
	  </author>
	  <category term="" scheme="http://lvzz.zwms.net/default.asp?cateID=4" label="程序研发" /> 
	  <updated>2007-07-04T02:09:10+08:00</updated>
	  <published>2007-07-04T02:09:10+08:00</published>
		  <summary type="html"><![CDATA[<p>VB.NET（Visual&nbsp;Basic.NET）是为适应Microsoft&nbsp;.NET框架的需要，对Visual&nbsp;Basic进行了重大改造后的开发工具。它比Visual&nbsp;Basic&nbsp;6.0功能更强大，更易于使用。其中最重要的变化就是对象继承，在VB.NET中，所有可管理的类型都衍生自System.Object。作为编程工具，最重要的一个特性就是垃圾碎片的回收，它由CLR（Common&nbsp;Language&nbsp;Runtime）进行控制，并提供更好的内存管理功能。通用的类型定义可以提供更好的互操作性和协同工作能力，因此，VB.NET显得更强大、更具可靠性。&nbsp;在VB.NET中，大多数CLR内建的类型都在System名字空间里已经定义了。比如：System.Object,&nbsp;System.Int32,&nbsp;和&nbsp;System.String。要注意的是：一个名字空间可能嵌在另一个名字空间内，象System.Data里就有System.Data.DataSet的类。&nbsp;代表是CLR编程模型很重要的一个新概念。代表是一个特殊类型的可管理的类，当你创建一个代表的实例时，你必须提供一个带有匹配签名的方法执行的地址，一旦创建了一个代表的实例，调用方法将变的很容易。&nbsp;过去，我们利用VB开发多线程的应用程序时，是一件很令人痛苦的事，经常是多线程的程序运行是会变成多错误的程序！但在VB.NET中，这种状况已经大为改观。现在，我们利用VB.NET处理多线程和利用JAVA处理多线程一样简单了。下面我们就举个例子，来看看VB.NET的多线程吧！&nbsp;<br /><br />下面是多线程程序threadtest.vb的代码：&nbsp;<br />　&nbsp;&nbsp;<br /><font color="#3366ff">imports&nbsp;System&nbsp;<br />imports&nbsp;System.Threading&nbsp;<br />　&nbsp;&nbsp;<br />public&nbsp;class&nbsp;AClass&nbsp;<br />　&nbsp;&nbsp;<br />public&nbsp;sub&nbsp;Method1()&nbsp;<br />Dim&nbsp;i&nbsp;as&nbsp;integer&nbsp;&nbsp;<br />For&nbsp;i&nbsp;=&nbsp;1&nbsp;to&nbsp;100&nbsp;<br />Console.Writeline(&quot;这是类AClass方法method1的内容&quot;,i)&nbsp;<br />next&nbsp;<br />end&nbsp;sub&nbsp;<br />　&nbsp;&nbsp;<br />public&nbsp;sub&nbsp;Method2()&nbsp;<br />Dim&nbsp;i&nbsp;as&nbsp;integer&nbsp;&nbsp;<br />For&nbsp;i&nbsp;=&nbsp;1&nbsp;to&nbsp;100&nbsp;<br />Console.Writeline(&quot;这是类AClass方法method2的内容&quot;,i)&nbsp;<br />next&nbsp;<br />end&nbsp;sub&nbsp;<br />　&nbsp;&nbsp;<br />end&nbsp;class&nbsp;<br />　&nbsp;&nbsp;<br />public&nbsp;class&nbsp;ThreadTest&nbsp;<br />　&nbsp;&nbsp;<br />public&nbsp;shared&nbsp;sub&nbsp;Main()&nbsp;<br />dim&nbsp;obj&nbsp;as&nbsp;new&nbsp;aclass&nbsp;<br />dim&nbsp;th1,th2&nbsp;as&nbsp;thread&nbsp;<br />　&nbsp;&nbsp;<br />th1=new&nbsp;Thread(new&nbsp;ThreadStart(addressof&nbsp;obj.method1))&nbsp;<br />th1.start&nbsp;<br />　&nbsp;&nbsp;<br />th2=new&nbsp;Thread(new&nbsp;ThreadStart(addressof&nbsp;obj.method2))&nbsp;<br />th2.start&nbsp;<br />　&nbsp;&nbsp;<br />dim&nbsp;i&nbsp;as&nbsp;integer&nbsp;<br />For&nbsp;i=&nbsp;1&nbsp;to&nbsp;100&nbsp;<br />Console.WriteLine(&quot;Main方法里的内容&quot;,i)&nbsp;&nbsp;<br />Next&nbsp;&nbsp;<br />end&nbsp;sub&nbsp;<br />　&nbsp;&nbsp;<br />end&nbsp;class</font>&nbsp;<br />　&nbsp;&nbsp;<br />现在，来让我们剖析一下上面的例子：&nbsp;<br />1.我们创建了我们自己的类AClass，并创建了两个方法：Method1和Method2。&nbsp;<br />2.这两个方法很简单，只有一个For循环，向输出设备输出一些信息。&nbsp;<br />3.我们还定义了另外一个类ThreadTest来使用上面创建的类AClass。&nbsp;<br />4.在Main()方法中，我们创建了类Thread的实例。&nbsp;<br />5.类Thread可以在System.Threading名字空间里得到，它定义了处理线程的属性和方法。&nbsp;<br />6.在类Thread的构造器中，我们使用了类ThreadStart，类ThreadStart是一个代表，标志着当一个线程开始时就开始执行定义的方法。&nbsp;<br />7.为了执行定义的方法，我们实际调用的是线程的Start()方法。&nbsp;<br />8用VBC来编译上面的程序：&nbsp;vbc&nbsp;/out:threadtest.exe&nbsp;threadtest.vb&nbsp;<br />9.运行编译后的程序，我们将会看到我们定义的两个方法和main()方法的混合输出，这就说明每一个方法都在自己的线程下运行。&nbsp;<br />10.除了上面的方法，线程还有下面常用的方法：&nbsp;<br />Stop():停止线程的运行。&nbsp;<br />Suspend()：暂停线程的运行。&nbsp;<br />Resume()：继续线程的运行。&nbsp;<br />Sleep()：停止线程一段时间（单位为毫秒）。&nbsp;<br />　&nbsp;<br />上面只是VB.NET多线程的一个简单的例子，希望对大家有所启发！<br /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://lvzz.zwms.net/default.asp?id=105" /> 
	  <id>http://lvzz.zwms.net/default.asp?id=105</id> 
  </entry>	
		
</feed>