`
zu14
  • 浏览: 445306 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
文章列表
最近,我发布了几篇关于 .NET 和 EML 文件的邮件相关 的博文,引来了一些网友的关注与讨论。尤其是对于“如何解析EML文件的内容”和 “发送现有的EML文件”。 目前,比较主流的解析EML文件的方式,基本是对MIME格式的分析,基于对 RFC822及其后续扩展的标准 的理解。但是,此种方法工作量太大,且过于繁琐。 我是个懒人,喜欢找捷径 大家都知道,微软的 outlook express 是可以保存和打开并发送EML文件的。那么很明显,outlook express 肯定是可以解析EML文件的。 问题就来了:我们可不可以利用微软现有的成果呢? 针对这个问题,我们再回到.NET中发送邮件的功 ...
昨天,有个网友发消息来咨询关于 “TreeView节点的拖放” 相关的实现,于是写下了此篇博文。 一、 拖动前 二、拖动后 注: 将 TreeView 的 AllowDrop 设为 true 具体的实现,参见  http://www.zu14.cn/2009/05/19/csharp-drag-drop-treeview-node-sample/
在上一篇 MailMessage保存为eml文件(C#+SmtpClient) 中,我们使用了反射(Reflection)的方式,调用System.Net.Mail的内部对象 MailWriter 实现了将 MailMessage 的内容保存为 eml 文件。 通过上次的实现,主要是学习反射Reflection的使用思路,起到个抛砖引玉的作用吧,算是 今天,偶尔看到了上次的代码,又重新发现了一个新大陆,使得保存eml文件的工作,变得异常简单了 ,先回到上次解析的地方:     上次的时候,我们对于上面的这张图片,过分强调了 MailWriter 这里,而忽略了其他的部分,下面我把上面这幅图, ...
一直使用 Windows Live Writer 写博客,偶尔出现点小问题,自己都解决了。这一周,基本没怎么写博客,实在太忙了。今天周末,打算补充几篇呢,确发现windows live writer 2009 出了点怪问题。 问题症状: 所有使用都正常,发布也OK,就是在点击 “插入链接” 和 “工具-->选项” 的时候,windows live writer 2009 崩溃了。每次都一样,只要不点上面的2个,就不会有问题。 根据症状,我觉得的问题出在 windows live writer 2009 对链接的管理上,而对于链接的管理,唯一一个就是 “关键词自动链接”,考虑到这里,思路 ...
Windows的硬件信息保存的机制,也是利用类数据库的方式,采用WMI的查询方式,基本可以获取所有的硬件信息,就像前面我提到的 C#遍历系统所安装的打印机. 今天,有个网友,问及 MAC 地址的事,我就给出了下面的代码: static string GetMAC() {using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration")) {ManagementObjectCollection moc = mc.GetInstances();foreach (Manageme ...
为了便于在家里开发,今天特意搞了台旧本本带回来做测试数据库服务器,为了尽量的提升性能和节约磁盘空间,安装SQL SERVER 2000 + SP4 的时候,特意选择了 “最小化安装”。 在安装完成之后,因为是最小化,所以所有的图形工具全部没给装,当然也包括企业管理器 和 查询分析器了。 为了搭建环境,只好祭出俺的杀手锏了 ,用命令行工具 isql 来完成基本的操作吧,说实话,isql 其实是个非常好的东西,尤其在做一些自动处理等的脚本的时候使用。 话不多说,开始了: >isql -Usa -P*** 1> create database [test] 2> g ...
.NET 自从2.0开始,大大提升了 Mail.SmtpClient 的功能,对于发邮件,可谓游刃有余了。但是,美中不足的是没有提供保存邮件内容为eml文件的功能 实际上,SmtpClient 和 MailMessage 已经实现了这个功能,只是这个功能是 NonPublic 的,对于空间外,不可见而已。 利用 Reflector 反编译一下 System.Net.Mail.SmtpClient 可以看到:   在 Send(MailMessage) 方法中,在MAIL被发送之前,是调用了一个 MailWriter fileMailWriter = this.GetFileMailWriter ...
EXCEL里面,默认的情况下,对于字段内容长度超过15位的数字,后面的内容会全部被搞成0,真是自作多情啊! 例如:常见的,我们输入18位的身份证号码:111111111111111111,就会变成 111111111111111000 而且,显示也用科学计数方式显示,真是太恶心了   最近有个需求,导出一些人的个人资料到 CSV 或者 EXCEL,在导出身份证时,就遇到了这个垃圾问题。 经过一番查找资料,找到了解决方法: 对于导出 CSV 文件,在禁止转义的内容前,加上一个TAB符号,C# 里面是 \t 对于EXCEL文件, 在禁止转义的内容前,加上一个半角单引号,' 符号 ...
在某些时候,我们有一些如下需要,例如:不能移动程序的窗体;不能点击关闭程序的窗体;不能最大化/最小化窗体等。 上面的一些需求,通过对窗体属性的一些设置,基本都可以实现,但是,确并不总是能满足我们的需要。 例如:我们需要让关闭按钮显示,但是变灰(不能点击),同时正常的显示最大化和最小化按钮 API中,对于菜单的操作,可谓丰富,常用的有: 我这里,就举2个例子, EnableMenuItem 和 DeleteMenu <script type="text/javascript"><!-- google_ad_client = "pub-58 ...
Cross-Site Scripting是一种较为普遍的HACK攻击方式,曾经遭受Cross-Site Scripting攻击的知名网站众多.现今Ajax技术大兴,应用日趋广泛,Client 端Script 扮演的角色越来越重要,也就不可避免的提升了 Cross-Site Scripting 攻击方式的几率。 Microsoft Anti-Cross Site Scripting Library 是 Microsoft 提供的一个免费的网站防骇类库, 其主要的功能是将所有认为不合法的提交内容进行编码转义, 从而提升网站的安全等级, 降低网站受到Cross Site Scripting 式的攻击 ...
今天,一个同事的电脑出了怪问题,双击打开“我的电脑”,总是显示一片空白,左下角提示“正在查找”,屏幕中间一把手电筒扫来扫去的,就是不显示内容。 直接 explorer c: 等各个驱动器都是OK的,唯独从我的电脑进去,要几分钟才出来,每次都这样,郁闷了。 在确认没有病毒的情况下, 查了下资料, 找到了解决方法, 留此备查: 打开注册表编辑器,regedit,定位到 HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\MYCOMPUTER 将此键值导出备份一下,然后,将它的子键全部删除,关闭注册表编辑器。 问 ...
应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。 配置文件,对于程序本身来说,就是基础和依据,其本质是一个xml文件,对于配置文件的操作,从.NET 2.0 开始,就非常方便了,提供了 System [.Web] .Configuration 这个管理功能的NameSpace,要使用它,需要添加对 System.configuration.dll的引用。 对于WINFORM程序,使用 System.Configuration.ConfigurationManager; 对于ASP.NET 程序, ...
我自己更偏向于使用C#, 但是VB 和 VB.NET的丰富的函数,也是非常可取的。充分运用这些函数,可以起到事半功倍的效果。 VB中的原来的函数库,部分进入了 Microsoft.VisualBasic.Interaction 中,例如: InputBox, MsgBox 就是了。 在C#使用 InputBox,当然可以自己实现, 其实就是一个 Form 而已,我更推荐使用VB.NET里面的,嘿嘿,使用方法: 1. 添加 Microsoft.VisualBasic 的引用 2. string str = Microsoft.VisualBasic.Interaction.InputBox ...
最近,遇到一件怪事,一个同事的WORD,总是出现莫名其妙的问题,不是经常无响应,就是出现不能粘贴和复制的情况,搞的晕晕的。 为了尽量降低他的出错损失,开启了WORD的自动保存和自动备份机制,写下来以备后查: “工具” 菜单下的 “选项”, 打开后,切换到 “保存” 卡 将 “自动保存时间间隔” 设置为 1 分钟(或自定义) 将 “开启备份” 的勾选中
今天,有个网友询问: C#中,如何随意拖动PictureBox? 看到这个问题,我自然而然就联想到了以前的拖动无边框窗体的实现上,其实,不只是PictureBox,基本上所有的控件都可以被拖动。 实现,就是利用Windows的API函数:SendMessage 和 ReleaseCapture 即可了,代码很简单。 核心代码如下: const uint WM_SYSCOMMAND = 0x0112; const uint SC_MOVE = 0xF010; const uint HTCAPTION = 0x0002; [DllImport("user3 ...
Global site tag (gtag.js) - Google Analytics