C#/Framework/WPF
文章平均质量分 74
yanick
SpringSide,Nutz团队成员
展开
-
(完整程序)C#.Net2.0的简单验证码识别示例
本文所讲的技术只是验证码识别的初级技术,只能识别一些简单的验证码,比如符合下列部分条件的:字体工整、位置固定、颜色统一、没有干扰点、背静单纯。程序是通过抓特征点来达到识别目的。图片由一个一个的点(像素)组成,点的颜色变化就组成了我们看见的图片,呈现一个图象就是那几个点按照一定的顺序排列而已。这样识别率100%,速度极快识别一个的过程一般在几十毫秒级别内,如果要追求更快的速原创 2007-06-17 19:38:00 · 6072 阅读 · 6 评论 -
C#的代表类型(delegate)
在C和C++程序员看来,指针既是他们最强有力的工具之一,同时又给他们带来了很多苦恼之处。因为指针指向的数据类型可能并不相同,比如你可以把int类型的指针指向一个float类型的变量,而这时程序并不会出错。而且,如果你删除了一个不应该被删除的指针(比如Windows中指向主程序的指针),程序就有可能崩溃。由此可见,滥用指针给程序的安全性埋下了隐患。正因为如此,在C#语言中取消了指针这个概念。当翻译 2008-10-26 19:59:00 · 1075 阅读 · 0 评论 -
序列化和反序列化
序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。 .NET框架提供了两种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用SoapFormatter进行串行化;3、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附原创 2008-10-26 19:27:00 · 685 阅读 · 0 评论 -
如何循序渐进向DotNet架构师发展
微软的DotNet开发绝对是属于那种入门容易提高难的技术。而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的。特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此RUP方法论也认同以架构为核心,体现4+1视图在整个软件开发过程中的重要作用。架构人员既要精通技术,又要熟悉业务,而且基本对软件生命周期各阶段的相关技术都需要有相关的积累和知识储备,而这些不经过多年转载 2008-12-15 15:35:00 · 828 阅读 · 0 评论 -
数字转字符串前面自动补0的实现
java:/** * Java里数字转字符串前面自动补0的实现。 * */ public class TestStringFormat { public static void main(String[] args) { int youNumber = 1; // 0 代表前面补充原创 2009-06-23 16:52:00 · 2998 阅读 · 1 评论 -
防注入
string sql = "insert into 表名 values(@字段)";SqlParameter s = new SqlParameter("@字段", FileByteArray);SqlCommand cmd = new SqlCommand(sql, conn);//conn为SqlConnection实例对象cmd.Parameters.Add(s);conn.Open();c原创 2009-09-01 09:28:00 · 709 阅读 · 0 评论 -
浅谈C#软件设计之语言版本切换
在很多语言中,版本的切换都使用资源文件.c#也不例外,它的资源文件是后缀以.resx结尾的文件,不可否认这的确给我们带来了方便首先:新建两个文件,比如:en.resx和zh.resx在zh.resx里名称 值 btnSubmitTxt 提交 在en.resx里名称 值 btnSubmitTxt submit 2.如何使用 using System.Globalizatio转载 2009-11-11 14:16:00 · 931 阅读 · 0 评论 -
byte[] 和 string 的转换
byte[] b = System.Text.Encoding.Default.GetBytes(string s); 转成字符串char[] d = System.Text.Encoding.Default.GetChars(byte[] b); string s = new String(char[] d);原创 2009-11-16 11:04:00 · 658 阅读 · 0 评论 -
实现使用后台操作的窗体
如果有一个需要很长时间才能完成的操作,而且不希望用户界面中出现延迟,则可以使用 BackgroundWorker 类来在另一个线程上运行该操作。 创建了一个计算 Fibonacci 数的窗体。该计算运行于用户界面线程之外的另一个线程上,因此用户界面可在计算进行的同时继续运行,而不会出现延迟 在应用程序中实现多线程的首选方式是使用 BackgroundWorker 组件。Ba原创 2009-11-21 13:48:00 · 842 阅读 · 0 评论 -
多线程对窗体控件进行
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。.NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一原创 2009-11-22 10:52:00 · 715 阅读 · 0 评论 -
HttpWebRequest.Headers 属性
指定构成 HTTP 标头的名称/值对的集合。 Headers 集合包含与请求关联的协议标头。下表列出了由系统或由属性或方法设置但未存储在 Headers 中的 HTTP 标头。标头 设置方 Accept 由 <a id="ctl00_MTCS_main_ctl45_ctl00_ctl00" onclick="func原创 2009-11-24 13:26:00 · 11040 阅读 · 0 评论 -
C# 代理
public void yanzhen(string str, int port) { WebProxy proxyObject = new WebProxy(str, port);//str为IP地址 port为端口号 HttpWebRequest Req = (HttpWebRequest)WebRequest.Cre原创 2009-11-24 17:25:00 · 677 阅读 · 0 评论 -
先装dotnet再装IIS读取元数据有问题
运行如下语句 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i原创 2009-11-27 16:32:00 · 568 阅读 · 0 评论 -
C#中ref和out的使用小结
ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。 使用ref前必须对变量赋值,out不用。 out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。 区别可以参看下面的代码:using System;class TestApp{ static转载 2009-12-03 16:56:00 · 718 阅读 · 0 评论 -
如何将对象读写到 XML 中
创建可序列化的类,或者创建用于处理 XML 序列化类的类。 如果您拥有描述要加载或保存的 XML 文件格式的 XML 架构定义 (XSD),请使用 Xsd.exe 工具自动创建这些类。 还可以手动创建这些类。 若要使用 Xsd.exe 工具创建可序列化的类,请按照下列步骤操作: 将以下描述订单的 XSD 架构保存为 Po.xsd 文件:<xsd:schema xmlns:翻译 2010-04-28 12:29:00 · 1424 阅读 · 0 评论 -
委托学习
委托是一种可以把引用封装成命名或者匿名函数的类型.委托的声明制定了一个函数签名,其中包含一个返回类型和参数列表.示例:delegate void SampleDelegate(string message).这里声明要用到关键字delegate.接着声明该委托类型的变量,初始化这个变量为与委托有相同签名的函数引用.最后可以使用委托变量调用这个函数.<br /> 下面来说一下与委托有关联的命名函数与匿名函数:当你用一个命名方法来实例化一个委托的时候,该方法会作为一个参数来传递,示例:<br />原创 2010-08-10 11:30:00 · 622 阅读 · 0 评论 -
C# 线程用法总结
Net提供了许多多线程编程工具,可能是因为太多了,所以掌握起来总是有一些头疼,我在这里讲讲我总结的一些多线程编程的经验,希望对大家有帮助不需要传递参数,也不需要返回参数我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Thread(threadStart);thread.Start();public void Calculate(){double Diam原创 2010-08-09 17:23:00 · 1114 阅读 · 0 评论 -
C# 装箱和拆箱[整理]
1、 装箱和拆箱是一个抽象的概念 2、 装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来 例如: int val = 100; object obj = val; Console.WriteLine (“对象的值 = {0}", obj); 这是一个转载 2008-10-26 20:12:00 · 1118 阅读 · 0 评论 -
String.Format格式说明
C#格式化数值结果表字符 说明 示例 输出 C货币string.Format("{0:C3}", 2)$2.000D十进制string.Format("{0:D3}", 2)002E科学计数法1.20E+0011.20E+001G常规string.Format("{原创 2008-10-23 10:24:00 · 736 阅读 · 0 评论 -
C#操作Sybase数据库
最近做一个车辆征税系统的项目,要用到Sybase数据库,但自己又从来没有学过此数据库,要连接此数据库,真不知道怎么下手,网上高手多,但是都不是说的很清楚,我网上的资料都看遍了。也没有找到好的方法。ODBC ,OLEDB等等连接都试了。但是都出现各种问题。但是最终还是尝试成功了。现我给大家分享一下。顺便说一下此代码算是操作Sybase的最好的解决方案,最近项目多,就不多说了。大家下载源代码就看懂了。原创 2008-05-16 00:30:00 · 5010 阅读 · 6 评论 -
谈谈验证码识别技术
由于现在很多网站,为了加强安全性,以及防止程序的自动操作网站,都加入的了验证码技术。但却给广大站长推广宣传网站带来的麻烦。所以我准备写这篇关于验证码识别技术的文章,不足之处在所难免!本人从来不写东西,今天为了想落伍才写了! 广大站长宣传推广自己的网站,经常要发布一些宣传广告,如果靠人工,太慢太昂贵,所以理想的办法是使用群发软件,可现在很多网站都有验证码,这成为群发软件的技术难点,而识转载 2007-06-20 10:13:00 · 2070 阅读 · 0 评论 -
Windows消息类
namespace WindowsUtilities{ public enum WindowsMessages : int { WM_NULL = 0x0000, WM_CREATE = 0x0001, WM_DESTROY = 0x0002, WM_MOVE = 0x0003, WM_SIZE = 0x0原创 2007-06-30 12:32:00 · 1267 阅读 · 0 评论 -
C#的数据类型
---类型描述 ---值类型 ---引用类型 ---类型之间的转换 ---装箱和拆箱 类型可分为:值类型,引用类型 值类型:直接存放真正的数据,值类型都有固定的长度,值类型的变量都保存在堆栈(stack)上。作为值类型的变量,每个都有自己的数据,因此对一个变量的操作不会影响其他变量。 引用类型:存储读数据的内存地址的引用,位于受管制的堆(Heap)上作为引用类转载 2007-05-02 22:40:00 · 764 阅读 · 0 评论 -
在.NET程序中正确使用String类型
在实际程序中,String类型用得非常广泛,然而,由于.NET对String类型变量的独特管理方式,使用不当,会严重影响程序的性能。我们分几个方面来谈这个问题:1 了解String数据的内存分配方式编写一个控制台应用程序,输入以下测试代码: class Program { static void Main(string[] args) {转载 2007-09-17 22:32:00 · 804 阅读 · 0 评论 -
分治法:二分检索算法
已知一个按非降次序排列的一的元素表a1,a2,a3....,an,要求判定给定元素在元素表中是否出现,如出现找出给定元素的位置,这个问题就可以用到 分治法中的二分检索法来做算法:procedure BINSRCH(A,n,x,j) //一个非降序排列的元素数组A(1:n),n>=1,判断x是否出现。若出现,置j,使得x=A(j),若不出现,j=0//integer low,high原创 2007-09-19 13:27:00 · 2501 阅读 · 1 评论 -
.Net中数据绑定总结
数据绑定可以说是最令人愉快的功能之一。这种非常灵活的语法允许开发人员不仅可以绑定到数据源,而且可以绑定到简单属性、集合、表达式甚至是从方法调用返回的结果1、可以绑定的有:A、属性 B、方法 C、表达公式绑定属性:举例: 前台页面:# dir %>后台页面: 用属性返回 public string dir { get原创 2007-09-21 21:51:00 · 1625 阅读 · 0 评论 -
C#处理文本文件
文本文件是一种常用的文件格式,所以如何处理文本文件也就成为编程的一个重点。本文就来探讨一下用C#是如何来处理文本文件。其内容重点就是如何读取文本文件内容、如何改变文本文件的内容,以及如何用C#来实现对读取后的文本文件的打印预览和打印。 一. 本文程序设计和运行的软件环境: (1).微软公司2000服务器版 (2)..Net FrameWork SDK Beta 2 二转载 2008-02-09 15:50:00 · 1008 阅读 · 0 评论 -
验证码识别的基本思路及方法
投票软件比较有技术含量的部分就在验证码识别。为防止投票作弊,很多投票网站都会加随机验证码,输入验证码后才能投票。但是加了验证码是否就能万无一失呢,也不尽然。虽然不是所有验证码都能识别(如QQ的变形汉字验证码是不太可能用软件识别的,个人觉得),但还是有很多验证码可以用软件来识别的。下面以天涯博客里的评论验证码为例,说明验证码识别的基本思路和方法:第一步、获取验证码图片C#可以用HttpWe原创 2008-02-09 20:59:00 · 3626 阅读 · 0 评论 -
图像二值化(黑白图)
通过对灰度图像二值化处理,能够凸现出感兴趣目标的轮廓.灰度图像的二值化处理就是讲图像上的点的灰度置为0或255,也就是讲整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要原创 2008-02-09 21:11:00 · 12634 阅读 · 0 评论 -
模拟POST方法
用模拟POST方法向http://localhost:81/clientpost/post.php提交评论信息using System.Net;using System.IO; private void btnPost_Click(object sender, EventArgs e){ WebClient wc = new WebClient(); System.原创 2008-02-07 18:05:00 · 1129 阅读 · 0 评论 -
去噪:用于验证码图片识别的类续(C#代码)
1、如何设前景/背景的分界值 UnCodebase类中有一个GetPicValidByValue( int dgGrayValue) 函数,可以得到前景的有效区域,常有人问我前景/背景的分界值dgGrayValue是如何确定的(常用的是灰度128)。这个值的获取是有数学算法,叫最大类间方差法,即图像的前后景的平方差为最大时的值就是我们关心的分界值,对付如 这样较复杂的背景非转载 2008-02-09 22:55:00 · 4330 阅读 · 2 评论 -
验证码的破解思路
研究了3天验证码破解! 尝试了好多种方法,都以失败告终! 不过最后还是在我不断的努力下!成功完成对验证码图片的数字化读取! 测试了一下,正确率在85%以上,还算不错! 总结一下自己的思路过程! 1.用PHP读取验证码图片上每个像素的色彩值! 2.将验证码边框上的色彩变为白色 3.用循环方法,去除背景上的色彩杂点,将数字部分的颜色改为000000 接着就是对图像的读取了!转载 2008-02-13 22:50:00 · 1907 阅读 · 0 评论 -
识别动网的验证码
基于矢量,掺杂矢量的角度值随机偏移和长度值随机偏移,默认的比例为角度:10度和长度:10%特点: 图片大小固定,默认80*20。数字个数固定,默认4,每个数字大小固定,默认20*20。 矢量随机角度值(默认随机量10°)和随机长度值(默认随机量10%比率)。最终图片根据随机后的点阵自动缩放大小调整。 有随机噪点。默认噪点比率:背景20%,数字10%。转载 2008-02-13 22:45:00 · 1399 阅读 · 0 评论 -
C#下的Raw Socket编程实现网络封包监视
导读: 谈起socket编程,大家也许会想起QQ和IE,没错。还有许多网络工具如P2P、NetMeeting等在应用层实现的应用程序,也是用socket来实现的。Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点。Socket规范1.1版是在1993年1月发行的,并广泛用于此原创 2008-02-19 17:59:00 · 913 阅读 · 0 评论 -
C#中处理XML文档的方法
用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程。 已知有一个XML文件(bookstore.xml)如下: xml version="1.0" encoding="gb2312"?>bookstore> book genre="fantasy" ISBN="2-3631-4"> title>Oberons Legacytitle> author>原创 2008-02-19 15:18:00 · 787 阅读 · 0 评论 -
HL7 2.X解析(C#版)
Hl7引擎的目标主要是解决将数据按HL7协议的要求标准化,和标准业务的集成和不同系统间标准业务数据的同步。在多年的医院集成平台信息化过程中,HL7标准组织和解析最复杂了,下面是我用了多年HL7引擎解析,因公司升级使用了HL73.0版本,决定把HL72.X引擎放到博客上保存。 (引擎解析类)Decode.cs using System;using System.Collections.Gener原创 2011-09-30 20:26:35 · 28008 阅读 · 11 评论