- 博客(59)
- 资源 (24)
- 收藏
- 关注
原创 生成验证码(C#)
准备工作:1,随即码生成器。2,背景图像。(1)随即码生成器随机码的生成大概有俩种思路:1,直接由random生成,直接做验证码。2,由random生成字符,然后从指定字符串中取得字符。以第一种为例: string[] str = new string[4]; string serverCode = ""; //生成随机生成
2010-08-30 13:44:00 749
原创 验证码的生成(VB)
在Web系统中很多时候需要用到校验码,例如我们经常遇到不少电子邮件、论坛的注册过程需要我们输入校验码,这是为了提高安全性。今天我们就来讲讲如何生成校验码。 使用ASP.NET来生成校验码图像很方便,网上也有不少教程与文章有介绍,但是都讲的太简单了,不够实用。我来介绍一点自己的思路,算是抛砖引玉吧。 首先我们来看看,生成校验码的一种常见方式: 1. 生成校验码的字符串 2.
2010-08-30 13:35:00 1847
原创 窗体间传值
俩个窗体之间,是不能直接调用彼此的相应变量和控件的值的。窗体通信有以下几种方式,1,单项通信即一个窗体调用另一个窗体,同时不需要新调用的窗体的返回值。方法有:(1),用构造函数法在Form2定义时,定义成如下形式:public static string array ; //定义一个字符串,保留传入的串值。 public Search(string
2010-08-28 18:17:00 726
原创 PageDataSoure实现分页(转)
Asp.net提供了三个功能强大的列表控件:GridView、DataList和Repeater控件,相对GridView,DataList和Repeater控件具有更高的样式自定义性,很多时候我们喜欢使用DataList或Repeater控件来显示数据,但是Repeater和DataList没有分页功能,有时很不方便。 PagedDataSource类封装了GridView控件的属性
2010-08-26 16:29:00 1374
原创 做项目要精的道理
从最近做这个网站说起,虽然是个小网站,但是功能不少。首先是要抓取网页上的数据,然后分词,建立索引。最后根据用户输入的关键字,推荐相应的职位信息,我们称这个项目为:职位推荐。然后,做了大概一个多月的时间,去发现做的什么都不是。首先,数据的抓取实现了,但是只能抓指定的几个网站,然后邮件发送实现了,但是界面没有美化,索引没有建立起来,原因是没有找到合适的提取关键字的算法。。。。然而,你若猛然看项
2010-08-23 20:05:00 646
原创 多线程--线程中断
设计思路:1,新建一个线程,其启动参数是要输出其运行状态。2,中断主线程若干秒,让新建线程持续运作。3,中断新建线程,输出起运行次数和运行状态。 int count = 0; Thread t2 = new Thread(() => { try
2010-08-22 09:05:00 765
原创 comboBox加载颜色下拉列表框
在comboBox中,实现自定义加载项需要设定以下俩个内容。1,comboBox1.DrawMode=OwerDrawFixed; //即设定组合框的加载方式为手动加载。2,重写comboBox的Draw_Item事件。private void Form1_Load(object sender, EventArgs e) { myCombo
2010-08-20 21:19:00 2277
原创 多线程--传入参数
线程类Thread是可以传入参数,但是只支持传入一个参数,其类型是object类型。因此要传入多个参数的话就需要就行包装。也可以把要传入的参数写入到一个函数传进去。1,匹配委托传入参数。ParameterizedThreadStart委托支持传入一个参数。匹配此委托即可传入一个参数。new Thread((date) => Console.WriteLine(((DateTime)da
2010-08-18 19:30:00 1178
原创 多线程--起点
首先给出多线程的定义(百度给的定义):在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。多线程可以更加充分的利用CPU的资源,在相对较短的时间,完成大量的任务。最近,因为项目中,要抓取网页的数
2010-08-17 19:44:00 907 1
原创 Lambda表达式从入门到精通(转)
这里介绍C# Lambda表达式,它实际上和匿名方法没有什么不同。Lambda的输入参数就对应着delegate括号里面的参数,由于C# Lambda表达式可以推断参数的类型,所以这里的参数无需声明。 C#语言还是比较常见的东西,这里我们主要介绍C# Lambda表达式,包括介绍一个Lambda就是一个delegate,一个delegate指向一
2010-08-15 16:49:00 1599 4
原创 进度条的使用方法
通常,在用户进行上传和下载的过程,需要一段时间。如果能显示进度条的话,用户就能知道大致的进程,是等待不是那么枯燥。进度条使用大致思路如下:1,首先进度条的状态应该是动态改变的。即应该有一个可以动态更改进度条的值的函数。并且要求是我拖函数(因为进度条类的要求);所以,首先要定义一个委托。2,一个执行改变进度条的函数。注意起参数要和上面的委托参数一致。下面开始写代码实现多线程操作进度条
2010-08-15 15:10:00 1249
原创 InvokeRequie方法和属性
在设计中为了让界面与逻辑分离,我的做法是使用事件,界面只要响应事件来处理界面的显示就行了。而事件在逻辑处理中可能由不同的线程引发,这些事件的响应方法在修改界面中的控件内容时便会引发一个异常。这时就用到了Control.InvokeRequired 属性 与Invoke方法。MSDN中说:获取一个值,该值指示调用方在对控件进行方法调用时是否必须调用 Invoke 方法,因为调用方位于
2010-08-15 10:25:00 1474 1
原创 C#多线程实战--一个写程序,多个读程序
单个写入程序/多个阅读程序在.Net类库中其实已经提供了实现,即System.Threading.ReaderWriterLock类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#的多线程编程。问题的提出所谓单个写入程序/多个阅读程序的线程同步问题,是指任意数量的线程访问共享资源时,写入程序(线程)需要修改共享资源,而阅读程序(线程)需要读取数据。在这个同步问题中,很容易得
2010-08-14 21:02:00 2851 2
原创 C#多线程编程
在实例化Thread的实例,需要提供一个委托,在实例化这个委托时所用到的参数是线程将来启动时要运行的方法。在.net中提供了两种启动线程的方式,一种是不带参数的启动方式,另一种是带参数的启动的方式。 不带参数的启动方式 如果启动参数时无需其它额外的信息,可以使用ThreadStart来实例化Thread,如下面的代码:
2010-08-14 20:18:00 629
原创 ASP。Net页面执行顺序
ASP.NET页面事件执行顺序using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using Syst
2010-08-14 20:14:00 662
原创 开发自己的进程管理器(C#)
首先在窗体上放一个ListView和俩个按钮。1,获取本机的进程并显示 // 获取本机当前的进程 private void GetProcess() { listView1.Items.Clear(); //首先清除listiview的所有项 Process[] myProLis
2010-08-14 13:18:00 3295 3
原创 使用Process类对进程进行管理
Process 类的作用是对系统进程进行管理,我们使用Process类中的一些方法结合Winform开发个简单的进程管理器:在使用Process类的时候,先导入命名空间System.Diagnostics。使用Winform画出如上的界面,数据显示使用的是Listview。在窗体的Load事件中写入如下代码: 1: private void Form1_Load(obje
2010-08-14 10:17:00 965
原创 C#运行EXE程序
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) {
2010-08-14 09:58:00 2093 1
原创 ASP。net数据绑定语法
(1),首先对数据绑定控件分类:1,基本的数据绑定控件。如ArrayList,DropDownList,RadiobuttonList,ListView等等。2,数据库绑定控件。GrideView,Reapter,DataView等等。(2),数据控件的数据绑定:1,对于基本的数据绑定控件,必须首先调用page类的DataBind()方法之后,才能进行数据的绑定操作。而对于数据库绑
2010-08-13 18:49:00 1088 1
原创 C#GJBC32.4.4-线程和服务
32.4.4 线程和服务使用服务时,必须处理线程。如前所述,如果服务的初始化花费的时间过多,则SCM就假定服务启动失败。为了解决这个问题,必须创建线程。服务类中的OnStart()方法必须及时返回。如果从TCPListener类中调用一个AcceptSocket()之类的停滞方法,就必须启动一个线程去完成调用工作。使用能处理多个客户机的联网服务器时,线程池也是非常有用的。Accep
2010-08-12 11:31:00 521
原创 C#GJBC-32.4.3Windows服务项目
32.4.3 Windows服务项目使用C# Windows服务的新项目创建向导可以创建Windows服务,该项目命名为QuoteService,其窗口如图32-7所示。注意,在选择项目时不要误选为Web服务项目。图 32-7在单击OK按钮开始创建Windows服务应用程序之后,就会出现一个外表与Windows Forms应用程序相似的设计器,但是不能在其中插入Windo
2010-08-12 11:28:00 920
原创 C#GJBC-32.4.2TcpClient示例
32.4.2 TcpClient示例客户端是一个简单的Windows应用程序,可以在此输入服务器的主机名和端口号。客户端应用程序使用TcpClient类连接正在运行的服务器,然后接收返回的消息,并显示在多行文本框中。窗体的底部还有一个状态栏,如图32-5所示。图 32-5必须在代码中使用下面的using语句:using System;using System.Dr
2010-08-12 11:01:00 600
原创 C#GJBC-32.4.1使用套接字类库
32.4.1 使用套接字的类库可以在服务中建立任何功能,例如扫描文件、进行备份或病毒检查,或者启动.NET Remoting服务器。但所有的服务程序总是有一些类似的地方。这种程序必须能启动(并返回给调用者),能停止和暂停。下面讨论用套接字服务器实现的程序。对于Windows 2000 或Windows XP系统,Simple TCP/IP Services可以安装为Windows组
2010-08-12 10:56:00 736
原创 C#GJBC-32.4windows服务
32.4 创建Windows服务创建的服务将驻留在引用服务器内。对于客户发出的每一个请求,引用服务器都返回引用文件的一个随机引用。解决方案的第一部分由3个程序集完成,一个用于客户机,两个用于服务器,图32-4显示了这个解决方案。程序集QuoteServer包含实际的功能。服务可以在内存中读取引用,然后在套接字服务器的帮助下响应引用的请求。QuoteClient是Windows Form
2010-08-12 10:53:00 793
原创 C#GJBC-System.ServiceProcess命名空间
32.3 System.ServiceProcess命名空间在.NET Framework中,可以在System.ServiceProcess命名空间中找到实现服务的3个部分的服务类:● 从ServiceBase类继承的类可以实现服务。ServiceBase类用于注册服务、响应开始和停止请求。● ServiceController类用于实现服务控制程序。
2010-08-12 10:51:00 1492
原创 C#GJBC-32.2.3服务器配置程序
不能使用xcopy安装服务,服务必须在注册表中配置,其启动类型可以设置为自动、手动或禁用。必须配置服务程序的用户、服务的依存关系(例如,一个服务必须在另一个服务开始之前启动)。所有的配置工作都在服务配置程序中进行,安装程序可以使用服务配置程序配置服务,服务配置程序也可以在以后改变服务配置参数。32.2.3 服务配置程序
2010-08-12 10:48:00 588
原创 C#GJBC-32.2.2服务器控制程序
32.2.2 服务控制程序顾名思义,使用服务控制程序可以控制服务。为了停止、暂停和重新启动服务,可以把控制代码发送给服务,处理程序应该响应这些事件。此外,还可以询问服务的实际状态,执行响应定制控制代码的定制处理程序。
2010-08-12 10:46:00 519
原创 C#GJBC-3.2.1服务程序
32.2.1 服务程序在讨论服务的.NET实现方式之前,首先讨论服务的Windows体系和服务的内部功能。服务程序实现服务的功能。一般来说,服务程序需要3个部分:● 主函数● service-main函数● 处理程序在讨论这些部分前,首先需要介绍Service Control Manager (SCM)。对于服务来说, SCM的作
2010-08-12 10:44:00 696
原创 C#GJBC-windows体系的服务结构
32.2 Windows服务的体系结构操作Windows服务需要3种程序:● 服务程序● 服务控制程序● 服务配置程序服务程序本身用于提供需要的功能。服务控制程序可以把控制请求发送给服务,例如开始、停止、暂停和继续。使用服务配置程序可以安装服务,这意味着服务不但要复制到文件系统中,还要写到注册表中,并配置为一个服务。.NET组件不需要
2010-08-12 10:40:00 578
原创 C#GJBC-32.1windows服务
Windows服务是可以在系统启动时自动打开(不需要任何人登录机器)的程序。阅读完本章后,就可以修改第16和31章中讨论的服务器进程,使它们自动启动。在本章中将会了解到:● Windows服务的体系结构;服务程序的功能、服务控制程序和服务配置程序。● 如何使用System.ServiceProcess命名空间中的类实现Windows服务。●
2010-08-12 10:38:00 486
原创 C#31.6小节
31.6 小结本章回顾了System.Net命名空间中用于通过网络进行通信的.NET Framework类。从中可了解到,哪些.NET基类可处理网络和Internet上打开的客户连接,如何发送请求给服务器和从服务器上接收响应,最常见的应用就是接收HTML页面。利用.NET中可互操作的COM的优势,很容易在桌面应用程序中使用Internet Explorer。作为一般的规则,在使用S
2010-08-12 10:36:00 446
原创 C#GJBC-较底层的协议
31.5 较低层的协议本节简要介绍一些在较低层次上进行通信的.NET类。网络的通信分为几个不同的层次,本章迄今为止讨论的类都是工作在最高层,即处理某些命令的一层。如果考虑使用FTP传输文件,这个概念就非常容易理解,目前的GUI应用程序隐藏了许多FTP 细节,但在命令行上执行FTP还是不久之前的事。在这个环境中,我们显式地键入一些要发送至服务器的命令,以进行下载、上传和列出文件。
2010-08-12 10:34:00 811
原创 C#GJBC-较底层的协议
31.5 较低层的协议本节简要介绍一些在较低层次上进行通信的.NET类。网络的通信分为几个不同的层次,本章迄今为止讨论的类都是工作在最高层,即处理某些命令的一层。如果考虑使用FTP传输文件,这个概念就非常容易理解,目前的GUI应用程序隐藏了许多FTP 细节,但在命令行上执行FTP还是不久之前的事。在这个环境中,我们显式地键入一些要发送至服务器的命令,以进行下载、上传和列出文件。
2010-08-12 10:33:00 1015
原创 C#GJBC-31.4.2 IP地址和DNS名称
31.4.2 IP地址和DNS名称在Internet上,服务器和客户机都由IP地址或主机名(也称作DNS名称)标识。通常,主机名是在Web浏览器的窗口中键入的友好名称,例如www.wrox.com或www.microsoft.com等。另一方面,IP地址是计算机用于互相标识的标识符,它实际上是用于确保Web请求和响应到达相应机器的地址。计算机甚至可以有多个IP地址。为了使这些主机名
2010-08-12 10:30:00 962
原创 C#GJBC-31.4.1 URL
31.4.1 URIUri和UriBuilder是System(注意:不是System.Net)命名空间中的两个类,它们都用于表示URI。UriBuilder允许把给定的字符串当作URI的组成部分,从而建立一个URI,而Uri允许分析、组合和比较URI。对于Uri类,构造函数需要一个完整的URI字符串:Uri MSPage = new Uri("http
2010-08-12 10:28:00 662
原创 C#高级编程31.1.3 把结果输出为Html
31.3 把输出结果显示为HTML页面第一个示例说明了.NET基类可以从Internet上下载和处理数据。但是,迄今为止,从Internet上下载的文件都是以纯文本显示的。人们总是希望以Internet Explorer的界面样式查看HTML文件,以便可以看到Web文档的实际面貌。遗憾的是,.NET基类并不包含对Internet Explorer界面样式的控件的内在支持。我们需要编程调
2010-08-12 10:24:00 1099
原创 C#GJBC第三版--webrequest和webresponse
31.2 WebRequest类和WebResponse类WebClient类使用起来比较简单,但是它的功能非常有限,特别是不能使用它提供身份验证证书。这样,在上传数据时问题就出现了,许多站点都不会接受没有身份验证的上传文件。尽管可以给请求添加标题信息并检查响应中的标题信息,但这仅限于一般意义上的检查,对于任何一个协议,WebClient没有具体的支持。由于WebClient是通用的类,主要
2010-08-12 10:21:00 1095
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人