C#
文章平均质量分 72
X_Craft
这个作者很懒,什么都没留下…
展开
-
WebBrowser-Inner/Outer属性
关于HtmlElement类的 InnerHtml、InneText、OuterHtml、OuterText属性的使用MSDN里的介绍看得不是很明白,以下是一个小测试 DIV容器 A:DIV容器 B:code HtmlDocument document = wbs1.Document;原创 2009-07-14 09:08:00 · 880 阅读 · 0 评论 -
多线程-异常处理
任何线程创建范围内try/catch/finally块,当线程开始执行便不再与其有任何关系。如下代码: static void Main(string[] args){ try { new Thread(TProc).Start(); } catch (Exception ex) { //不会捕获原创 2009-09-02 17:11:00 · 911 阅读 · 0 评论 -
多线程-前台和后台线程
线程默认为前台线程,如果进程中存在前台线程,即使主线程结束了,进程仍然是存活的(对于程序失败退出的普遍原因就是存在“被忘记”的前台线程),而对于后台线程,主线程结束,后台线程也自动中止,整个进程结束,线程的IsBackground属性控制它的前后台状态,相关代码如下:static void Main(string[] args){ Thread t = new Threa原创 2009-09-02 16:33:00 · 696 阅读 · 0 评论 -
多线程-参数传递
传递参数给线程的方法通常有两种方法: 一、利用多线程-创建线程一节中提到的ParameterizedThreadStart委托,它可以接收单个Object参数public delegate void ParameterizedThreadStart (object obj);例如:class ThreadTest { static vo原创 2009-09-02 16:01:00 · 632 阅读 · 0 评论 -
多线程-优先级
在Windows中每个线程都会被赋予一个从0(最低)到31(最高)的优先级号,Microsoft并没有提供任何方法直接获取或设置线程0~31的优先级号,而是采用了进程优先级类+线程相对优先级(相对进程优先级)的模式来提供线程优先级的调节,系统负责将进程优先级类和线程的相对优级映射到0~31的优先级号上,而这种映射方式随操作系统版本升级而变化,同时Microsoft在进行线程调度时也会动态提高线程的原创 2009-09-02 00:12:00 · 693 阅读 · 0 评论 -
自定义类中的异常处理策略
1、首先要明白异常会在什么地方抛出,以及抛出异常的可能性有多大,如: inStream = new FileStream(inFile, FileMode.Open, FileAccess.Read); 对于文件IO这样的代码,大家心里都会有一个概念,即它会抛出异常但如:byte[] value = Convert.FromBase64String(base64原创 2009-08-31 23:03:00 · 647 阅读 · 0 评论 -
C#语言规范
MS在VS安装包中提供了一份完整的C#语言规范文档C#语言规范2.0版: 文件位于 Visual Studio 2008 安装目录下的 VC#/Specifications/2052 目录中,文件名为: C# Language Specification 2.0.doc,另外此目录下还包含有C#语言规范1.2版C#语言规范 3.0版: 文件位于 Visual Studio 2008原创 2009-08-21 16:42:00 · 716 阅读 · 0 评论 -
using语句
C# 通过 .NET Framework 公共语言运行库 (CLR) 来自动释放用来存储不再需要的对象的内存。内存的释放具有不确定性;一旦 CLR 决定执行垃圾回收,就会释放内存。但是,通常最好尽快释放诸如文件句柄和网络连接这样的有限资源。 传统的作法可能是:FileStream fStream = null;try{ fStream = new FileStream("c原创 2009-08-21 16:35:00 · 1345 阅读 · 0 评论 -
DES
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位(实际上密钥为64位而DES只用到其中56位),明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三原创 2009-08-19 22:50:00 · 2831 阅读 · 0 评论 -
Mail-POP3
邮件背景知识http://blog.csdn.net/X_Craft/archive/2009/07/15/4350960.aspx .net2.0 中有一个smtp类用于发送邮件,但没有pop3类进行邮件接收,在.net中进行邮件接收开发的一种方式是使用TcpClient类和NetworkStream类根据pop3协议自已制作一个pop3Helper类,但这并不容易,最大的问题就是邮原创 2009-07-15 16:34:00 · 979 阅读 · 0 评论 -
委托与事件
C#中的委托相当于C++的函数指针或成员函数指针,不过与 C++ 函数指针不同,委托是完全面对对象的;另外,C++ 指针仅指向成员函数,而委托同时封装了对象实例和方法。委托声明委托是一种类型,一种引用类型,用来封装带有特定签名和返回类型的方法委托利用关键定delegte创建,后跟一个返回类型和可以委托给它的方法的签名 public delegate int MyDge(ob原创 2009-09-22 21:25:00 · 799 阅读 · 0 评论 -
多线程-线程池
在多线程方面《核心》显得有些深涩难懂,《C#中的多线程》不太系统,翻译得不通顺,倒是《C#线程池参考手册》在部分写得不错,通顺易懂,另一个不错的参考是MSDN的《如何:使用线程池(C#)》 http://msdn.microsoft.com/zh-cn/library/3dasc8as(VS.80).aspx,当然,这仅指对整体概念的了解,具体细节还是主要参考《核心》和MSDN 试想一个W原创 2009-09-20 21:52:00 · 1573 阅读 · 0 评论 -
WebBrowser-页面操作
WebBrowser的一个应用就是网页自动填单,以下以Yahoo中国邮箱注册为例 https://member.cn.yahoo.com/cnreg/reginfo_ycn.html?id=20001介绍一个自动填单的一些技术 一些常用字段的值设置: //用户名文本输入框 HtmlElement el原创 2009-07-14 11:10:00 · 1261 阅读 · 0 评论 -
WebBrowser-HTML DOM
全面介绍WebBrowser的中文资料比较少,同时,使用WebBrowser操作网页最好具备一定的HTML DOM背景知识http://www.w3school.com.cn/ 是一个很不错的网站,上面提供了各类丰富的Web技术中文参考,包括HTML DOM,同时,HTML DOM中文文档也弥补了WebBrowser中文资料不多的问题。 WebBrowser貌似并不是完全以HTML原创 2009-07-14 10:45:00 · 1346 阅读 · 0 评论 -
T4模板基础
T4模版引擎之基础入门 - 懒惰的肥兔 - 博客园http://www.cnblogs.com/lzrabbit/archive/2012/07/15/2591085.html你必须懂的 T4 模板:深入浅出 - 滴答的雨(何雨泉) - 博客园http://www.cnblogs.com/heyuquan/archive/2012/07/26/2610959.html原创 2014-09-21 00:56:21 · 598 阅读 · 0 评论 -
Unix时间转换
Unix时间是一种UNIX或类UNIX系统使用的时间表示方式,定义为从协调世界时UTC 1970年01月01日00时00分00秒起至现在的总秒数。相关知识请参考博文 UNIX时间及相关概念原创 2014-05-15 11:38:33 · 2174 阅读 · 0 评论 -
ref传递引用类型
在C#中,变量分为两种类型:一种是值类型,另一种是引用类型.任何称为"类"的类型都是引用类型,而任何结构和枚举都是值类型(System.Int32结构,System.DayOfWeek枚举).在方法间传递参数的时候,普通的传递参数都是传值的. 在传递引用类型的对象时,对一个对象的引用会传递给方法.也就是说,目标方法(被调用者)可以修改对象的成员,而源方法(调用者)可以看到这些修改.对于传递值类型的原创 2014-05-07 00:19:57 · 2133 阅读 · 0 评论 -
Hook
关于Hook的概念,可以先参考: 微软中国社区-Hook专题 http://www.microsoft.com/china/community/program/originalarticles/techdoc/hook.mspx MSDN SetWindowsHookEx http://msdn.microsoft.com/en-us/library/ms644990(VS.85).asp原创 2009-10-02 16:51:00 · 1441 阅读 · 0 评论 -
多线程-线程同步
前言关于.net中线程的基本应用可以参考《C# 3.0核心技术》中多线程的第一部分,但线程同步方面的最好参考仍然是Jeffrey的《Windows核心编程》,其中不仅有详细的介绍,还有经典范例代码。《核心》是基于Win32API的,因此在学习.net线程同步之前,有必要对Win32API与.net的线程同步作一个概述。1、首先要明白什么是原子操作,例如g++拆解,这部分的知识参考《核心》P原创 2009-09-21 21:27:00 · 1293 阅读 · 0 评论 -
文件I/O
在.net中读写文件的操作是由大量支持数据流概念的类来完成的,所以文件IO又可以称为文件流IO文件IO涉及到的.net相关类很多,所有这些类都存在于System.IO命名空间中,这里仅对文件IO相关类作一个整体介绍,具体细节及代码范例请参考本地MSDN:文件和流I/Oms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv原创 2009-08-19 16:46:00 · 608 阅读 · 0 评论 -
NotifyIcon和ToolTip
.net提供了一个NotifyIcon可视组件用于实现应用的拖盘图标和托盘气泡提示功能 在VS里可以添加一个以上的Notify组件,如果它们的Visable都是true,当应用run起来时将显示两个托盘图标 在利用NotifyIcon实现气泡提示方面要注意:一次只能在任务栏中显示一个气球提示。如果当前在任务栏中已经显示了一个气球提示,则尝试显示其他气球提示将导致忽略 timeo原创 2009-08-15 09:29:00 · 1292 阅读 · 1 评论 -
汉拼转换
汉字转换成拼音大致有四种方法 一、自定义转换表它的大致原理:汉字本身就有一个GB2312编码表,一个拼音可能对应多个汉字,而拼音的组合本来就不多,可以建立一个拼音音节表,而这两个表之间存在对某种对应关系,利用这两个表就能够实现汉拼转换。网上有已封装好的类,不过据说这种方法可能对生僻字支持不好 二、IME的IFELanguage接口 据说是一个比较好的方法,没有测试过,也原创 2009-08-14 11:20:00 · 3492 阅读 · 0 评论 -
WMI-概述
WMI是Windows Management Instrumentation的简称,即:视窗管理规范。在Windows 2000或以后的版本中均安装得有,NT4.0则需要安装WMI的核心组件。通过WMI可以获取远程计算机的各种数据信息,控制远程计算机的各种行为,而这就像操作本地机一样方便、简单。 WMI从根本上说应该为一种服务,WMI服务在组件服务中的显示名称为"Windows Manag原创 2009-07-23 11:52:00 · 2340 阅读 · 1 评论 -
异常处理
.net对异常的处理流程:当异常发生时,它顺着调用路径展开栈,一层层的向上寻找异常处理代码,如果有某一层有异常处理代码,则程序流程从异常处理代码处重新开始执行,如果都没有异常处理代码,则异常将交由CLR处理 C# Primer P268处的代码很好的说明了.net异常处理的过程 public class Test { pu原创 2009-07-17 21:36:00 · 528 阅读 · 0 评论 -
WebClient-Session和Cookie
背景知识:Session和Cookiehttp://blog.csdn.net/X_Craft/archive/2009/07/19/4361989.aspx WebClient不会保存http响应报文中的SetCookie,更不会设置下一次http请求报文的Cookie,通过HTTP分析工具可以观察到这一点。也就是说两个WebClient调用之间不具有持续性。 在sessio原创 2009-07-20 00:11:00 · 3769 阅读 · 0 评论 -
WebClient-UploadXXX
WebClient提供了一系列Upload方法可用于提交数据,使用它可以POST数据到特定的HTTP页,或SORT数据到FTP空间。 在Http方面UploadXXX方法主要用于自动提交表单数据 相关背景知识http://blog.csdn.net/X_Craft/archive/2009/07/19/4361591.aspx 我们知道Html中form表单的methd原创 2009-07-19 23:44:00 · 40125 阅读 · 0 评论 -
C# Primer 小记
章二:C#基础1、还可以单独使用if语句,不加else语句。也可以合并else if子句,测试多个条件 2、case无内容贯穿不需要goto 3、default:后也需要break 4、goto语句有两个限制,不能跳转到像for循环这样的代码块中,也不能跳出类的范围,不能退出try...catch块后面的finally块 5、可以获取枚举的字符串表示(从字符串获原创 2009-07-17 21:32:00 · 640 阅读 · 0 评论 -
Mail-POP3(LumiSoft.Net)
LumiSoft.Net提供了丰富的网络开发组件,下载地址:http://www.lumisoft.ee/lswww/download/downloads/Net/ 解压缩后找到引用bin/Release/LumiSoft.Net.dll打开命名空间using LumiSoft.Net.Mime;using LumiSoft.Net.POP3.Client;原创 2009-07-15 17:02:00 · 4203 阅读 · 3 评论 -
多线程-创建线程
C#里线程操作类大概有三个ThreadBackgroundWorkerThreadPool 这里先介绍使用Thread创建线程的方法Thread t; //方法一:使用ThreadStart委托 t = new Thread(new ThreadStart(TProc1)); t.Start();//方法一的变形:简短形式t = new原创 2009-07-13 21:16:00 · 743 阅读 · 0 评论 -
WebBrowser-导航加载
方法:Navigate() 事件:Navigating()Navigated()DocumentCompleted() Naviagte()的一个有newWidnow参数的重载用于打开一个默认浏览器窗口并加载目标url,此时这个默认浏览器窗口已独立于WebBrowser Navigating()的e参数里有个Cancel属性,可用于取消导航操作原创 2009-07-12 20:33:00 · 1413 阅读 · 0 评论 -
Win32 API PInvoke
PInvoke什么意思? Platform Invocation Services 以下两篇文章阐述了在C#中使用Win32API的细节 Visual C#中调用Windows API的要点http://www.cnblogs.com/showna/articles/869295.html 在 C# 中通过 P-Invoke 调用Win32 DLLhttp://ms原创 2009-07-24 22:37:00 · 940 阅读 · 0 评论 -
EXCEL IO
在.net中操作Excel表格大致有三种方式1、利用com组件Microsoft Excel 11.0 object library(不同版本的Excel,类库不同,这是2003的)有必要的话 using Excel 2、利用ado.net将Excel表格当作数据源 3、HMTL或XML的content-type 利用 Microsoft Excel 11.原创 2009-07-25 22:58:00 · 1097 阅读 · 0 评论 -
注册表操作
C#中使用Registry和RegistryKey类进行注册表操作,它们都位于Microsoft.Win32命名空间,因此,要使用它们请加入using Microsoft.Win32引用 在本地MSDN中就有详细的关于这两个类的中文参考 以下是一些操作知识点 Registry:静态类,提供表示 Windows 注册表中的根项的 RegistryKey 对象,并提供访问项原创 2009-07-30 23:21:00 · 1071 阅读 · 0 评论 -
系统热键
.net中没有提供system-wide hot key的处理类,注册和释放热键需要使用Win32的两个API,原型如下BOOL RegisterHotKey( HWND hWnd, int id, UINT fsModifiers, UINT vk);BOOL UnregisterHotKey( HWND hWnd原创 2009-08-16 14:51:00 · 612 阅读 · 0 评论 -
MD5
MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(原创 2009-08-14 16:41:00 · 720 阅读 · 0 评论 -
INI文件操作
虽然微软早已经建议在WINDOWS中用注册表代替INI文件(现在更流行的方法可能是XML文件)。但是在实际应用中,INI文件仍然有用武之地,尤其现在绿色软件的流行,越来越多的程序将自己的一些配置信息保存到了INI文件中。 INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个关键词(key)及其对应的值(Value)[Section]Key=Valu原创 2009-08-14 10:33:00 · 998 阅读 · 0 评论 -
Cache、Cookie清除
完善的Cache和Cookie清除功能应包含清除特定url相关和支持多种浏览器 此处仅讨论清除IE在系统中所有的Cache和Cookie的实现 IE的Cookie存放在大概这样一个位置"C:/Documents and Settings/Administrator/Cookies"Cahce存放在大概这个位置"C:/Documents and Settings/Administ原创 2009-08-09 20:34:00 · 5002 阅读 · 0 评论 -
随机汉字
GB2312是基本的汉字编码集,通过GB2312编码表里的汉字编码规则,生成随机的汉字编码,再通过Encoding类进行转换,可以达到生成随机汉字的目的。 GB2312的汉字编码由区域码和位置码两部分组成,如汉字“好”的十六进制区域码是ba,十六进制位置码是c3 Encoding ed = Encoding.GetEncoding("GB2312");原创 2009-08-10 22:17:00 · 1318 阅读 · 0 评论 -
机器特征码
在计算机硬件设备中 CPU ID、BIOS、主板、内存、硬盘、卷SN,网卡MAC地址可作为机器特征码,通过硬件检测工具如everest可以看到这一点。 CPU IDcpu id并不具备唯一性,同一批号的cpu其id可能相同1、WMISELECT ProcessorId FROM Win32_Processor 2、API貌似没有相关win32 api可以用于获取CP原创 2009-07-31 17:05:00 · 7144 阅读 · 2 评论 -
SetupAPI.dll和DeviceIoControl
SetupApi和DeviceIoControl 用于实现对硬件设备的控制,如枚举,属性获取,停用启动等 private void button1_Click(object sender, EventArgs e) { Guid guid = ApiConst.GUID_DEVCLASS_DISKDRIVE;原创 2009-07-31 23:18:00 · 3524 阅读 · 1 评论