
c#
hanjieson
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SgmlReader使用小记
SgmlReader可以用来解析HTML/SGML,并能把不规范的Html转换成规范的XHtmlstring SgmlTranslate(string input){ var reader = new SgmlReader(); reader.DocType = "HTML"; reader.WhitespaceHandling = WhitespaceHand转载 2013-02-02 18:11:55 · 807 阅读 · 0 评论 -
c#编写仿Firebug,IE Developer Toolbar 鼠标悬停时选中元素的实现方法
添加引用:using mshtml;(C:\Program Files (x86)\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll)页面上放webBrowser控件。给Url一个网页地址。放一按钮button,click事件下:mshtml.HTMLDocument doc1 = (mshtml.HTMLDoc转载 2013-02-16 23:02:45 · 2586 阅读 · 14 评论 -
自动识别验证码的解决方案
投票软件比较有技术含量的部分就在验证码识别。为防止投票作弊,很多投票网站都会加随机验证码,输入验证码后才能投票。但是加了验证码是否就能万无一失呢,也不尽然。虽然不是所有验证码都能识别(如QQ的变形汉字验证码是不太可能用软件识别的,个人觉得),但还是有很多验证码可以用软件来识别的。第一步、获取验证码图片C#可以用HttpWebRequest类GET验证码的网址,得到返回的数据流,再将数据转载 2013-02-19 23:38:46 · 8733 阅读 · 0 评论 -
各类验证码收集
样式一:验证码样式一 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.GenImg(this.GenCode(4)); }转载 2013-02-19 23:19:04 · 2928 阅读 · 0 评论 -
用于验证码图片识别的类
最近写了几个网站的验证码图片自动识别程序,尽管每个网站的验证码图片都不相同,识别的方法有所差别。但写得多了,也总结出不少相同之处。今天抽空封装出一个基础类来,发现可以很好地重复利用,编写不同的验证码识别程序,效率提高了不少。好东东不能独享,现放出来供大家共同研究,请网友们妥善用之。 封装后的类使用很简单,针对不同的验证码,相应继承修改某些方法,即可简单几句代码就可以实现图片识别了转载 2013-02-19 23:39:52 · 1158 阅读 · 1 评论 -
Server Error in '/' Application.
Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file ap原创 2013-03-09 14:45:52 · 1356 阅读 · 0 评论 -
发送邮件
邮件发送主要使用MailMessage、SmtpClient两个类using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Net.Mail;/// ///Email 的摘要说明/// public class Email转载 2013-03-15 16:26:02 · 639 阅读 · 0 评论 -
mysql全文索引中文问题的解决
MySQL从3.23.23开始就逐渐支持全文索引和搜寻。 全文索引就是建index,全文搜寻就是去查index。 LIKE是用Regular Expression去做查询。 MySQL全文索引是一种index type:FULLTEXT。 全文索引的index只能用在MyISAM表格的char、varchar和text的字段上。 全文索引的index可以在create tabl转载 2013-03-22 18:25:30 · 923 阅读 · 0 评论 -
ASP.NET使用MySQL数据库得到错误Unable to find the requested .Net Framework Data Provider
如果你开发的程序是asp.net + mysql数据库,发布到服务器上,可能会得到如下错误:Unable to find the requested .Net Framework Data Provider. It may not be installed.具体解决办法是:1. 在你本地找到文件Mysql.Data.dll,上传到网站的bin目录下。一般都装了MySQL .NET转载 2013-04-13 17:43:52 · 3410 阅读 · 0 评论 -
c# HttpWebRequest与HttpWebResponse 绝技
原文地址:http://www.sufeinet.com/thread-6-1-1.html点击打开链接c# HttpWebRequest与HttpWebResponse 绝技 如果你想做一些,抓取,或者是自动获取的功能,那么就跟我一起来学习一下Http请求吧。本文章会对Http请求时的Get和Post方式进行详细的说明,在请求时的参数怎么发送,怎么带Cookie,怎转载 2013-04-22 22:50:13 · 945 阅读 · 0 评论 -
HtmlAgilityPack和XPath
上礼拜我在博客园发布了一篇关于网页数据分析和采集的文章,后来看过文章评论才知道原来现在已经有HtmlAgilityPack这个类库可以更方便地对HTML内容进行分析和提取。因此今天特别学习和实践了一下HtmlAgilityPack和XPath,并作下笔记。 1.下载HtmlAgilityPack.dll并将其添加引用到项目中,然后在代码中声明引用。下载地址:http://w转载 2013-02-14 02:51:40 · 3612 阅读 · 0 评论 -
webbrowser滚动条问题
问题:1.当写了htmlevent的onmousedown响应函数时,点击滚动条时会同时选择了网页的元素。2.当写了htmlevent的onmouseclick响应函数时,滚动条变成了点击一下才激活的了。3.当写了htmlevent的onmousedblclick响应函数时,滚动条变成了双击模式。原创 2013-02-10 01:53:37 · 1320 阅读 · 0 评论 -
C# webbrowser轻松实现自动填表
步骤如下:第一步:获取网页调用Webbrowser 的Navigate系列函数。等待网页装载完成,得到document对象。在调用 webBrowser.Document 之前,请确保 Webbrowser 网页装载完成,可以通过Webbrowser的DocumentCompleted事件进行监视。小技巧先指定一个变量:IsCompleted在调用Web转载 2013-02-07 16:22:12 · 9940 阅读 · 1 评论 -
webBrowser控件屏蔽页面在IE中打开
wbBrowser.NewWindow +=new CancelEventHandler(wbBrowser_NewWindow);private void wbBrowser_NewWindow(object sender, CancelEventArgs e){string url = wbBrowser.Document.ActiveElement.GetAttribute(转载 2013-02-07 16:25:46 · 1404 阅读 · 0 评论 -
在网页源代码中找某个节点的内容
***通过sourceIndex可找到节点,sourceIndex表示节点在源代码中的序号。mshtml.HTMLDocument doc = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument; IHTMLElement e = (IHTMLElement)doc.all.item(element.sourceIndex)原创 2013-02-07 17:11:17 · 3141 阅读 · 0 评论 -
C# webbrowser中新窗口在Webbrowser内打开屏蔽网页JS错误
private void webbrowser1_documentcompleted(object sender, webbrowserdocumentcompletedeventargs e) { //将所有的链接的目标,指向本窗体 foreach (htmlelement archor in this.webbrowser转载 2013-02-07 16:21:22 · 6021 阅读 · 0 评论 -
C#实现网页表单自动提交(126邮箱登录例程)
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){#region 参数设置HtmlElement btnSubmit = webBrowser1.Document.All["enter.x"]; //获取登录对应元素HtmlElement转载 2013-02-07 16:23:18 · 2052 阅读 · 0 评论 -
webbrowser屏蔽打开新网页
this.WebBrowser1.AllowNavigation = false;this.WebBrowser1.NewWindow += new CancelEventHandler(WebBrowser1_NewWindow);private void WebBrowser1_NewWindow(object sender, CancelEventArgs e){原创 2013-02-07 16:37:13 · 768 阅读 · 0 评论 -
解析html程序(C#版)——遍历各个节点(mshtml)
/*在项目里引用了mshtml.dll,并且引用命名空间:using mshtml;首先,参数html就是html文本内容(里面有markup标记和显示文本等等)其次,getHtmlDisplayContent这个函数就是获取html里浏览器上可看到的内容,即从源码中取出显示文本。 最后,traverseNodes是个人写的一个遍历各个节点的一个小小递归程序,没考虑转载 2013-02-07 20:29:32 · 14756 阅读 · 0 评论 -
C#中两个listBox双击与拖放共存的一种实现
今天做前台C#的同事,纠结在了,“拖拽事件使用的listBox1_MouseDown(s, e)会‘屏蔽掉’双击事件的使用的listBox1_DoubleClick”,这一问题上。查证多方资料,没好的解决方法。 于是笔者休息时实验了一下,使用e.Clicks这个属性可以解决。具体请参阅正文。 正文: 实现机理:((MouseEventArgs)e).Clicks通过值的{1转载 2013-02-08 23:07:51 · 1008 阅读 · 0 评论 -
webbrowser
介绍Vs 2005中带的WebBrowser控件使用以及一些疑难问题的解决方法, 如如何正确显示中文, 屏蔽右键菜单, 设置代理等; 收集的文章中有可能还带了一些Asp.Net开发使用微软的WebBrowser进行页面打印方面文章.01. vs2005中的WebBrowser控件的简单应用02. WebBrowser控件的简单应用203. WebBrowser控件应用:弹出新窗体和转载 2013-02-06 14:35:36 · 1104 阅读 · 0 评论 -
c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2
可以实现例如通过应用程序操作google搜索,用户输入要搜索的内容,然后在google中搜索;可以自动点击网页上的按钮等功能 1. 加入对Microsoft Internet Controls的引用; 2. 加入对Microsoft HTML Object Library的引用;(要引入Microsoft.mshtml.dll 地址是C:\Program Files转载 2013-02-06 15:18:31 · 11708 阅读 · 0 评论 -
浅谈C#中常见的委托
一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的。关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇。我就不用多废话了。今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景。Func,Action,Predicate全面转载 2013-04-27 15:55:14 · 709 阅读 · 0 评论 -
C#模拟POST提交表单--WebClient
C#模拟POST提交表单--WebClient 2012-08-08 14:25:09| 分类:技术文档 | 标签:c# webclient |字号大中小 订阅[csharp] view plaincopyprint?string postString = "arg1=a&arg2=b";//这里即为传递的参数,可以用工具抓包分析,也可以转载 2013-04-20 18:46:18 · 2736 阅读 · 1 评论 -
值类型和引用类型
C#的值类型包括:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。数组的元素,不管是引用类型还是值类型,都存储在托管堆上。引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。为了方便,本文简称引用类型部署在托管推上。值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实例)存储;转载 2013-05-06 07:51:25 · 1060 阅读 · 0 评论 -
解析C#委托、时间和Lambda表达式
.NET 中的委托确实和C/C++的函数指针非常相似。它是一个值类型,它包装了一个指向方法的引用。它的作用也是为了能够将方法和变量一样作为参数传递。委托的典型应用是控件的事件处理方法。很显然,一个控件在设计的时候没有办法知道当特定事件发生的时候,需要什么方法来处理,这就需要将方法作为参数传递给控件。在LINQ中,也大量用到了委托。声明一个委托要使用delegate关键字,如下:de转载 2013-05-07 21:04:20 · 999 阅读 · 0 评论 -
反射
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 程序代码在编译后生成可执行的应用,我们首先要转载 2013-05-07 21:24:22 · 608 阅读 · 0 评论 -
子线程获取父线程ui的数据
private string GetComboboxText() { return this.Invoke(new Func(() => { return this.comboBox1.Text; })).ToString(); }原创 2013-05-21 15:30:27 · 1385 阅读 · 0 评论 -
c# 传值调用和传引用调用
传值调用和传引用调用是几乎所有主流语言都会涉及到的问题,下面我谈谈我对C#中传值调用和传引用调用的理解。1. 一般对C#中传值调用和传引用调用的理解如果传递的参数是基元类型(int,float等)或结构体(struct),那么就是传值调用。如果传递的参数是类(class)那么就是传引用调用。如果传递的参数前有ref或者out关键字,那么就是传引用调用。验证示例的代码如下:转载 2013-05-07 20:58:27 · 2681 阅读 · 0 评论 -
控件复制问题
最近自己写一个tabcontrol控件,需要通过复制其中的一个panel模板来生成一个个tabcontrol选项卡,但是由于c#的传引用赋值机制,导致复制时出现一些问题。如:Panel p=new Panel();p=paneltemplate;p.Location=new Point(0,0);this.controls.Add(p);这样你会发现,其实并没有新建了一个p原创 2013-05-07 21:34:14 · 943 阅读 · 0 评论 -
正则表达式——贪婪模式与非贪婪模式
1. 概述贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。属于贪婪模式的量词,也叫做匹配优先量词,包括:“{m,n}”、“{m,}”、“?”、“*”和“+”。在一些使用NFA引擎的语言中,在匹配优先转载 2013-05-22 23:02:30 · 842 阅读 · 0 评论 -
richtextbox和textbox的换行符
richtextbox:显示:rn和n都能换行显示获取字符串:换行符为ntextbox:显示:只有rn能换行获取字符串:换行符为rn原创 2013-05-12 13:27:16 · 2683 阅读 · 0 评论 -
c#多重继承
其实想写这篇文章,是因为突然在整理论坛上的帖子的时候,突然发现一个人问我如何才能在C#中实现多重继承,当时我答的很隐晦,因此这里我想补充说明一下.首先,我要说明一下,C#中是没有类的多重继承这个概念.要使用多重继承必须要通过接口Interface来完成.可是大家都知道Interface实际上就是一个虚函数列表指针.内部封装的只有函数和属性.而且接口(Interface)不能实力化只能通过派转载 2013-07-18 14:51:31 · 1174 阅读 · 0 评论 -
获取webbrowser的useragent
private string getuseragent(){WebBrowser wb = new WebBrowser();wb.Navigate("about:blank");while (wb.IsBusy) Application.DoEvents();object window = wb.Document.Window.DomWindow;Type wt = wi转载 2013-05-05 20:41:02 · 4128 阅读 · 0 评论 -
正则表达式 去除相应HTML 标记
将HTML文本中的标记分为:注释,script ,style,以及其他标记分别去掉: 1.去注释,正则为: output = Regex.Replace(input, @"", string.Empty, RegexOptions.IgnoreCase); 2.去script,正则为: ouput = Reg转载 2013-05-05 20:38:48 · 1194 阅读 · 0 评论 -
正则表达式中的圆括号的作用
1.正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。 eg. 匹配A+一个数字+A+一个数字:(A\d){2}3.圆括号用法II:表示可选择性。 3.1 从两个直接量中选择一个 eg. gr(a|e)y匹配gray和grey,该例子还可以转载 2013-05-04 21:56:56 · 21772 阅读 · 1 评论 -
c# 使用 HttpWebRequest模拟登陆(附带验证码)
在C#中,可以使用HttpWebRequest进行相关的模拟登陆,登陆后进行相关的操作,比如抓取数据,页面分析,制作相关登陆助手等等。先说下流程1.使用httpwebrequest先进入你要登录的网站,获取cookie2.使用第一步获取的cookie到验证码的网页将验证码下载下来。3.使用Post数据 发送至网站。如果有cookie则继续保存。4.使用第三步的cookie登陆相转载 2013-04-21 22:24:15 · 882 阅读 · 0 评论 -
c#获取网页源代码
C#获取指定网页HTML原代码可使用 WebClient WebRequest HttpWebRequest 三种方式来实现。当然也可使用webBrowse!在此就不研究webBrowse如何获取了。WebClient ?private string GetWebClient(string url){ string转载 2013-04-21 23:46:05 · 1261 阅读 · 0 评论 -
C# webBrowser模拟登陆填充操作等(写网页注册机之类的时候要用到)
判断是否网络正常private bool IsConnectedToInternet(){ int Desc; return internet.InternetGetConnectedState(out Desc, 0);} 设置默认页面:webBrowser1.Navigate(new Uri("http://www.ic2ic.com/cop转载 2013-04-20 19:46:34 · 2158 阅读 · 0 评论 -
C#程序只允许运行一个实例的解决方案
最近在做winform的程序中,需要只能打开一个程序,如果已经存在,则激活该程序的窗口,并显示在最前端。在网上google了一哈,找到了很多的解决方案。这里我整理了3种方案,并经过了测试,现和朋友们分享:一、使用用互斥量(System.Threading.Mutex) 同步基元,它只向一个线程授予对共享资源的独占访问权。在程序启动时候,请求一个互斥体,如果能获取对指定互斥的访问权,转载 2013-05-01 10:05:42 · 702 阅读 · 0 评论