摘要: Google允许开发者对Chrome浏览器做扩展,所以有了之前火爆的12306抢票软件,我 也用它抢过票,一直很好奇它怎么注入js到12306上面的。这周有空研究了下Chrome Extension,终于明白它是怎么工作的了。更多信息可以参看chrome.extension。但是又让我对chrome extension产生了一点担心,这么容易注入js,那盗取你的帐号密码啥的不是很方便吗?下面演示一个比较简单的盗取微博帐号密码的方法。要加载chrome extension首先要定义一个manifest.json文件。定义如下:{ "manifest_version": 2, 阅读全文
posted @ 2013-07-14 19:12 heqichang 阅读(4599) 评论(6) 推荐(7) 编辑
摘要: 我们在做web测试时,经常会使用WebBrowser来进行一些自动化的任务。而有些网页上面会用IFrame去嵌套别的页面,这些页面可能不是在相同域名下的,这时就会出现跨域问题,无法直接在WebBrowser中获取到IFrame中的元素。下面来做个试验,自己写个页面嵌套一个百度的首页,然后在我们自己的页面上输入要查询的词,最后在百度上自动完成搜索。<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head> <meta char 阅读全文
posted @ 2012-12-29 13:25 heqichang 阅读(12627) 评论(11) 推荐(5) 编辑
摘要: 我简单的理解策略模式就是把行为(方法)单独的抽象出来,并采用组合(Has-a)的方式,来组合行为和实体的一种模式。再来个官方的解释:Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.网上也有很多资源介绍这个模式,我也不从头说起了。在.NET中委托给我们给我们提供了简单实现策略模式的方法,可以简单的把一个委托看成是一种策略方法,而且还能借 阅读全文
posted @ 2012-12-13 11:04 heqichang 阅读(2547) 评论(1) 推荐(1) 编辑
摘要: 在这里记录一下之前使用Entity Framework(4.3.1版本)遇到的问题。更新没有设置主键的表在默认情况下,EF不能对一个没有主键的表进行更新、插入和删除的动作。用xml方式查看edmx文件,可以在SSDL中可以看到如下xml片断(我定义了一个没有主键的表tb_WithoutKey)。<EntitySet Name="tb_WithoutKey" EntityType="TransferModel.Store.tb_WithoutKey" store:Type="Tables" store:Schema="d 阅读全文
posted @ 2012-10-15 10:41 heqichang 阅读(12435) 评论(9) 推荐(2) 编辑
摘要: SSIS(SQL Server Integration Services)是用于生成企业级数据集成和数据转换解决方案的平台。使用 Integration Services 可解决复杂的业务问题,具体表现为:复制或下载文件,发送电子邮件以响应事件,更新数据仓库,清除和挖掘数据以及管理 SQL Server 对象和数据。这些包可以独立使用,也可以与其他包一起使用以满足复杂的业务需求。Integration Services 可以提取和转换来自多种源(如 XML 数据文件、平面文件和关系数据源)的数据,然后将这些数据加载到一个或多个目标。(摘自MSDN,更多详细信息可参考:http://techne 阅读全文
posted @ 2012-09-19 09:55 heqichang 阅读(13097) 评论(6) 推荐(3) 编辑
摘要: 首先就从一个实验开始说起吧。在VS中建一个WinForm的工程,在界面上就放一个Label和一个Button,然后为按钮添加一个点击事件,修改代码如下:private void button1_Click(object sender, EventArgs e){ Thread thread = new Thread(() => { this.label1.Text = "Thread Test"; }); thread.Start();}然后我们按F5进入调试模式,点击Button之后,我们就会得到以下这个错误:但是如果我们按Ctrl+F5来运行这个程序,那么就... 阅读全文
posted @ 2012-09-07 10:45 heqichang 阅读(1038) 评论(1) 推荐(0) 编辑
摘要: 下图是一个经典的观察者模式的结构。(图来源于wikipedia)观察者模式被定义为解决一个对象对多个对象的依赖问题。当一个对象的状态发生改变,它会自动通知其它依赖对象。关于该设计模式的介绍可以更多参考Terrylee的.NET设计模式(19):观察者模式(Observer Pattern)。这篇文章主要介绍在 .NET 4.0 怎么实现观察者模式。在.NET 4.0下位我们提供了两个观察者模式的底层接口:IObservable<T>和IObserver<T>。这两个接口定义如下:public interface IObservable<out T>{ IDi 阅读全文
posted @ 2012-08-24 10:51 heqichang 阅读(3622) 评论(1) 推荐(3) 编辑
摘要: 直接看看源代码的错误地方吧。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace FileStreamTest{ class Program { static void Main(string[] args) { String file = @"D:\temp.txt"; FileStream fileStream; if (Fi... 阅读全文
posted @ 2012-08-02 23:24 heqichang 阅读(1532) 评论(0) 推荐(0) 编辑
摘要: 今天在用start-process这个cmdlet去新开一个窗口执行powershell的时候遇到的一个问题看一下测试代码:以下这个ps代码命名为profile.ps1,并且保存在%UserProfile%\My Documents\WindowsPowerShell这个目录下它就相当于是运行powershell时自动加载的脚本,代码如下function print { [CmdletBinding()] Param( [ValidateNotNullOrEmpty()] $param1="default1" [ValidateNotNullOrEmpt... 阅读全文
posted @ 2012-06-28 16:35 heqichang 阅读(2746) 评论(0) 推荐(0) 编辑
摘要: 今天在C#中使用SelectNodes的时候出现了一些怪现象,先从还原现场开始吧。首先创建一个简单的XML文件来试验,还是就保存为test.xml<?xml version="1.0" encoding="utf-8" ?> <root> <users job="salas"> <user> <name>Joe</name> <age>17</age> </user> <user> <name>Kate& 阅读全文
posted @ 2012-05-25 13:12 heqichang 阅读(20788) 评论(0) 推荐(5) 编辑