摘要:
腾讯向大众提供了申请QQ的界面,方便很多潜在用户加入QQ大军中,注册页面是http://reg.qq.com ,为了限制用户的过度使用,设置了验证码、IP限制等手段,一般用户默认一天只能申请几个QQ号码,号码是随机生成的,当然好的号码是不会有的,这些是腾讯的资源,需要付费才能获取到。本文主要介绍如何利用C#来实现QQ号码的快速、批量申请操作,以及考虑如何加入宽带拨号的方式实现IP的限制,尽可能的申请到更多的QQ号码,以供他用。先看看演示程序的界面效果:=====》上面是我使用C#实现QQ号码申请的演示程序,是应用的雏形。其中为了方便,把用户需要填写的信息封装起来,用户开通QQ号码后,再自行修改 阅读全文
摘要:
C#中利用委托实现多线程跨线程操作- 张小鱼 2010-10-22 08:38在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。其实解决这个问题有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的这个错误了。二,就是委托 阅读全文
摘要:
Demo的界面我利用事件委托事件,仿http://www.cnblogs.com/huyong/写的公共分页用户控件C#代码#region版权信息/*---------------------------------------------------------------------*//项目名称:《Winform分页控件》//文件名:Pager.cs//描述:分页控件//作者:kwonyan*----------------------------------------------------------------------*/#endregionusingSystem; usin 阅读全文
摘要:
如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的安全性,但对应用程序开发者来说,我们不能强迫用户去关闭UAC,但有时我们开发的应用程序又需要以 Administrator 的方式运行,即 Win7 中 以 as administrator 方式运行,那么我们怎么来实现这 阅读全文
摘要:
反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息。使用反射可以看到一个程序集内部的接口、类、方法、字段、属性、特性等等信息。在System.Reflection命名空间内包含多个反射常用的类,下面表格列出了常用的几个类。类型作用Assembly通过此类可以加载操纵一个程序集,并获取程序集内部信息EventInfo该类保存给定的事件信息FieldInfo该类保存给定的字段信息MethodInfo该类保存给定的方法信息MemberInfo该类是一个基类,它定义了EventInfo、FieldInfo、MethodInfo、PropertyInfo的多个公用 阅读全文
摘要:
让软件开机自动运行或者设置自动关机,大部分软件都有这种功能。如何实现呢,其实很简单,开机运行,只需要设置注册表就可以了,关机则调用CMD命令:shutdown -s -t,如下:开机自动运行:/// <summary>/// 设置开机运行/// </summary>public void AutoRun(){ RegistryKey runItem = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); if (runItem 阅读全文
摘要:
C# 代码/* * 前提条件,你需要先安装Microsoft Access Database Engine 2010 Redistributable 下载地址: *http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d&displaylang=zh-cn * 需要注意的是:下载的版本跟你的程序编译的.NET版本一致,而不是跟操作系统的版本一致。 * * 需要添加引用 Microsoft ADO Ext. 2.8 for DDL and Secu 阅读全文
摘要:
设计模式的实际应用——在C#中解决单客户端窗口数据并发问题一、 问题引出在VS2008环境下使用C#语言进行WinForm窗口开发时,大多数情况下我们都会使用弹出式窗口进行开发。例如:TestForm form = new TestForm();Form.ShowDialog();另一种窗口打开的方式为非弹出式,例如:TestForm form = new TestForm();Form.Show();这里我使用“弹出式窗口”进行名称的统一,这种窗口的优点是:单线程窗口,十分便于程序员开发,并且在同一系统中的窗口不需要考虑其数据并发问题,十分方便数据管理。因为用户只能使用当前打开的窗口,换句话 阅读全文
摘要:
一、场景:需要将有一定格式的File里的内容读取到已经定义的类中,譬如一个二进制文件里的内容读取到一个新的DataStructure里面。1. File不是很大,一次将所有内容Load到内存中,不会占用太多Memory;2. 二进制文件无法直接反序列化成一个Object,需要一个映射才能完成转换.二、为什么不用FileStream:首先,我们来看一下FileStream的代码以及原理:FileStream fs = new FileStream(binaryFilePath, FileMode.Open, FileAccess.Read);Encoding enc = Encoding.ASC 阅读全文
摘要:
尽管使用线程同步对线程安全来说是必须的,但是如果没有用好的话就可能导致死锁。因此,理解什么是死锁并知道如何避免死锁是非常重要的。当两个或两个以上的线程等待两个或多于两个锁被释放然后程序中的逻辑导致锁永远都不会被释放时死锁就发生了。图3描述了一个典型的死锁场景。图3在上图中,线程1获得通过进入一个对象的关键区域获得这个对象的锁L1。在关键部分中线程1想要获取锁L2。线程2获得锁L2同时还想获得锁L1。所以,现在线程1无法获得锁L2而线程2无法获得锁L1,因为这两个线程彼此拥有对方需要的锁而又不会释放它们。结果是两个线程都进入无限等待或者死锁。阻止潜在的死锁发生的最好的方式是避免在同一时间获取多个 阅读全文