随笔分类 - [01-2].NET-C#
摘要:还记得上一次的猜测了windows右键菜单 “发送到 Evernote”的功能实现方案,呵呵,今天又猜了一次,不过换成了IE右键菜单。我想任何一个不明白其中原理和实现方案的人、在刚遇到这个问题时肯定是“丈二的和尚”——摸不着头脑。我也是这样、一头雾水,不过还大概的有点头绪,就是弄清楚“Add To Evernote”用到了哪些东西、那些文件,然后再和其他应用程序的相似功能进行对比,这样就能把“狐狸尾巴”揪出来了。开始揪尾巴…打开360安全卫士,找功能大全,里面有一项叫“右键菜单管理”的功能。嘿嘿,这招有点狠,尾巴立马被抓到了,如下图:右键菜单.png (39.21 KiB) 被浏览 1 次我的
阅读全文
摘要:本文是前面的C#生成CHM文件系列文章的汇总以及一些其他的关于CHM的资料链接等。C#生成CHM文件(入门篇)http://www.cnblogs.com/alexis/archive/2010/09/29/1837909.htmlC#生成CHM文件(中级篇)http://www.cnblogs.com/alexis/archive/2010/09/30/1839032.htmlC#生成CHM文件(应用篇)http://www.cnblogs.com/alexis/archive/2010/10/16/1853275.html下面一系列是以一个实例项目利用前面的知识制作的CHM编辑器,支持将文
阅读全文
摘要:在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死。在这时、我们可以通过Thread、Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死,但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的。那么我们又是否有一种比较通用的方法、来设定某一个方法的执行超时的时间,让其一旦超过指定时间则跳出指定方法、进而继续向下执行呢?答案当然是肯定的。delegate.BeginInvoke可以实现代码代码的异步执行,在这种情况下,只要让程序可以等待一个Timespan,如果在Timespan到达之前方法内的
阅读全文
摘要:本文给出使用iTextSharp来生成pdf文档的方法。面是我根据实际情况编写的代码,包含如下:1、段落2、表格3、字体格式化运行此代码需要的类库:itextsharp.dll,itext-hyph-xml.dll,iTextAsian.dll和ICSharpCode.SharpZipLib.dllitextsharp项目地址:http://sourceforge.net/projects/itextsharp/示例代码,/Files/hudonglin/PDFMake.rar示例代码也贴在下面了本代码支持中文字符,下面直接上代码Code[http://www.xueit.com]namesp
阅读全文
摘要:获得汉字拼音的首字母:public string GetPYChar(string c) { byte[] array = new byte[2]; array = System.Text.Encoding.Default.GetBytes(c); int i = (short)(array[0] - '\0') * 256 + ((short)(array[1] - '\0')); if (i < 0xB0A1) return "*"; if (i < 0xB0C5) return "a"; if (i &l
阅读全文
摘要:用C#打造匿名邮件群发软件masepu(本文已发表于黑客防线,转载请注明出处)电子邮件攻击是最常见的网络攻击手法之一,黑客们通过电子邮件发送木马、病毒或是包含有攻击性或信息获取脚本的特定html代码,使邮箱使用者打开这类邮件就会导致信息泄露甚至电脑被控制。而这种攻击手法常常要和“社会工程学”结合起来,信件要求伪装成邮箱使用者熟悉的发信人,以迷惑对方使其放松警惕,来达到获得重要信息和控制对方电脑的目的。为了深入的了解这种攻击方法,前段时间我打算在网上找一个免费好用的匿名邮件群发软件,来实际测试发送伪造信件的效果,结果上网转了一大圈也没找到一个称心如意的,不是收费就是试用,插件广告一大堆,想来邮件
阅读全文
摘要:这个函数在user32.dll这个库文件里面。我们可以在C:\WINDOWS\system32(XP系统)这个目录下找到这个文件,他是系统自带的。 我们以C#直接调用这个文件中的API为例子来说下怎么进行鼠标操作,首先在我们C#中声明引用,如果是一个基于From的程序,这个声明的位置写在你的From class就可以了[System.Runtime.InteropServices.DllImport("user32")]private static extern int mouse_event(int dwFlags, int dx, int dy, int cButton
阅读全文
摘要:区分鼠标单击和双击事件处理MouseDown事件并确定单击位置和两次单击间的时间间隔,方法是使用适当的SystemInformation属性和Timer组件。根据发生的是单击还是双击,执行适当的操作。下面的代码示例阐释这是如何实现的。using System;using System.Drawing;using System.Windows.Forms;namespace SingleVersusDoubleClick{ class Form1 : Form { private Rectangle hitTestRectangle = new Rectangle(); private Rect
阅读全文
摘要:public static string NoHTML(string Htmlstring) { //删除脚本 Htmlstring = Regex.Replace(Htmlstring,@"<script[^>]*?>.*?</script>", "",RegexOptions.IgnoreCase); //删除HTML Htmlstring = Regex.Replace(Htmlstring,@"<(.[^>]*)>","",RegexOptions.Ignor
阅读全文
摘要:Paste html from Clipboard 可解决中文乱码问题。MemoryStream ms = Clipboard.GetData("Html Format") as MemoryStream; if (ms == null) { return; } ms.Position = 0; byte[] vBytes = new byte[ms.Length]; ms.Read(vBytes, 0, (int)ms.Length); string strFullHtml = Encoding.UTF8.GetString(vBytes); // utf-8
阅读全文
摘要:Copy Html To Clipboard 可解决中文乱码问题。 private void CopyHtmlToClipBoard(string html) { Encoding enc = Encoding.UTF8; string begin = "Version:0.9\r\nStartHTML:{0:000000}\r\nEndHTML:{1:000000}\r\nStartFragment:{2:000000}\r\nEndFragment:{3:000000}\r\n"; string html_begin = "<html>\r\n&l
阅读全文
摘要:转自:http://www.cnblogs.com/gaoweipengWin32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceWindowsAPI{classCSharp_Win32Api{#regionUser32.dll函数///&
阅读全文
摘要:所谓线程同步,就是多个线程之间在某个对象上执行等待(也可理解为锁定该对象),直到该对象被解除锁定。C#中对象的类型分为引用类型和值类型。CLR在这两种类型上的等待是不一样的。我们可以简单的理解为在CLR中,值类型是不能被锁定的,也即:不能在一个值类型对象上执行等待。而在引用类型上的等待机制,则分为两类:锁定和信号同步。锁定,使用关键字lock和类型Monitor。两者没有实质区别,前者其实是后者的语法糖。这是最常用的同步技术;本建议我们讨论的是信号同步。信号同步机制中涉及的类型都继承自抽象类WaitHandle,这些类型有EventWaitHandle(类型化为AutoResetEvent、M
阅读全文
摘要:// 需要设置ListView的OwnerDraw属性为 true // 用以改变标题的颜色 private void listView_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) { e.Graphics.FillRectangle(new SolidBrush(Color.Red), e.Bounds); e.DrawText(); } private void listView_DrawItem(object sender, DrawListViewItemEventArgs e) { e.D.
阅读全文
摘要:第一个种方式利用Win32API 读取文件头获取Mime-Type [DllImport(@"urlmon.dll", CharSet = CharSet.Auto)] private extern static System.UInt32 FindMimeFromData( System.UInt32 pBC, [MarshalAs(UnmanagedType.LPStr)] System.String pwzUrl, [MarshalAs(UnmanagedType.LPArray)] byte[] pBuffer, System.UInt32 cbSize, [Mar
阅读全文
摘要:源码下载地址:http://www.c-sharpcorner.com/UploadFile/neo_matrix/SimpleFTP01172007082222AM/SimpleFTP.aspx原文链接:http://www.cnblogs.com/webabcd/archive/2007/01/...
阅读全文
摘要:方法一://须添加对System.Web的引用using System.Web.Security;.../// <summary>/// SHA1加密字符串/// </summary>/// <param name="source">源字符串</param>/// <returns>加密后的字符串</returns>public string SHA1(string source){ return FormsAuthentication.HashPasswordForStoringInConfigFil
阅读全文
摘要:WebBrowse 编辑模式 中几个讨厌的问题:1、当设置DocumentText属性值时会一直弹出一个“可恶的保存对话框”现我已知的较好的策略有:1)在设置两个DocumentText属性值之间使用webBrowser1.Document.OpenNew(true)方法,但这个方法会引发一些问题。详细内容见下。2)在设置DocumentText属性之前将编辑模式改为浏览模式,设置完后再将浏览模式改为编辑模式。2、监控Html内容的改变。监控 WebBrowser 控件内容的改变3、WebBrowse的Mouse事件。WebBrowse本身没有Mouse的相关事件,但是我们可以借助WebBro
阅读全文
摘要:深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第
阅读全文
摘要:前几天我转载了一篇随笔《浅述WinForm多线程编程与Control.Invoke的应用》,有博友反映说问题没有说到点上,我在这里为此做一个解释:随笔是别人写的,我想尊重原创的意愿、所以我也没有那篇随笔做任何更改。 还有,那篇随笔更加侧重的是知识点,而不是实例。步入正题.为了解决窗体卡死的问题,我常用的是如下的两种策略:1、就是前文提到的 多线程 + Invoke2、BackgroundWorker 组件策略1优点就是 较灵活、适用更广泛,几乎可以用于解决任意情况下窗体卡死;而其缺点:需要自己额外编写许多代码、相对于策略2较为不方便。相对而言、我还是较青睐于策略2,毕竟方便嘛,可以少写一些Co
阅读全文