﻿<?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>博客园-SeeK.CS  创作自己的作品</title><link>http://www.cnblogs.com/seek/</link><description>思绪来去匆匆，偶尔在这停留。</description><language>zh-cn</language><lastBuildDate>Sat, 30 Aug 2008 13:39:52 GMT</lastBuildDate><pubDate>Sat, 30 Aug 2008 13:39:52 GMT</pubDate><ttl>60</ttl><item><title>UsbSniffer---U盘资料窃取器（C#版）</title><link>http://www.cnblogs.com/seek/archive/2008/07/25/1251796.html</link><dc:creator>seek</dc:creator><author>seek</author><pubDate>Fri, 25 Jul 2008 15:29:00 GMT</pubDate><guid>http://www.cnblogs.com/seek/archive/2008/07/25/1251796.html</guid><wfw:comment>http://www.cnblogs.com/seek/comments/1251796.html</wfw:comment><comments>http://www.cnblogs.com/seek/archive/2008/07/25/1251796.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/seek/comments/commentRss/1251796.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seek/services/trackbacks/1251796.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;前段时间发布了个C++版本的<font style="background-color: #c7edcc" face="Verdana">UsbSniffer，虽然只是个示例程序，但是还是得到大家的广泛关注。一直说要把C#版本的sniffer发布，可是由于种种原因（主要是期末考试与微软的&#8220;校园之星&#8221;复赛），今天才发。对不住那些一直关注的朋友拉~~<img src="http://www.cnblogs.com/Emoticons/msn/red_smile.gif"  alt="" /></font></p>
<p><font style="background-color: #c7edcc">--------------------------</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font style="background-color: #c7edcc">这个程序的主要思想和C++版本的一样，都是定时（默认5s）扫描系统磁盘，寻找可移动磁盘。然后递归复制目录文件，但是在复制文件的过程里改进了一些，先判断修改日期是否正常，然后再进行复制。该程序隐藏了界面，为了不被杀软暴毒，在系统托盘里注册了N<font style="background-color: #c7edcc" face="Verdana">otifyIcon，有其他需要的朋友自己修改<img src="http://www.cnblogs.com/Emoticons/baimantou/215225166.gif"  alt="" />。并且支持日志记录，ini文件读写等功能。好了，废话不多说了，开源才是硬道理！欢迎回复交流！</font></font></p>
<p><font style="background-color: #c7edcc"></font>&nbsp;</p>
<p><a href="http://files.cnblogs.com/seek/YetAnotherSnifferU2.zip">http://files.cnblogs.com/seek/YetAnotherSnifferU2.zip</a></p>
<p><font style="background-color: #c7edcc"></font>&nbsp;</p>
<img src ="http://www.cnblogs.com/seek/aggbug/1251796.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41966/" target="_blank">[新闻]Google推出Android Market挑战App Store</a>]]></description></item><item><title>备战微软“校园之星”复赛……</title><link>http://www.cnblogs.com/seek/archive/2008/07/14/1242955.html</link><dc:creator>seek</dc:creator><author>seek</author><pubDate>Mon, 14 Jul 2008 14:35:00 GMT</pubDate><guid>http://www.cnblogs.com/seek/archive/2008/07/14/1242955.html</guid><wfw:comment>http://www.cnblogs.com/seek/comments/1242955.html</wfw:comment><comments>http://www.cnblogs.com/seek/archive/2008/07/14/1242955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/seek/comments/commentRss/1242955.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seek/services/trackbacks/1242955.html</trackback:ping><description><![CDATA[N久没写随笔了，最近一段时间事情胡多——期末考试、考研班、<a href="http://www.mscourse.com/minisite/gyds.html">微软校园之星</a>复赛&#8230;&#8230;<br />
<br />
不过说起来最值得关注的应该就是校园之星复赛了。很幸运，上周五接到通知说已经成功晋级复赛现场，意味着7月22号在<br />
<br />
成都复赛现场参赛，争夺决赛资格！N个通宵的努力总算没有白费，引一段提交项目后在校内上写的几段话：<br />
<fieldset style="color: #ff0000"><legend>引用</legend><br />
到目前为止本人已经连续31个小时未合眼了。从上个星期的这会起就没有清闲过。前两天的每天文挡编写到凌晨2点。从上周四开始到现在平均每天的睡眠时间不到2小时。连续3天呆宿舍编码，吃饭都不下楼。之后转移到机房干到现在。
<p>&nbsp;&nbsp; 做什么呢？一个网络办公系统，1周时间出来，还要有详细说明，测试计划，用例及报告。不过值得庆幸的是4人团队中还是有一个能顶事的。当然其他人也都很配合很默契。最终共同完成了这个OA~~</p>
</fieldset><br />
今天又接到通知说后天开始的暑期实习我可以不参加，真是振奋人心啊！想想在学校实习能学个PP么，纯粹浪费时间。这次<br />
<br />
准备外面租个房子，继续上政治辅导班到19号，然后回学校准备20号的起程！这段时间还要抽空再看看提交的OA，数据结<br />
<br />
构等等。这次过去不拿到决赛参赛权绝不回来！预祝自己及所在团队取得成功！<img src="http://www.cnblogs.com/Emoticons/face/020.gif"  alt="" />
<img src ="http://www.cnblogs.com/seek/aggbug/1242955.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41965/" target="_blank">[新闻]美国年轻人最喜欢的15大网站</a>]]></description></item><item><title>[趣味编程]CPU占用率曲线听我指挥</title><link>http://www.cnblogs.com/seek/archive/2008/05/25/1207145.html</link><dc:creator>seek</dc:creator><author>seek</author><pubDate>Sun, 25 May 2008 15:03:00 GMT</pubDate><guid>http://www.cnblogs.com/seek/archive/2008/05/25/1207145.html</guid><wfw:comment>http://www.cnblogs.com/seek/comments/1207145.html</wfw:comment><comments>http://www.cnblogs.com/seek/archive/2008/05/25/1207145.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/seek/comments/commentRss/1207145.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seek/services/trackbacks/1207145.html</trackback:ping><description><![CDATA[摘要: 写一个程序，让用户来决定Windows任务管理器（Task Manager）的CPU占用率。程序越精简越好，计算机语言不限。例如，可以实现下面三种情况：1. CPU的占用率固定在50%，为一条直线；2. CPU的占用率为一条直线，但是具体占用率由命令行参数决定（参数范围1~ 100）；3. CPU的占用率状态是一个正弦曲线。Google上搜索，可以找到第一题和第3题的C++描述。本人写了个C#版本&nbsp;&nbsp;<a href='http://www.cnblogs.com/seek/archive/2008/05/25/1207145.html'>阅读全文</a><img src ="http://www.cnblogs.com/seek/aggbug/1207145.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41964/" target="_blank">[新闻]2008年8月30日IT博客精选</a>]]></description></item><item><title>[基础文章]浅谈文件拖放</title><link>http://www.cnblogs.com/seek/archive/2008/05/21/1203749.html</link><dc:creator>seek</dc:creator><author>seek</author><pubDate>Wed, 21 May 2008 01:28:00 GMT</pubDate><guid>http://www.cnblogs.com/seek/archive/2008/05/21/1203749.html</guid><wfw:comment>http://www.cnblogs.com/seek/comments/1203749.html</wfw:comment><comments>http://www.cnblogs.com/seek/archive/2008/05/21/1203749.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/seek/comments/commentRss/1203749.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seek/services/trackbacks/1203749.html</trackback:ping><description><![CDATA[<p>.NetFramework2.0中为我们提供好了丰富的"后台资源",以便提高我们的编程效率.这里本人也结合自己做的聊天程序（见置顶文章）中遇到的问题来浅谈一下文件拖放.<br />
步奏:<br />
1、将拖放目标控件AllowDrop属性设置为True(并不是所有的控件都支持文件拖放哦^_^)<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />this<span style="color: #000000">.AllowDrop</span><span style="color: #000000">=</span><span style="color: #000000">True;</span></div>
2、写拖放目标控件的DragEnter事件。<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Frm_Chat_DragEnter(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;DragEventArgs&nbsp;e)<br />
<img id="Codehighlighter1_72_509_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_72_509_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_72_509_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_72_509_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_72_509_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_72_509_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_72_509_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_72_509_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_72_509_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_72_509_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(listBox.SelectedIndex&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_131_410_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_131_410_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_131_410_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_131_410_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_131_410_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_131_410_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_131_410_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_131_410_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_131_410_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_131_410_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;(e.Data.GetDataPresent(DataFormats.FileDrop))<br />
<img id="Codehighlighter1_214_286_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_214_286_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_214_286_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_214_286_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_214_286_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_214_286_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_214_286_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_214_286_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_214_286_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_214_286_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Effect&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DragDropEffects.Link;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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 />
<img id="Codehighlighter1_324_396_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_324_396_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_324_396_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_324_396_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_324_396_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_324_396_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_324_396_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_324_396_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_324_396_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_324_396_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Effect&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DragDropEffects.None;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_440_499_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_440_499_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_440_499_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_440_499_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_440_499_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_440_499_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_440_499_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_440_499_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_440_499_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_440_499_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(</span><span style="color: #800000">"</span><span style="color: #800000">请选择一个用户</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
3、写拖放目标控件的DragDrop事件<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&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;Frm_Chat_DragDrop(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;DragEventArgs&nbsp;e)<br />
<img id="Codehighlighter1_72_823_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_72_823_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_72_823_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_72_823_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_72_823_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_72_823_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_72_823_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_72_823_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_72_823_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_72_823_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(listBox.SelectedIndex&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #800080">1</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_131_724_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_131_724_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_131_724_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_131_724_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_131_724_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_131_724_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_131_724_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_131_724_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_131_724_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_131_724_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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 />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiveFileName&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;((Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(</span><span style="color: #800080">0</span><span style="color: #000000">).ToString();<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;filename&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sendFile.Split(</span><span style="color: #800000">'</span><span style="color: #800000">\\</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">MessageBox.Show(filename[filename.Length&nbsp;-&nbsp;1]);</span><span style="color: #008000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;text&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">FILE|</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;listBox.SelectedItem.ToString()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">|</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;username&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">|</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;filename[filename.Length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">|RQ|</span><span style="color: #800000">"</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;buffer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.Text.Encoding.Default.GetBytes(text);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form1.netStream.Write(buffer,&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;buffer.Length);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btnFileTrans.Enabled&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_754_813_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_754_813_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_754_813_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_754_813_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_754_813_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_754_813_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_754_813_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_754_813_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_754_813_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_754_813_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(</span><span style="color: #800000">"</span><span style="color: #800000">请选择一个用户</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
到此，一个简单的文件拖放功能可以算是完成了。但是在实际应用中常常会出现&#8220;DragDrop注册失败&#8221;异常，这个问题是由于目标控件是在另外一个独立线程中打开。解决方法也很简单，只需表明当前线程为单线程单元即可。<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;Thread&nbsp;loadThread&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(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ThreadStart(Connect));<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadThread.IsBackground&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&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 />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadThread.ApartmentState&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ApartmentState.STA;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loadThread.Start();</span></div>
<img src ="http://www.cnblogs.com/seek/aggbug/1203749.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41963/" target="_blank">[新闻]《极品飞车12》最新真人照片、游戏截图</a>]]></description></item><item><title>[开源]MiniChat Beta 1.0——局（广）域网多人聊天程序，支持文件传输</title><link>http://www.cnblogs.com/seek/archive/2008/05/15/1199148.html</link><dc:creator>seek</dc:creator><author>seek</author><pubDate>Thu, 15 May 2008 12:05:00 GMT</pubDate><guid>http://www.cnblogs.com/seek/archive/2008/05/15/1199148.html</guid><wfw:comment>http://www.cnblogs.com/seek/comments/1199148.html</wfw:comment><comments>http://www.cnblogs.com/seek/archive/2008/05/15/1199148.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnblogs.com/seek/comments/commentRss/1199148.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/seek/services/trackbacks/1199148.html</trackback:ping><description><![CDATA[<p>&nbsp; </p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 200%; tab-stops: list 21.0pt">一、<span style="font-family: 宋体">作品简介：</span></p>
<p style="margin-left: 21pt; text-indent: 21pt; line-height: 200%">MiniChat<span style="font-family: 宋体">是本人编写的一款多人聊天程序，主要用于局域网或广域网内用户间的实时通讯。用户界面美观友好，支持公共聊天、私人聊天、聊天记录、文件传输、任务栏实时通知等功能。该程序采用</span>C/S<span style="font-family: 宋体">三层架构，多线程</span>Socket<span style="font-family: 宋体">通信方式。</span>Cient<span style="font-family: 宋体">端采用</span>TcpClient<span style="font-family: 宋体">类连接服务器，使用</span>NetworkStream<span style="font-family: 宋体">传送数据。</span>Server<span style="font-family: 宋体">端采用</span><span style="line-height: 200%; font-family: 新宋体">TcpListener</span><span style="line-height: 200%; font-family: 新宋体">监听本地端口，并使用多线程为每个用户建立独立Socket连接并与client通信。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 200%; tab-stops: list 21.0pt"><span style="line-height: 200%; font-family: 新宋体">二、</span><span style="line-height: 200%; font-family: 新宋体">主要功能：</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">1、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">公共聊天。用户的聊天内容可被聊天室内所有用户看见。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">2、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">私人聊天。用户的聊天内容只对聊天双方可见。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">3、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">聊天记录。服务器端采用SQL Server2005保留所有用户的聊天记录。客户端采用access保存用户本人的公共、私人聊天记录。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">4、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">任务栏实时通知。服务器端采用最小化到系统托盘等技术，在有用户上下线，用户收发信息时均有类似于MSN的消息提示。客户端最小化时有相关信息时也有类似于MSN的消息提示。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">5、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">其他辅助功能例如字体颜色等。</span></p>
<p style="margin-left: 39pt; text-indent: -18pt; line-height: 200%; tab-stops: list 39.0pt"><span style="line-height: 200%; font-family: 新宋体">6、&nbsp;</span><span style="line-height: 200%; font-family: 新宋体">文件传输。用户可以采用P2P模式进行文件传输。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 200%; tab-stops: list 21.0pt"><span style="line-height: 200%; font-family: 新宋体">三、</span><span style="line-height: 200%; font-family: 新宋体">主要流程图：<br />
<img height="662" alt="" src="http://www.cnblogs.com/images/cnblogs_com/seek/image002.jpg" width="553" border="0" /><br />
</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 200%; tab-stops: list 21.0pt"><span style="line-height: 200%; font-family: 新宋体">四、</span><span style="line-height: 200%; font-family: 新宋体">其他说明：</span></p>
<p style="margin-left: 21pt; text-indent: 15.75pt; line-height: 200%"><span style="line-height: 200%; font-family: 新宋体">该程序采用VS2005编写。运行时需要.netFramework2.0支持。其中服务端数据库采用SQL server2005,客户端使用Access。日志文件记录在程序启动位置的LOG文件夹下。主要地方代码中已经详细注释。<br />
<a href="/Files/seek/MiniChatBeta1.0.rar">/Files/seek/MiniChatBeta1.0.rar</a></span></p>
<img src ="http://www.cnblogs.com/seek/aggbug/1199148.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41962/" target="_blank">[新闻]IBM正在开发超强性能4TB固态硬盘阵列</a>]]></description></item></channel></rss>