首先新建一个工程,然后完成对第三方库Utilities的引用。
然后开打Form1的代码编辑窗口,在窗体类中添加一个 后门类KeyboardIncantationMonitor
新建一个私有成员函数,并添加两个后门
2 {
3 // ! 第一个后门
4 do
5 {
6 // ! 申请一个后门暗号
7 KeyboardIncantationMonitor.KeysIncantation tInc = m_KeyBackDoor.NewIncantation() as KeyboardIncantationMonitor.KeysIncantation;
8
9 // ! 初始化这个暗号为:依次按下 <Esc>HELLO<Enter>
10 tInc.AddKey(Keys.Escape);
11 tInc.AddKey(Keys.H);
12 tInc.AddKey(Keys.E);
13 tInc.AddKey(Keys.L);
14 tInc.AddKey(Keys.L);
15 tInc.AddKey(Keys.O);
16 tInc.AddKey(Keys.Enter);
17
18 // ! 对上暗号以后的处理程序
19 tInc.IncantationCantillatedReport += new IncantationReport(BackdoorHandler_A);
20
21 // ! 将这个暗号添加到后门监视器里面
22 m_KeyBackDoor.AddIncantation(tInc);
23 }
24 while ( false );
25 // ! 第二个后门
26 do
27 {
28 // ! 申请一个后门暗号
29 KeyboardIncantationMonitor.KeysIncantation tInc = m_KeyBackDoor.NewIncantation() as KeyboardIncantationMonitor.KeysIncantation;
30
31 // ! 初始化这个暗号为:依次按下 <Esc>Bye<Enter>
32 tInc.AddKey(Keys.Escape);
33 tInc.AddKey(Keys.B);
34 tInc.AddKey(Keys.Y);
35 tInc.AddKey(Keys.E);
36 tInc.AddKey(Keys.Enter);
37
38 // ! 对上暗号以后的处理程序
39 tInc.IncantationCantillatedReport += new IncantationReport(BackdoorHandler_B);
40
41 // ! 将这个暗号添加到后门监视器里面
42 m_KeyBackDoor.AddIncantation(tInc);
43 }
44 while ( false );
45 }
46 // ! 第一个后门的处理程序
47 void BackdoorHandler_A(IIncantation tInc)
48 {
49 button1.Visible = true ;
50 }
51 // ! 第二个后门的处理程序
52 void BackdoorHandler_B(IIncantation tInc)
53 {
54 button1.Visible = false ;
55 }
56
在Form1的构造函数中增加对AddBackDoor方法的调用,这样我们就把后门加好了
2 {
3 InitializeComponent();
4
5 // ! 加入后门
6 AddBackDoor();
7 }
8
在什么地方安插后门呢?依照个人喜好了,不过既然是一个按键后门,肯定要选择一个能接收KeyDown或者KeyUp事件的地方。
比如我们在Form1上增加一个文本框,将其ReadOnly属性设置为True,并添加一段文字:“版权所有,翻版必究”。并在窗体上增加一个按钮,作 为我们演示的对象:普通状况下,看不到这个按钮,开启后门以后,按钮的visible属性就变为true,我们就能看见了;我们也可以使用另外一个后门重 新将按钮的visible属性设置为false,然后就可以交给客户了。^_^
选中刚才所说的文本框控件,在Property窗口中选择Event,双击KeyDown,进入代码编辑窗口,并在KeyDown处理程序中加入对后门监视器的处理:也就是把按下的键告诉监视器:
2 {
3 // ! 告诉后门监视器哪个键被按下了
4 m_KeyBackDoor.Append(e.KeyCode);
5 }
6 // 在后门处理程序A中将Button的Visible属性设置为True;
7 // ! 第一个后门的处理程序
8 void BackdoorHandler_A(IIncantation tInc)
9 {
10 button1.Visible = true ;
11 }
12 // 在后门处理程序B中将Button的Visible属性设置为False;
13 // ! 第二个后门的处理程序
14 void BackdoorHandler_B(IIncantation tInc) { button1.Visible = false ; }
15
16
最后,别忘记把Button的visible属性设置为False,否则怎么向我们的客户隐藏这个按钮呢?
运行程序,果然看不到Button,他被隐藏了
选中写有“翻版必究”的文本框,依次按下: <Esc> <H> <E> <L> <L> <O> <Enter> 键, button1出现了
依次按下: <Esc> <B> <Y> <E> <Enter> 键, button1又消失了
大功告成。
无论任何时候你都可以从头开始输入后门,不必担心上次从什么地方开始的。当然,也不用考虑大小写。
Have a good time.