<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[麦壳饼个人博客]]></title>
<link>http://www.mysticboy.cn/</link>
<description><![CDATA[创造机会的人是勇者；等待机会的人是愚者]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[mysticboy@live.com(麦壳饼)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>麦壳饼个人博客</title>
	<url>http://www.mysticboy.cn/images/logos.gif</url>
	<link>http://www.mysticboy.cn/</link>
	<description>麦壳饼个人博客</description>
</image>

			<item>
			<link>http://www.mysticboy.cn/article.asp?id=280</link>
			<title><![CDATA[反射属性时 PropertyInfo 中的 PropertyType属性 带有泛型 Nullable]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Fri,23 Dec 2011 18:51:00 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=280</guid>
		<description><![CDATA[<div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code4140);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mysticboy.cn/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code4140><br/> <br/><br/>PropertyInfo pi = typeof(T).GetProperty(&#34;假想T属性&#34;)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (pi == null)<br/><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw new Exception (&#34;未找到该属性&#34;);<br/><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;&nbsp;&nbsp;&nbsp;&nbsp;else<br/><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type t = pi.PropertyType;//默认取得该属性<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //判断是否为泛型 ， 并且判断是否具有类型Nullable&lt;&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (pi.PropertyType.IsGenericType &amp;&amp; pi.PropertyType.GetGenericTypeDefinition() == typeof(Nullable&lt;&gt;))<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (pi.PropertyType.GetGenericArguments().Length &gt; 0)<br/><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;{<br/><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;t = pi.PropertyType.GetGenericArguments()[0];//默认第一个参数为正真的类型，数据类型。。<br/><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;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object ooo = dr[&#34;Value&#34;];//下面演示了如何把DBNULL的object&nbsp;&nbsp;赋指定类型的默认值。 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (ooo == DBNull.Value)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ooo = GetDefaultValue(t);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pi.SetValue(obj, Convert.ChangeType(ooo, t), null);<br/><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;public static object GetDefaultValue(Type parameter)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var defaultGeneratorType =<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typeof(DefaultGenerator&lt;&gt;).MakeGenericType(parameter);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return defaultGeneratorType.InvokeMember(<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;GetDefault&#34;,<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BindingFlags.Static |<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BindingFlags.Public |<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BindingFlags.InvokeMethod,<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;null, null, new object[0]);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;&nbsp;class DefaultGenerator&lt;T&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public static T GetDefault()<br/><br/>&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;&nbsp;&nbsp;&nbsp;&nbsp;return default(T);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/></div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=279</link>
			<title><![CDATA[新疆挨踢人第一期 文案推荐 和 牛人推荐 ]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[生活日志]]></category>
			<pubDate>Sun,20 Nov 2011 13:11:21 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=279</guid>
		<description><![CDATA[新疆挨踢人第一期&nbsp;&nbsp;文案推荐 和 牛人推荐<br/><br/>文案推荐:<br/><br/>大宗物资运销解决方案（v2.0.1）<br/> <a href="http://www.xjiter.com/forum.php?mod=viewthread" target="_blank" rel="external">http://www.xjiter.com/forum.php?mod=viewthread</a>&amp;tid=27&amp;fromuid=1 <br/>这个仅限核心的VIP人员查看， 只有分享了文案的才可以有VIP权限<br/><br/> <br/><br/>牛人推荐:<br/><br/>(排名按照发贴先后)<br/> 郭利斌丰富的机电类安防类设备安装经验,能独立完成机电类、安防、计算机网络招标<br/> <a href="http://www.xjiter.com/forum.php?mod=viewthread" target="_blank" rel="external">http://www.xjiter.com/forum.php?mod=viewthread</a>&amp;tid=28&amp;fromuid=1<br/><br/><br/> <br/>刘冬-主要钻研开源框架(包括Spring.NET、NHibernate、Castle)<br/> <a href="http://www.xjiter.com/forum.php?mod=viewthread" target="_blank" rel="external">http://www.xjiter.com/forum.php?mod=viewthread</a>&amp;tid=7&amp;fromuid=1<br/> <br/>陈伟平-嵌入式Linux 裁减、Linux驱动、电路设计、单片机设计、单片机编程<br/> <a href="http://www.xjiter.com/forum.php?mod=viewthread" target="_blank" rel="external">http://www.xjiter.com/forum.php?mod=viewthread</a>&amp;tid=25&amp;fromuid=1 <br/><br/>自由职业者钟德荣<br/> <a href="http://www.xjiter.com/forum.php?mod=viewthread" target="_blank" rel="external">http://www.xjiter.com/forum.php?mod=viewthread</a>&amp;tid=11&amp;fromuid=1 <br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=278</link>
			<title><![CDATA[不能和老板做朋友]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[生活日志]]></category>
			<pubDate>Thu,27 Oct 2011 10:52:37 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=278</guid>
		<description><![CDATA[一家企业就象古代的一个小王国,上司/老板相当于“国王”。在古代国王称为“寡人”、“朕”、或“孤王”，因为没有人和国王交朋友或者是不敢和国王交朋友，因为伴君如伴虎，所以这些国王或皇帝总是孤独的。那么在现代的企业里，也不要和上司/老板交朋友，否则于公于私都没有什么好处。主要有以下原因：<br/><br/>1、员工一旦和上司/老板交上朋友之后，会认不清自己的角色。我国应该是世界上封建社会历史最长的国家，封建社会的一个最大特点就是讲究等级制度，这个因素一直影响至今，所以在国内的企业里，还是比较讲究的，每个人都必须认清自己在企业里的角色。如果你从一位员工变成上司/老板的朋友，如何面对你的上司？如何面对你的同事？很有可能你会超级报告，让你的上司对你“怀恨在心”；很有可能你会举止失措，分不清上班时间和下班时间，做一些让上司/老板下不了台的事；很有可能你会“皇上不急太监急”，结果“关心则乱”；很有可能你会变得越来越自我，越权行事，甚至滥用权力，打乱企业内的等级秩序或工作流程，成为企业“内乱”的根源，最终很可能被“牺牲”。<br/><br/>2、当你和上司/老板交上朋友之后，别人认为你是上司/老板的人，甚至会认为你是上司/老板“狗腿子”、“间谍”或是“即得利益者”等等，总之你是他的对立面，不会得到企业内其他员工的信任，他们会猜疑：你的能力、水平、人品等等。从而不和你真心交流，对你敬而远之，最终你成为一个盲人或聋子，你无法正确获得你所需要的各类信息，让你决策失误，给企业带来损失，甚至成为别人的笑柄；或者利用你和上司/老板的关系，干一些有利于他私利、私欲的事，甚至干脆把你当“枪”命名，以达到其不可告人的目的。<br/><br/>3、当你成为上司/老板的朋友之后，当你做错事时，你的上司很可能对另眼相看，法外开恩，你就成了破坏企业规章制度的“先锋”。你的下属会认为你仗着上司/老板这个后对号，做事无所顾忌，从而对你另眼相看。<br/><br/>4、当你成为上司/老板的朋友之后，你作为朋友，不论是公事还是私事，你都很有可能过分关心，很有可能让你失去分寸，就成一种干涉，结果导致上司/老板对你不满意。这也是为什么一些上司/老板不自在，最终的结果只有炒你的鱿鱼。人与人之间相处太近，反而不好，有时候需要讲究“距离产生美”，就象二只刺猬在一起，只有保持一定的距离，才会相安无事。<br/><br/>5、当你成为上司/老板的朋友之后，你无法平衡企业里的各种利益关系。企业是一个利益综合体，里面存在着各种各样利益关系，一旦你卷入利益冲突，很可能受伤，甚至成为“丢卒保车”的“卒”。<br/><br/>6、更惨的是：自以为是上司/老板的朋友，而上司/老板没有把你当成他的朋友。当你以上司/老板朋友自居的时候，你的心态、观念、作风等等都有可能发生一些你无法自知的变化，从而做出一些令上司/老板难堪、上司无法容忍、下属不能接受、同事无法原谅的事来。此时，你在这家公司的日子差不多就到头了。<br/><br/>在企业里上司/老板把你当朋友可以（事实上，上司/老板很少会把企业内的员工当作是他的朋友，不可能会和你交朋友，这是利益所决定的。）自己却不能把自己看成是上司/老板的朋友（根据笔者的经验，连同事最好也不要成为朋友！因为同事就有利益关系，有利益关系就不可能成为真正的朋友！）无论你在企业内表现如何优秀，无论你的人品是多么的优秀，请保持你清醒的头脑，尽量和上司/老板保持距离。只有你和上司/老板保持一定的距离，才有可能比较公正，公平地处理问题，才能获得上司、同事、下属的信任，才能保持独立的人格，才能在企业里进退有据。<br/><br/>尽管我们不能和上司/老板交朋友，但必须做个值得上司/老板信任的员工！<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=277</link>
			<title><![CDATA[一句SQL搞定分页]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,15 Sep 2011 17:04:25 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=277</guid>
		<description><![CDATA[xpsql=“用户名 like &#39;王%&#39;”; sql = string.Format(<br/>@&#34;Sel&#101;ct {0}&nbsp;&nbsp;FROM <br/>&nbsp;&nbsp;&nbsp;&nbsp; (Sel&#101;ct&nbsp;&nbsp;&nbsp;&nbsp;row_number() over ( o&#114;DER BY {1} ) as keelid,{0} FROM {2}&nbsp;&nbsp;{3} )<br/>&nbsp;&nbsp;AS&nbsp;&nbsp;KeelTemp <br/>Wh&#101;re KeelTemp.keelid &gt;={4} AND KeelTemp.keelid &lt;={4}+{5}<br/>&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, &#34;用户ID,用户名,密码,电子邮件&#34;, &#34;用户ID&#34;&nbsp;&nbsp; ,&nbsp;&nbsp;&#34;[用户表]&#34;, xpsql==null ?&#34;&#34;:&#34;Wh&#101;re &#34;+ xpsql , 0, 50);<br/> <br/>　　其中参数4 是 Index 是 从哪行数据开始取 ， 参数5是取多少行， 参数0是表的所有列， 参数1 是第一个列， 参数 2 是表明， 参数3 是 wh&#101;re查询条件<br/> <br/>剩下的是写控件， 这点应该很简单吧！我是CS程序， 拖几个控件， 就OK了。<br/> <br/>这个方法在KeelKit 里面有集成， 方法是<br/> <br/>public List&lt;T&gt; Sel&#101;ctEntitys(string&nbsp;&nbsp;&nbsp;&nbsp;filter ,int index, int count )<br/> <br/>AD一下， 最新版本的KeelKit 还没发布， 晚些时候发布。<br/> <br/> <br/> <br/>我的QQ是100860505 想认识些牛人！<br/> <br/>去年之前一直用C做嵌入式Linux 下的应用层！去年下半年猜开始正儿八经做C# 方面的东西！还希望大家多多指教！<br/><br/><a href="http://www.cnblogs.com/MysticBoy/archive/2011/09/15/2177762.html" target="_blank" rel="external">http://www.cnblogs.com/MysticBoy/archive/2011/09/15/2177762.html</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=276</link>
			<title><![CDATA[KeelKit 说明文档]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Fri,09 Sep 2011 18:35:28 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=276</guid>
		<description><![CDATA[说明:<br/><br/>常见问题:<br/>&#160;&#160;&#160;&#160;一、为什么我找不到KeelKit菜单？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;安装后 打开VS2010 如果菜单中没有KeelKit <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;请打开 工具--》外界程序管理器 看其中是否有KeelKit 插件<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;如果依然没有，请查看<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;我的文档\Visual Studio 2010\Addins&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;下有没有 KeelKit.AddIn， 如果没有， 则可能是安装错误<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这时请复制一份&nbsp;&nbsp; C:\Program Files\KeelKit\KeelKit.AddIn&nbsp;&nbsp;到 我的文档\Visual Studio 2010\Addins<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 修改 &lt;Assembly&gt;KeelKit.dll&lt;/Assembly&gt;&nbsp;&nbsp;为 &lt;Assembly&gt;C:\Program Files\KeelKit\KeelKit.dll&lt;/Assembly&gt;&nbsp;&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;保存后， 请再次在VS2010中打开工具-》外界程序管理器 是否有此插件， 如果依然没有，请联系开发者<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&#160;&#160;&#160;&#160;二、为什么KeelKit菜单是灰色的？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;有时候KeelKit菜单会出现灰色。 无法使用<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;请在工具-》外接程序需管理器中 勾掉， 不加载，&nbsp;&nbsp;然后确定。 再次打开 外接程序管理器， 打上勾 ， 点击确定。 <br/><br/><br/><br/>&#160;&#160;&#160;&#160;三、为什么KeelKit不自动写入链接字符串到 设置和config 文件中？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;你需要手动点击 设置&nbsp;&nbsp;然后在里面新建一项 后保存， 然后点开 KeelKit 的项目解决方案配置 ， 点击确定， 才会自动将连接字符串自动写入程序中。 <br/><br/>&#160;&#160;&#160;&#160;四、为什么部分菜单不显示，比如 配置解决方案？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;未打开解决方案时 配置解决方案 菜单不会显示！<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;未配置解决方案 未指定Model项目时 ， 不显示 Model生成菜单 其他菜单诸如此类！<br/><br/>数据库支持<br/>暂时Model 生成支持Access 和 MSSQL ， DBHelper 支持MySQL ACCESS MSSQL　　等。 <br/><br/>代码生成支持<br/>C#&nbsp;&nbsp;VB&nbsp;&nbsp;F#&nbsp;&nbsp;C++&nbsp;&nbsp;IronPython&nbsp;&nbsp;C(特殊方式支持)<br/><br/><br/><br/>联系方式 <br/>QQ群 60118875<br/>QQ号&nbsp;&nbsp;100860505 <br/><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=275</link>
			<title><![CDATA[JIRA 数据恢复 HSQL 到MYSQL]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sun,28 Aug 2011 10:56:12 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=275</guid>
		<description><![CDATA[之前忘记了mysql, 直接是在默认的HSQL下运行， 老是提示所谓的不安全。 <br/>本人也被这句话困扰了很久。 很担心安全问题， 比较是公司的工作任务。 除了问题不好交代的！<br/><br/>过程如下:<br/>先备份数据、、然后根据下面的方法安装好<br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mysticboy.cn/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent"> JIRA4.1安装与破解（已经过测试）<br/><br/>1.首先去下载JIRA <br/>2.创建数据库<br/>3.设置环境变量和修改配置文件 <br/>4.启动Tomcat安装JIRA<br/>5.破解JIRA<br/><br/>1.下载JIRA <br/>&#160;&#160;&#160;&#160;下载地址：<a href="http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa" target="_blank" rel="external">http://www.atlassian.com/software/jira/JIRADownloadCenter.jspa</a> <br/>&#160;&#160;&#160;&#160;先点击show all然后下下载JIRA 4.1 Enterprise - Standalone (ZIP Archive)<br/>下载完后将其解压。<br/>2,创建数据库(我使用的MYSQL数据库)<br/>&#160;&#160;&#160;&#160;cr&#101;ate database jiradb character set utf8;<br/>3.设置环境变量和修改配置文件 <br/>&#160;&#160;&#160;&#160;设置环境变量 <br/>&#160;&#160;&#160;&#160;同时按下window+pause,在弹出的对话框中选择Advance--&gt;Environment Variables <br/>&#160;&#160;&#160;&#160;点击New设置<br/>　　&nbsp;&nbsp; name: CATALINA_HOME <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value: E:\jira-enterprise-4.1<br/>　　然后修改PATH：增加 %CATALINA_HOME%\bin;<br/><br/>修改E:\jira-enterprise-4.1\atlassian-jira\WEB-INF\classes<br/>下的jira-application.properties ：<br/>&#160;&#160;&#160;&#160;设置jira.home = E:\\jira4.1_home （此路径必须存在且不与安装目录相同）<br/><br/>修改E:\jira-enterprise-4.1\conf<br/>下的server.xml(给出的是完整代码可以直接复制，修改一下用户名密码即可):<br/>&lt;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&gt;<br/>&lt;Server port=&#34;8005&#34; shutdown=&#34;SHUTDOWN&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;Service name=&#34;Catalina&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Connector port=&#34;8080&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxHttpHeaderSize=&#34;8192&#34; maxThreads=&#34;150&#34; minSpareThreads=&#34;25&#34; maxSpareThreads=&#34;75&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enableLookups=&#34;false&#34; redirectPort=&#34;8443&#34; acceptCount=&#34;100&#34;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connectionTimeout=&#34;20000&#34; disableUploadTimeout=&#34;true&#34; /&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Engine name=&#34;Catalina&#34; defaultHost=&#34;localhost&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Host name=&#34;localhost&#34; appBase=&#34;webapps&#34; unpackWARs=&#34;true&#34; autoDeploy=&#34;true&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Context path=&#34;&#34; docBase=&#34;${catalina.home}/atlassian-jira&#34; reloadable=&#34;true&#34;&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Resource name=&#34;jdbc/JiraDS&#34; auth=&#34;Container&#34; type=&#34;javax.sql.DataSource&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username=&#34;root&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password=&#34;123456&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driverClassName=&#34;com.mysql.jdbc.Driver&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url=&#34;jdbc:mysql://localhost/jiradb?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF8&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Resource name=&#34;UserTransaction&#34; auth=&#34;Container&#34; type=&#34;javax.transaction.UserTransaction&#34;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;factory=&#34;org.objectweb.jotm.UserTransactionFactory&#34; jotm.timeout=&#34;60&#34;/&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Manager className=&#34;org.apache.catalina.session.PersistentManager&#34; saveOnRestart=&#34;false&#34;/&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Context&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Host&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Engine&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&lt;/Service&gt;&nbsp;&nbsp;<br/>&lt;/Server&gt; <br/>修改E:\jira-enterprise-4.1\atlassian-jira\WEB-INF\classes<br/>下的entityengine.xml ：<br/>&#160;&#160;&#160;&#160;&lt;datasource name=&#34;defaultDS&#34; field-type-name=&#34;mysql&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;若不为HSQLDB则同时删除schema-name=&#34;PUBLIC&#34;这句<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;...<br/>&#160;&#160;&#160;&#160;/&gt;<br/><br/>安装<br/>&#160;&#160;&#160;&#160;启动bin下startup.bat，打开<a href="http://localhost:8080" target="_blank" rel="external">http://localhost:8080</a> 进入安装。<br/>&nbsp;&nbsp;&nbsp;&nbsp;注：如果出现jarhome　unlock的错误，请到上面设置的jarhome目录下删除.jira-home.lock 文件，然后重新启动。<br/><br/>破解：<br/>把连同一起的atlassian-jira.rar包解压后，把到对应的目录下，然后重新启动JIRA，在注册的授权码中就可以使用明文注册了如下：<br/>Description=JIRA\: COMMERCIAL<br/>CreationDate=2009-10-25<br/>ContactName=haha@haha.haha<br/>jira.LicenseEdition=ENTERPRISE<br/>ContactEMail=haha@haha.haha<br/>Evaluation=false<br/>jira.LicenseTypeName=COMMERCIAL<br/>jira.active=true<br/>licenseVersion=2<br/>MaintenanceExpiryDate=2099-10-24<br/>o&#114;ganisation=haha<br/>jira.NumberOfUsers=-1<br/>ServerID=B6FW-B4KW-J1A3-4DQB<br/>LicenseID=LID<br/>LicenseExpiryDate=2099-10-24<br/>PurchaseDate=2009-10-25</div></div><br/><br/><br/>然后安装完毕后请登录系统，默认情况下是要修改<br/>jira.paths.set.allowed=true<br/>这个界面上有提示<br/>还要输入上面那个明文注册<br/>把备份文件的完整路径也输入上。 <br/>点击导入。 <br/>等一会就OK了。 <br/><br/><br/>之前一直方法不对。 没搞定。 郁闷。 <br/>现在OK了]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=274</link>
			<title><![CDATA[读取MIS文件的ProductCode Product name]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[好文转载]]></category>
			<pubDate>Thu,07 Jul 2011 10:45:33 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=274</guid>
		<description><![CDATA[Vote<br/><br/><br/><br/>Hi,<br/> <br/> <br/> <br/>I was having some trouble running Andy&#39;s code, so I wrote a quick VBscri&#112;t example that outputs the ProductName and ProductCode.&nbsp;&nbsp;The script requires an MSI name at the command-line and isn&#39;t especially robust, but worked on several MSIs for me. Output and script below.<br/> <br/> <br/> <br/>It should be noted, that it&#39;s easier to just load up o&#114;CA o&#114; another MSI editor to just look at the ProductCode property.<br/> <br/> <br/> <br/>Example command-line and output for GetMSIProductCode.vbs<br/> <br/>C:\&gt;cscript GetMSIProductCode.vbs ccmsetup.msi<br/> <br/>Microsoft (R) Windows Script Host Version 5.7<br/> <br/>Copyright (C) Microsoft Corporation. All rights reserved.<br/> <br/> <br/> <br/>Database (MSI) = ccmsetup.msi<br/> <br/>ProductName&nbsp;&nbsp;&nbsp;&nbsp;= SMS Client Setup Bootstrap<br/> <br/>ProductCode&nbsp;&nbsp;&nbsp;&nbsp;= {292C90B8-E8FA-47A3-92BB-F2F62AC109FC}<br/> <br/> <br/> <br/><br/><br/>Code Snippet<br/> <br/>&#39; GetMSIProductCode.vbs<br/> <br/>Option Explicit<br/> <br/>&#39; Variables<br/>Const msiOpenDatabaseModeReadOnly&nbsp;&nbsp;&nbsp;&nbsp; = 0<br/> <br/>&#39; Get command-line arguements<br/>Dim argCount:argCount = Wscript.Arguments.Count<br/> <br/>&#39; Connect to the Windows Installer object.<br/>On Error Resume Next<br/>Dim installer : Set installer = Nothing<br/>Set installer = Wscript.Cr&#101;ateObject(&#34;WindowsInstaller.Installer&#34;) : CheckError<br/> <br/>&#39; Open the database (read-only).<br/>Dim databasePath:databasePath = Wscript.Arguments(0)<br/>Dim openMode : openMode = msiOpenDatabaseModeReadOnly<br/>Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError<br/> <br/>&#39; Extract language info and compose report message<br/>Wscript.Echo &#34;Database (MSI) = &#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; databasePath<br/>Wscript.Echo &#34;ProductName&nbsp;&nbsp;&nbsp;&nbsp;= &#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; ProductName(database) <br/>Wscript.Echo &#34;ProductCode&nbsp;&nbsp;&nbsp;&nbsp;= &#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; ProductCode(database) <br/><br/>&#39; Clean up<br/>Set database = nothing<br/>Wscript.Quit 0<br/> <br/>&#39; Get the Property.ProductName value.<br/>Function ProductName(database)<br/> On Error Resume Next<br/> Dim view : Set view = database.OpenView(&#34;Sel&#101;ct `Value` FROM `Property` Wh&#101;re `Property` = &#39;ProductName&#39;&#34;)<br/> view.Execute : CheckError<br/> Dim record : Set record = view.Fetch : CheckError<br/> If record Is Nothing Then ProductName = &#34;Not specified!&#34; Else ProductName = record.StringData(1)<br/>End Function<br/> <br/>&#39; Get the Property.ProductCode value.<br/>Function ProductCode(database)<br/> On Error Resume Next<br/> Dim view : Set view = database.OpenView(&#34;Sel&#101;ct `Value` FROM `Property` Wh&#101;re `Property` = &#39;ProductCode&#39;&#34;)<br/> view.Execute : CheckError<br/> Dim record : Set record = view.Fetch : CheckError<br/> If record Is Nothing Then ProductCode = &#34;Not specified!&#34; Else ProductCode = record.StringData(1)<br/>End Function<br/> <br/>Sub CheckError<br/> Dim message, errRec<br/> If Err = 0 Then Exit Sub<br/> message = Err.Source &amp; &#34; &#34; &amp; Hex(Err) &amp; &#34;: &#34; &amp; Err.Description<br/> If Not installer Is Nothing Then<br/>&nbsp;&nbsp;Set errRec = installer.LastErrorRecord<br/>&nbsp;&nbsp;If Not errRec Is Nothing Then message = message &amp; vbNewLine &amp; errRec.FormatText<br/> End If<br/> Fail message<br/>End Sub<br/> <br/>Sub Fail(message)<br/> Wscript.Echo message<br/> Wscript.Quit 2<br/>End Sub<br/> <br/> <br/> <br/> <br/> <br/><br/> <br/> <br/>Here are some great resources that I stumbled across. The example script above is a modification of one of the MSI script examples in the Windows SDK.<br/> <br/> <br/> <br/>Uninstall MSI with VBscri&#112;t<br/> <br/><a href="http://juice.altiris.com/download/3859/uninstall-msi-with-vbscri" target="_blank" rel="external">http://juice.altiris.com/download/3859/uninstall-msi-with-vbscri</a>&#112;t<br/> <br/> <br/> <br/>How Can I Retrieve the Subject Property for a .MSI File?<br/> <br/><a href="http://www.microsoft.com/technet/scri&#112;tcenter/resources/qanda/jan07/hey0110.mspx" target="_blank" rel="external">http://www.microsoft.com/technet/scri&#112;tcenter/resources/qanda/jan07/hey0110.mspx</a><br/> <br/> <br/> <br/>Microsoft ® Windows Server® 2003 R2 Platform SDK Web Install*<br/> <br/><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb" target="_blank" rel="external">http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb</a>&amp;DisplayLang=en<br/> <br/> <br/> <br/><br/><br/>22 MSI Script Examples (after Windows SDK installation)<br/> <br/>C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\SysMgmt\MSI\scripts<br/> <br/><br/><br/> <br/> <br/>* I already have several versions of the SDK installed, so I didn&#39;t specifically download and test with the Windows Server 2003 R2 Platform SDK ... it was just the latest that I saw on the download center.<br/> <br/> <br/> <br/>Anyway, I hope this helps!<br/> <br/> <br/> <br/>Jim Bradbury<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=273</link>
			<title><![CDATA[KeelKit安装说明与使用简易说明]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[KeelKit]]></category>
			<pubDate>Thu,09 Jun 2011 09:09:57 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=273</guid>
		<description><![CDATA[说明:<br/><br/>常见问题:<br/>&#160;&#160;&#160;&#160;一、为什么我找不到KeelKit菜单？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;安装后 打开VS2010 如果菜单中没有KeelKit <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;请打开 工具--》外界程序管理器 看其中是否有KeelKit 插件<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;如果依然没有，请查看<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;我的文档\Visual Studio 2010\Addins&#34;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;下有没有 KeelKit.AddIn， 如果没有， 则可能是安装错误<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这时请复制一份&nbsp;&nbsp; C:\Program Files\KeelKit\KeelKit.AddIn&nbsp;&nbsp;到 我的文档\Visual Studio 2010\Addins<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 修改 &lt;Assembly&gt;KeelKit.dll&lt;/Assembly&gt;&nbsp;&nbsp;为 &lt;Assembly&gt;C:\Program Files\KeelKit\KeelKit.dll&lt;/Assembly&gt;&nbsp;&nbsp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;保存后， 请再次在VS2010中打开工具-》外界程序管理器 是否有此插件， 如果依然没有，请联系开发者<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&#160;&#160;&#160;&#160;二、为什么KeelKit菜单是灰色的？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;有时候KeelKit菜单会出现灰色。 无法使用<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;请在工具-》外接程序需管理器中 勾掉， 不加载，&nbsp;&nbsp;然后确定。 再次打开 外接程序管理器， 打上勾 ， 点击确定。 <br/><br/><br/><br/>&#160;&#160;&#160;&#160;三、为什么KeelKit不自动写入链接字符串到 设置和config 文件中？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;你需要手动点击 设置&nbsp;&nbsp;然后在里面新建一项 后保存， 然后点开 KeelKit 的项目解决方案配置 ， 点击确定， 才会自动将连接字符串自动写入程序中。 <br/><br/>&#160;&#160;&#160;&#160;四、为什么部分菜单不显示，比如 配置解决方案？<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;未打开解决方案时 配置解决方案 菜单不会显示！<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;未配置解决方案 未指定Model项目时 ， 不显示 Model生成菜单 其他菜单诸如此类！<br/><br/>数据库支持<br/>暂时Model 生成支持Access 和 MSSQL ， DBHelper 支持MySQL ACCESS MSSQL　　等。 <br/><br/>代码生成支持<br/>C#&nbsp;&nbsp;VB&nbsp;&nbsp;F#&nbsp;&nbsp;C++&nbsp;&nbsp;IronPython&nbsp;&nbsp;C(特殊方式支持)<br/><br/><br/><br/>联系方式 <br/>QQ群 60118875<br/>QQ号&nbsp;&nbsp;100860505 <br/><br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=272</link>
			<title><![CDATA[C# 下实现毛玻璃效果 ]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Mon,30 May 2011 17:03:27 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=272</guid>
		<description><![CDATA[<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[StructLayout(LayoutKind.Sequential)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public struct MARGINS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public int Left;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public int Right;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public int Top;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public int Bottom;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;dwmapi.dll&#34;, PreserveSig = false)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[DllImport(&#34;dwmapi.dll&#34;, PreserveSig = false)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static extern bool DwmIsCompositionEnabled();<br/><br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected override void OnLoad(EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (System.Environment.OSVersion.Version.Major &gt;= 6 &amp;&amp; DwmIsCompositionEnabled())<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;MARGINS margins = new MARGINS();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;margins.Right = margins.Left = margins.Top = margins.Bottom = this.Width + this.Height;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DwmExtendFrameIntoClientArea(this.Handle, ref margins);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;okOnPaintBackground = true;<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;base.OnLoad(e);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protected override void OnPaintBackground(PaintEventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base.OnPaintBackground(e);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (System.Environment.OSVersion.Version.Major &gt;= 6 &amp;&amp; DwmIsCompositionEnabled())<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; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Graphics.Clear(Color.Black);<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;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}]]></description>
		</item>
		
			<item>
			<link>http://www.mysticboy.cn/article.asp?id=271</link>
			<title><![CDATA[c#图片旋转代码.可以指定角度来旋转]]></title>
			<author>mysticboy@live.com(MysticBoy)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sat,07 May 2011 18:40:25 +0800</pubDate>
			<guid>http://www.mysticboy.cn/default.asp?id=271</guid>
		<description><![CDATA[private void RotateTransform_Click(object sender, System.EventArgs e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics graphics=this.Cr&#101;ateGraphics();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;graphics.Clear(Color.White);<br/><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;Bitmap image=new Bitmap(&#34;nemo.bmp&#34;);<br/><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;Rectangle rect=new Rectangle(0,0,this.ClientSize.Width,this.ClientSize.Height);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PointF center=new PointF(rect.Width/2,rect.Height/2);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float offsetX=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;float offsetY=0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offsetX=center.X-image.Width/2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;offsetY=center.Y-image.Height/2;<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;RectangleF picRect=new RectangleF(offsetX,offsetY,image.Width,image.Height);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PointF Pcenter=new PointF(picRect.X+picRect.Width/2,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;picRect.Y+picRect.Height/2);<br/>&nbsp;&nbsp;&nbsp;&nbsp;<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;for(int i=0;i&lt;361;i+=10)<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;// 绘图平面以图片的中心点旋转<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;graphics.TranslateTransform(Pcenter.X, Pcenter.Y);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;graphics.RotateTransform(i);<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;graphics.TranslateTransform(-Pcenter.X, -Pcenter.Y);<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;graphics.DrawImage(image,picRect);&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(100);<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;graphics.ResetTransform();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}]]></description>
		</item>
		
</channel>
</rss>

