
C#
random_2011
这个作者很懒,什么都没留下…
展开
-
access时分秒
access 时间查询:日期查询:where time>#2016-01-01#精确到时分秒:where time>#2016-01-01 00:00:00# 此方式会有问题建议使用精确到时分秒:where time>cdate(2016-01-01 00:00:00)原创 2016-08-24 12:37:13 · 1924 阅读 · 0 评论 -
c#设计模式-总结(针对GOF23)
比较 设计模式常用程度适用层次引入时机结构复杂度Abstract Factory比较常用应用级设计时比较复杂Builder一般代码级编码时一般Factory Method转载 2015-08-18 16:24:33 · 920 阅读 · 0 评论 -
ManualResetEvent和AutoResetEvent的区别
class Program { /* * * ManualResetEvent都可以阻塞一个或多个线程, * 直到收到一个信号告诉ManualResetEvent不要再阻塞当前的线程。 * ManualResetEvent手动reset * ManualResetEvent会给线程1原创 2015-08-18 17:16:14 · 438 阅读 · 0 评论 -
c# GDI画圆
private void button1_Click(object sender, EventArgs e) { Bitmap bt = new Bitmap(100, 100); Graphics g = Graphics.FromImage(bt); Rectangle rect = new Rectang原创 2015-08-18 16:21:55 · 2118 阅读 · 1 评论 -
拆箱装箱
1、 装箱和拆箱是一个抽象的概念 2、 装箱是将值类型转换为引用类型 ;拆箱是将引用类型转换为值类型 利用装箱和拆箱功能,可通过允许值类型的任何值与Object 类型的值相互转换,将值类型与引用类型链接起来 例如: int val = 100; object obj = val; Console.WriteLine (“对象的值转载 2015-08-18 15:13:31 · 379 阅读 · 0 评论 -
Struct与Class的区别
1,class 是引用类型,structs是值类型2,当你实例化一个class,它将创建在堆上。而你实例化一个struct,它将创建在栈上3,当我们将class作为参数传给一个方法,我们传递的是一个引用。struct传递的是值而非引用。4,Class 可以有明显的无参数构造器,但是Struct不可以5,类使用前必须new关键字实例化,Struct不需要6转载 2015-08-18 20:16:24 · 936 阅读 · 0 评论 -
c# RTSP播放器
ONVIF ODM在onvif领域里名气很大,是一款开源的NVC实现。其实现采用了c# c++ F#。项目很大,也很复杂。最近研究了一下,自己调用其类库写了一个c#版的RTSP的播放器。难度不大。但要明白其中原理,还需要多研究研究ODM源码。效果图:原创 2015-08-28 10:30:03 · 10985 阅读 · 2 评论 -
c#录制屏幕 超级简单!
使用Aforge.net对屏幕进行截图,并将每一张BITMAP写到AVI文件中。超级简单!AFORGE.NET的ScreenCaptureStream性能有限,目前测试基本能达到10帧左右。设置AVIWriter的FrameRate为8帧,但是播放起来像快进一样,目前还没有找到原因。暂时采取一个New Frame到达时,多写几次的方法进行规避。有知道如何处理的请联系我。详细代码原创 2015-08-27 17:00:13 · 15983 阅读 · 9 评论 -
C#屏笔 GDI+屏笔 桌面画图(二)
本次屏笔的实现采用隐藏Form的方式实现,ALT+Q激活屏笔,再次点击取消。激活屏笔时,先cpoy屏幕内容到bitmap,然后将其显示到picturebox,之后最大化Form,然后再用Graphics记录鼠标轨迹画图。使用钩子捕捉键盘和鼠标全局事件。全局键盘鼠标钩子请参考http://blog.youkuaiyun.com/q317379184/article/details/47979309使原创 2015-08-26 11:41:32 · 3126 阅读 · 0 评论 -
GDI+桌面画图
很简陋的一共桌面画图工具。在桌面画图主要需要用到GetDC这个API,该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。通过该函数是为了获取桌面的绘图图面。然后用钩子勾住鼠标全局事件,进行画线。效果很差,其他Paint消息会将自己画的线重绘掉。看了一些方案说是需要创建一共全屏窗体,然后重绘桌面背景到窗体。再窗体原创 2015-08-25 17:08:43 · 2376 阅读 · 0 评论 -
C#键盘鼠标钩子
亲测可用 /* * 老外写的一个C#钩子类,写的非常好。 * 捕获键盘鼠标所有事件 * 模拟鼠标和模拟键盘操作 * * */ /// /// 鼠标和键盘钩子的抽象类 /// public abstract class GlobalHook { #region Wind翻译 2015-08-25 16:41:12 · 5164 阅读 · 1 评论 -
GDI+屏幕截图(二)
上一篇讲了如何写一个很low的截屏工具,这次进行稍微美化,对未选择区域的图片加上透明度,效果如下图。 主要用到的的代码如下: /// 设置图片的透明度 /// /// 原图 /// 透明度0-255 /// private Bitmap SetPictureAl原创 2015-08-25 16:26:00 · 2510 阅读 · 0 评论 -
GDI+什么是ColorMatrix
ColorMatrix(色彩矩阵),是GDI+里用来调整图片色彩的矩阵。 什么是矩阵,说白了就是C#里的二维数组。 那么这个矩阵调整色彩的原理是什么,他是怎么来调整色彩的呢?这个要从线性代数里的矩阵相乘说起。 以下段落学过线性代数的读者可以跳过,这里我用自己的理解来描述下矩阵相乘的算法和结果。在线性代数里,两个矩阵相乘,是这样计算的: A矩阵乘以B矩阵,那么新生成一个矩阵C转载 2015-08-25 16:14:32 · 1161 阅读 · 0 评论 -
GDI+屏幕截图
很简陋的一个屏幕截图工具,支持任意尺寸。FullFrom是一个子窗体,当点击主窗体的截图按钮时,先从GDI+获取整个屏幕截图,传递 给FullForm,然后再将FullForm全屏最大化显示。目前只支持单屏幕,多个屏幕未考虑。代码写的比较乱,注重功能实现。后续可以用钩子捕获全局系统按键。如ctrl+alt+a,捕获这三个按键进行截图。public partial class Fu原创 2015-08-24 15:19:35 · 2508 阅读 · 0 评论 -
TcpClient接收数据不全
所以在接收大量数据的时候,特别是超过1k时,一定要学会采用Sleep(1)函数,让cpu有时间来处理数据缓存的问题。原创 2014-09-02 14:19:42 · 5870 阅读 · 0 评论 -
c#中抽象类和接口的相同点跟区别
用了几年C#,总结一下抽象类和接口的相同点与不同点。看了别人写的感觉很全面: 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 (2) 抽象类是一原创 2015-09-09 12:45:07 · 2175 阅读 · 0 评论 -
c#实现foreach
方式:第一种,通过继承IEnumerable接口实现foreach语句。 包括MoveNext、Reset函数和Current属性,以便GetEnumerator函数能获取枚举数。第二种,用迭代器实现枚举器。迭代器是可以返回相同类型的值的有序序列的一段代码。迭代器可用作方法、运算符或 get 访问器的代码体。迭代器代码使用 yield retur原创 2015-08-18 15:22:27 · 776 阅读 · 0 评论 -
c# ora-00177
当使用.NET 4.0自带的System.Data.OracleClient去访问ORACLE数据库时,使用如下连接字符串会报ora-00177问题。Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.39)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME = lnorcl)));Us原创 2016-03-16 13:27:45 · 497 阅读 · 0 评论 -
GDI+画电子印章
使用GDI+画一个电子印章,初次使用,请多多指教。以下是Form代码,大家应该都会用,项目文件就不上传了。 public partial class Form1 : Form { public Form1() { InitializeComponent(); this.SetStyle(Control原创 2015-08-21 16:01:04 · 1498 阅读 · 0 评论 -
unsafe与fixed
unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。有关更多信息,请参见不安全代码和指针(C# 编程指南)。可以在类型或成员的声明中使用 unsafe 修饰符。因此,类型或成员的整个正文范围均被视为不安全上下文。若要编译不安全代码,必须指定 /unsafe 编译器选项。无法通过公共语言运行库验证不安全代码。6、 Fixed转载 2015-08-18 15:27:15 · 422 阅读 · 0 评论 -
爬虫
今天看了下别写的一共简单的爬虫工具。大概原理就是基于的一个root url利用httpwebrequest去抓取html内容,提前其中的链接(剔除了图片、css、js等),逐一保存下来。不过这个只适用于一些门户网站,有些网站的登录页面没有任何链接。需要登陆后才能浏览。所以权限这一块也很复杂,对于不同的网站需要不同的实现。目前来看使用工厂方法是够用了。当然,光是做这个还是不够的。这也紧紧原创 2015-08-20 16:15:29 · 557 阅读 · 0 评论 -
Equals和==比较
总结一下: 对于字符串来说,两个比较的都是对象的值,并且是等效的,这是因为MS重写了==运算符和Equals方法所致 对于非字符串的其他引用类型(非匿名类型)两个比较的都是对象的引用,并且是等效的; 对于匿名类型,Equal()方法比较的是类型的状态,如果两个类型的属性和值都相同,就返回true;==比较的是对象的引用。原创 2015-08-20 14:34:14 · 613 阅读 · 0 评论 -
var
在.NET 3.0后微软引入了隐式类型var,编译器可以自动判断变量的类型,通过var这个隐式类型,可以提高开发人员的开发效率,很多时候可以不考虑对象的类型,编译器会自动帮我们判断使用隐式类型和使用其他显式类型的效果是一样的,只是在编译的过程IDE自动判断类型,所以很多时候我们不用考虑变量的具体类型.其实也就是弱化类型的定义VAR可代替任何类型编译器会根据上下文来判断你到底是想转载 2015-08-20 14:13:22 · 628 阅读 · 0 评论 -
c#反射
public class Program { static string str="困"; static string str2 { get { return str; } set { str = value; } } static void StaticWrit原创 2015-08-20 10:35:21 · 425 阅读 · 0 评论 -
c#索引器
索引器(Indexer)是C#引入的一个新型的类成员,它使得类中的对象可以像数组那样方便、直观的被引用。索引器非常类似于属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。定义了索引器的类可以让您像访问数组一样的使用 [ ] 运算符访问类的成员。(当然高级的应用还有很多,比如说可以把数组通过索引器映射出去等等) 鸡群3 jiqun3 =原创 2015-08-19 09:52:49 · 416 阅读 · 0 评论 -
c#创建快捷方式
此方法是动态调用COM组件WSH去创建快捷方式,无多余dll翻译 2015-08-19 15:36:43 · 1113 阅读 · 4 评论 -
c#人脸识别
最近闲来无事,看了看OPENCV,有C#版本,叫EMGU,尝试写了个获取摄像头视频流,动态监测人脸的小程序。源码下载地址http://download.youkuaiyun.com/detail/q317379184/4910645源码如下://-----------------------------------------------------------------原创 2012-12-20 16:54:19 · 3078 阅读 · 2 评论 -
基于FFmpeg的RTSP directshow filter
基于FFmpeg的RTSP directshow filter,注册好filter,可以直接render rtsp url原创 2014-09-01 17:26:45 · 4015 阅读 · 5 评论 -
C# 实现rtsp Digest Authentication Response
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography;namespace RTSP_Digest_Authentication{ class Program { ///原创 2014-08-06 11:34:06 · 1695 阅读 · 0 评论 -
“无法封送处理“parameter #2”: 内部限制: 结构太复杂或太大。“
原型 [StructLayoutAttribute(LayoutKind.Sequential)] public struct NET_DVR_SADPINFO { NET_DVR_IPADDR struIP; ushort wPort; ushort wFactoryType;原创 2014-03-07 15:05:12 · 6375 阅读 · 2 评论 -
12306验证码识别V1.5
2013年初,可谓是12306订票软件最火的时候,一时间各种订票软件蜂拥而出,什么51gohome,妈我回来了之类的,简直是太多了。但自从13年2月份左右吧,12306验证码经过一次升级,一时间大部分订票软件都不能识别验证码了,因为这次12306的验证码扎一看还是挺变态的,忽然感觉识别起来还是挺麻烦的,一时间无从下手。最近比较闲,就再看看12306的验证码识别。想想上次V1.4识别验证码获取特征码原创 2013-06-13 15:47:41 · 3801 阅读 · 28 评论 -
testlink中excel转XML格式
什么也不说了,直接上代码。后面我会把程序发上来。源码下载地址http://download.youkuaiyun.com/detail/q317379184/4536047 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.原创 2012-08-01 10:46:39 · 2148 阅读 · 0 评论 -
12306验证码识别
12306验证码识别动态库优点识别率99%以上。识别时间最多1S。需要我的联系我QQ317379184以下是我写的一个demo,目前识别率99%,识别时间不超过1s。验证码现在改了,请看我另一篇日志http://blog.youkuaiyun.com/q317379184/article/details/8228896原创 2012-10-07 15:35:25 · 3913 阅读 · 1 评论 -
12306订票助手
欢迎大家使用火车侠订票注册。免费版可以自动登录和在IE中打开。注册版可以自动订票提交订单,提交过程中可以查看排队的名次,提前决定是否继续等待。有效的增加了订票的可能性。感谢大家使用。更多请联系QQ317379184或者q317379184.oicp.net QQ群81547758 下载地址http://download.youkuaiyun.com/detail/q317379184/4581049原创 2012-09-19 20:17:22 · 3188 阅读 · 3 评论 -
C#远程重启计算机
什么也不说了,直接看代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System原创 2012-08-01 11:07:39 · 838 阅读 · 0 评论 -
解决 线程间操作无效: 从不是创建控件的线程访问它
下面是一个settext的方法。每个线程都要调用richbox.appendtext方法 ,而线程又无法去访问主线程。所以采用委托的方式 。下面是代码 delegate void SetTextHander(string recvStr);//带参数 private void SetText(string recvStr) {原创 2012-08-01 11:26:48 · 2970 阅读 · 1 评论 -
C#让程序自动以管理员身份运行
工具:VS 2008 第一步, 新建一个项目(winform) 第二步, 在新建项目中,新建项 应用程序清单文件(app.manifest) 第三步, 打开 app.manifest 文件 修改 修改为 重新编译 打开 debug目录 就可以看到图标右下角有个小盾原创 2012-08-01 10:25:32 · 766 阅读 · 0 评论 -
C#操作messagebox
第一种:点击NO,return;什么也不做 if (MessageBox.Show("你確定要刪除用戶?", "系統提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return;原创 2012-05-23 15:25:43 · 645 阅读 · 0 评论 -
C#操作XML
首先需要引用空间名称:using System.Xml;然后直接引用xml类: // 创建XmlTextWriter类的实例对象 XmlTextWriter textWriter = new XmlTextWriter("w3sky.xml", Encoding.UTF8); textWriter.Formatting = F原创 2012-05-23 15:05:49 · 531 阅读 · 0 评论 -
安装和部署错误: 无法生成项目输出组“内容文件来自WebApplication1(活动)”
当我们完成某个项目之后,一般都需要使用VS.NET的“安装和部署项目”来创建一个安装程序。可能你有时会遇到这样的错误:错误: 无法生成项目输出组“内容文件来自WebApplication1(活动)” 。 有时候检查了好多遍都找不到错误在哪里,此时可能是下面原因产生的: 试试在“解决方案资源管理器”中,刷新目标项目,看看项目中有没有一些文件丢失(以感叹号标转载 2012-05-23 14:59:29 · 1446 阅读 · 0 评论