第1章 认识C#及开发环境 1
1.1 C#概述 2
1.1.1 C#发展历程 2
1.1.2 C#语言编程环境 2
1.2 .NET Framework 2.0简介 2
1.2.1 什么是.NET Framework 2.0 2
1.2.2 .NET Framework 2.0特性 3
1.3 安装集成开发环境Visual Studio 2005 4
1.3.1 安装Visual Studio 2005开发环境 4
1.3.2 安装MSDN帮助 7
1.3.3 如何使用MSDN帮助 9
1.3.4 利用MSDN帮助附带的示例学习编程 11
1.4 启动Visual Studio 2005开发环境 12
1.4.1 启动Visual Studio 2005 12
1.4.2 创建项目 12
1.5 熟悉Visual Studio 2005集成开发环境 13
1.5.1 新特性 14
1.5.2 主窗口 14
1.5.3 菜单栏 14
1.5.4 工具栏 18
1.5.5 文档窗口 18
1.5.6 工具箱窗口 19
1.5.7 解决方案资源管理器窗口 20
1.5.8 属性窗口 20
1.5.9 代码编辑器 21
1.5.10 “错误列表”面板 22
1.5.11 “输出”面板 22
1.6 程序调试 22
1.6.1 断点操作 22
1.6.2 使用开始、中断和停止执行功能调试程序 23
1.6.3 单步执行 25
1.6.4 运行到程序的指定位置 25
第2章 QQ企业通 27
2.1 设计思路 28
2.2 关键技术 28
2.2.1 INI文件的应用 28
2.2.2 线程的应用 30
2.2.3 在Socket中发送大容量的消息 30
2.2.4 将流序列化或反序列化为对象 31
2.2.5 用InnerList列表记录信息 31
2.3 设计过程 32
2.3.1 类库的设计 33
2.3.2 客户端注册模块设计 40
2.3.3 客户端登录模块设计 42
2.3.4 客户端QQ模块设计 43
2.3.5 客户端消息发送模块设计 48
2.3.6 服务器端控制台模块设计 52
第3章 SQL数据表提取器模块 55
3.1 概述 56
3.2 关键技术 56
3.2.1 如何备份数据库 56
3.2.2 如何还原数据库 57
3.2.3 如何附加数据库 58
3.2.4 如何分离数据库 59
3.2.5 设置数据库模式 59
3.3 设计过程 61
3.3.1 主窗体 61
3.3.2 获取服务器名称 62
3.3.3 获取所有数据库 63
3.3.4 获取所有数据表 64
3.3.5 备份数据库 66
3.3.6 还原数据库 67
3.3.7 附加数据库 68
3.3.8 分离数据库 70
3.3.9 导出表结构 71
3.3.10 导出数据 74
第1章 认识C#及开发环境 1
1.1 C#概述 2
1.1.1 C#发展历程 2
1.1.2 C#语言编程环境 2
1.2 .NET Framework 2.0简介 2
1.2.1 什么是.NET Framework 2.0 2
1.2.2 .NET Framework 2.0特性 3
1.3 安装集成开发环境Visual Studio 2005 4
1.3.1 安装Visual Studio 2005开发环境 4
1.3.2 安装MSDN帮助 7
1.3.3 如何使用MSDN帮助 9
1.3.4 利用MSDN帮助附带的示例学习编程 11
1.4 启动Visual Studio 2005开发环境 12
1.4.1 启动Visual Studio 2005 12
1.4.2 创建项目 12
1.5 熟悉Visual Studio 2005集成开发环境 13
1.5.1 新特性 14
1.5.2 主窗口 14
1.5.3 菜单栏 14
1.5.4 工具栏 18
1.5.5 文档窗口 18
1.5.6 工具箱窗口 19
1.5.7 解决方案资源管理器窗口 20
1.5.8 属性窗口 20
1.5.9 代码编辑器 21
1.5.10 “错误列表”面板 22
1.5.11 “输出”面板 22
1.6 程序调试 22
1.6.1 断点操作 22
1.6.2 使用开始、中断和停止执行功能调试程序 23
1.6.3 单步执行 25
1.6.4 运行到程序的指定位置 25
第2章 QQ企业通 27
2.1 设计思路 28
2.2 关键技术 28
2.2.1 INI文件的应用 28
2.2.2 线程的应用 30
2.2.3 在Socket中发送大容量的消息 30
2.2.4 将流序列化或反序列化为对象 31
2.2.5 用InnerList列表记录信息 31
2.3 设计过程 32
2.3.1 类库的设计 33
2.3.2 客户端注册模块设计 40
2.3.3 客户端登录模块设计 42
2.3.4 客户端QQ模块设计 43
2.3.5 客户端消息发送模块设计 48
2.3.6 服务器端控制台模块设计 52
第3章 SQL数据表提取器模块 55
3.1 概述 56
3.2 关键技术 56
3.2.1 如何备份数据库 56
3.2.2 如何还原数据库 57
3.2.3 如何附加数据库 58
3.2.4 如何分离数据库 59
3.2.5 设置数据库模式 59
3.3 设计过程 61
3.3.1 主窗体 61
3.3.2 获取服务器名称 62
3.3.3 获取所有数据库 63
3.3.4 获取所有数据表 64
3.3.5 备份数据库 66
3.3.6 还原数据库 67
3.3.7 附加数据库 68
3.3.8 分离数据库 70
3.3.9 导出表结构 71
3.3.10 导出数据 74
第4章 万能搜索模块 79
4.1 设计思路 80
4.2 关键技术 80
4.2.1 如何制作一个接口程序 80
4.2.2 实现接口程序的信息互传 80
4.2.3 如何将接口程序加载到其他程序中 82
4.2.4 怎样操作RichtextBox控件的选择文本 82
4.2.5 如何获取数据表中字段的描述信息 83
4.3 设计过程 83
4.3.1 获取数据表中字段的中文信息 84
4.3.2 添加数据表的查询条件 86
4.3.3 向SQL语句中添加括号 89
4.3.4 查询生成后的SQL语句 90
4.3.5 主程序获得接口信息 92
第5章 万能打印模块 93
5.1 设计思路 94
5.2 关键技术 94
5.2.1 打印设置(PrintDocument类) 94
5.2.2 打印预览对话框(PrintPreview Dialog) 95
5.2.3 打印对话框(PrintDialog) 96
5.2.4 获取指定颜色值和字体样式 97
5.2.5 DataGridView控件的相关应用 97
5.3 设计过程 98
5.3.1 打印信息的设置 98
5.3.2 表格样式的设置 100
5.3.3 打印类的设置 101
5.3.4 打印数据信息 108
第6章 决策分析模块 111
6.1 设计思路 112
6.2 关键技术 112
6.2.1 游标的基本操作 112
6.2.2 存储过程的基本操作 115
6.2.3 透视表的基本概念 117
6.2.4 统计表的基本操作 117
6.2.5 单击显示右键菜单 118
6.3 设计过程 118
6.3.1 主窗体的初始化 119
6.3.2 透视表的筛选 127
6.3.3 透视表的设计 130
6.3.4 统计表的设计 132
第7章 自定义图表控件 135
7.1 设计思路 136
7.2 关键技术 137
7.2.1 控件的生成 137
7.2.2 如何在项目中添加控件 137
7.2.3 在“属性”对话框中添加属性 137
7.2.4 用GDI+绘制图形 139
7.2.5 如何在控件上绘制图形 143
7.2.6 获取扇形外弧中心点的位置 143
7.3 设计过程 144
7.3.1 向自定义控件中添加属性 144
7.3.2 获取绘制图表的初始值数据 149
7.3.3 绘制标签框 153
7.3.4 绘制图表中的表格 157
7.3.5 绘制条形图 163
7.3.6 绘制面形图 170
7.3.7 绘制饼形图 174
第8章 电子邮件收发模块 179
8.1 概述 180
8.2 关键技术 180
8.2.1 Base64编码格式 180
8.2.2 SMTP服务 181
8.2.3 POP3协议 184
8.2.4 使用Jmail组件接收邮件 186
8.2.5 邮件发送类的使用 188
8.2.6 使用正则表达式验证邮件格式 190
8.3 设计过程 191
8.3.1 数据库设计 191
8.3.2 系统登录 191
8.3.3 邮件发送实现 192
8.3.4 为邮件上传多个附件 193
8.3.5 邮件接收实现 194
8.3.6 查看邮件详细信息 196
8.3.7 下载附件的实现 197
8.3.8 删除邮件实现 198
8.3.9 用户管理 198
第9章 短信群发模块 201
9.1 设计思路 202
9.2 关键技术 202
9.2.1 短信猫中API函数的使用 202
9.2.2 短信猫中的短信接收格式 205
9.2.3 窗体间的互操作 205
9.2.4 锁定模块主窗体 206
9.2.5 使用ADO.NET连接Access数据库 206
9.3 设计过程 207
9.3.1 数据库设计 207
9.3.2 群发短信实现 209
9.3.3 已发送短信管理 213
9.3.4 接收短信实现 215
9.3.5 常用联系人管理 219
9.3.6 常用短语管理 221
第10章 桌面精灵模块 225
10.1 概述 226
10.2 关键技术 226
10.2.1 阴阳历转换算法 226
10.2.2 调用系统API实现鼠标穿透效果 230
10.2.3 修改注册表控制程序开机自启动 231
10.2.4 通过控制窗体透明度实现日历透明显示效果 231
10.2.5 拖动无标题栏窗体 232
10.2.6 将窗体的关闭位置写入到注册表中 232
10.2.7 将程序图标写入到托盘 232
10.3 设计过程 233
10.3.1 桌面精灵模块公共类设计 233
10.3.2 当前日期的农历、天干地支年、节日及星座显示 235
10.3.3 定时提醒的实现 240
10.3.4 日历窗体效果控制 242
10.3.5 转到某天、某周、某月及某年的实现 243
10.3.6 节日管理 245
10.3.7 提醒管理 249
第11章 文件批量处理器 255
11.1 概述 256
11.2 关键技术 256
11.2.1 文件流技术 256
11.2.2 文件解压缩技术 258
11.2.3 获取系统文件及文件夹图标 262
11.2.4 获取指定目录下的所有文件及文件夹 265
11.2.5 Word操作技术 266
11.2.6 进度条的显示 266
11.2.7 对ListView控件中的项进行排序 267
11.3 设计过程 267
11.3.1 主窗体预览 267
11.3.2 批量复制、剪切文件 268
11.3.3 批量复制、剪切文件夹 270
11.3.4 批量重命名文件 271
11.3.5 批量删除文件及文件夹 275
11.3.6 搜索文件及文件夹 276
11.3.7 批量压缩、解压文件 278
11.3.8 分割、合并文件 280
第12章 图片管理工具模块 285
12.1 概述 286
12.2 关键技术 286
12.2.1 上下移动ListBox选中项 286
12.2.2 将文件复制到剪切板 287
12.2.3 格式转换 288
12.2.4 图片幻灯片 288
12.2.5 图片旋转 289
12.3 设计过程 290
12.3.1 主窗体 290
12.3.2 打开图片目录 291
12.3.3 图片格式转换 292
12.3.4 设为桌面背景 294
12.3.5 图片特效 296
12.3.6 图片调节 300
12.3.7 图片水印 304
12.3.8 幻灯片放映 306
12.3.9 图片打印 308
第13章 FTP文件管理模块 311
13.1 设计思路 312
13.2 关键技术 312
13.2.1 架设FTP服务器 312
13.2.2 登录FTP服务器 317
13.2.3 获取服务器上文件的大小 318
13.2.4 向FTP服务器发送命令 319
13.2.5 调用系统API 321
13.3 设计过程 322
13.3.1 主窗体设计 322
13.3.2 登录FTP服务器 323
13.3.3 获取本地磁盘 325
13.3.4 获取指定磁盘中的文件 326
13.3.5 获取本地磁盘中文件的图标 327
13.3.6 获取FTP服务器中的所有文件 329
13.3.7 批量上传文件 333
13.3.8 批量下载文件 337
13.3.9 删除FTP中的文件或文件夹 340
第14章 魔法兔子模块 343
14.1 概述 344
14.2 关键技术 344
14.2.1 获取进程信息 344
14.2.2 获取计算机信息 347
14.2.3 修改注册表 349
14.3 设计过程 349
14.3.1 主窗体 349
14.3.2 功能菜单设计 350
14.3.3 系统检测 353
14.3.4 系统优化 356
14.3.5 超级工具 360
14.3.6 实用工具 367
14.3.7 任务管理器 369
14.3.8 选项设置 371
第15章 学生考试模块 375
15.1 设计思路 376
15.2 关键技术 376
15.2.1 获取试题数目 376
15.2.2 验证用户名和密码 377
15.2.3 随机抽取试题 377
15.2.4 自动评分 377
15.3 设计过程 378
15.3.1 数据库设计 378
15.3.2 公共类设计 380
15.3.3 登录验证 381
15.3.4 主窗体实现 382
15.3.5 开始考试 384
15.3.6 修改密码 393
15.3.7 分数查询 394
15.3.8 管理员界面 394
15.3.9 用户管理 395
15.3.10 成绩查询 399
15.3.11 考试设置 401
15.3.12 添加试题 403
15.3.13 修改试题 406
第16章 网页浏览器模块 409
16.1 概述 410
16.2 关键技术 410
16.2.1 网页浏览器核心控件 410
16.2.2 网页多页面显示 415
16.2.3 获取网页源码 416
16.3 设计过程 417
16.3.1 主窗体 417
16.3.2 查看网页源码 427
16.3.3 添加到收藏夹 427
16.3.4 整理收藏夹 429
第17章 电话客服管理模块 431
17.1 设计思路 432
17.2 关键技术 432
17.2.1 语音卡中的API函数 432
17.2.2 硬件语音卡驱动分析 437
17.2.3 窗体间传值 438
17.2.4 导航菜单的制作 438
17.3 设 计 过 程 439
17.3.1 数据库设计 439
17.3.2 模块主窗体设计 441
17.3.3 自动语音处理 444
17.3.4 通话管理实现 450
17.3.5 员工管理实现 452
17.3.6 产品类别管理 455
第18章 多媒体播放器 459
18.1 设计思路 460
18.2 关键技术 460
18.2.1 窗体间的信息传递 460
18.2.2 AxWindowsMediaPlayer控件的相关应用 461
18.2.3 在列表框中动态移动选中的项 463
18.2.4 如何在文件夹中遍历文件 463
18.2.5 如何实现播放进度条 464
18.3 设计过程 465
18.3.1 磁性窗体的设置 465
18.3.2 播放窗体的设计 472
18.3.3 列表窗体的设计 482
18.3.4 歌词窗体的设计 485
第19章 屏幕录像模块 487
19.1 概述 488
19.2 关键技术 488
19.2.1 如何抓取屏幕 488
19.2.2 创建AVI文件 488
19.2.3 向AVI文件中添加视频 489
19.2.4 分解AVI文件 490
19.2.5 设置快捷键 491
19.3 设计过程 494
19.3.1 主窗体设计 494
19.3.2 抓图功能 494
19.3.3 选项设置 496
19.3.4 屏幕录像 497
19.3.5 视频分割 503
第20章 EXE文件加密器 511
20.1 设计思路 512
20.2 关键技术 512
20.2.1 FileStream对象 512
20.2.2 文件的读写操作 513
20.2.3 如何获取两个日期的月份差 515
20.2.4 获取两个日期的相差天数 516
20.2.5 载取字符串中的指定字符 516
20.3 设计过程 517
20.3.1 获取加密字符串的信息 517
20.3.2 对生成后的数据进行加密 520
20.3.3 对EXE文件进行加密 522
20.3.4 解密文件的设置 524
第21章 视频监控模块 529
21.1 设计思路 530
21.2 关键技术 530
21.2.1 认识视频监控卡 530
21.2.2 视频监控卡中API函数的使用 532
21.2.3 Pelco-D协议 536
21.2.4 串口通信技术 538
21.2.5 WMI类的使用 540
21.2.6 注册表技术 541
21.3 设计过程 543
21.3.1 视频监控实现 543
21.3.2 云台控制 546
21.3.3 色彩控制 548
21.3.4 图像抓拍及生成监控录像 549
21.3.5 定时录像设置 551
21.3.6 录像回放 552
21.3.7 注册程序 553
21.3.8 实时监控软件运行时间及磁盘空间 554
第22章 网络五子棋游戏 557
22.1 设计思路 558
22.2 关键技术 558
22.2.1 在下拉列表中绘制图片 558
22.2.2 UDP协议 560
22.2.3 用Socket实现信息传递的必备条件 560
22.2.4 自定义事件的设置 561
22.2.5 动态按钮的设置 562
22.3 设计过程 564
22.3.1 类库的设计 564
22.3.2 客户端注册模块设计 569
22.3.3 客户端登录模块设计 571
22.3.4 五子棋大厅的设计 573
22.3.5 对决窗体的设计 583
22.3.6 网络五子棋服务器窗体的设计 598
第23章 在线升级模块 609
23.1 设计思路 610
23.2 关键技术 610
23.2.1 FTP上传下载技术 610
23.2.2 XML文件操作 611
23.2.3 INI文件的读写 613
23.2.4 动态生成版本面板 614
23.2.5 使用Hashtable(哈希表)记录版本号及更新信息 614
23.3 类库设计过程 615
23.4 服务器端设计过程 621
23.4.1 服务器端主窗体预览 621
23.4.2 连接FTP服务器 622
23.4.3 向FTP服务器上传新版本 623
23.5 客户端设计过程 626
23.5.1 启动客户端时检测是否有新版本 626
23.5.2 从FTP服务器下载指定版本 628
23.5.3 定时升级设置 630
第24章 Windows应用程序打包与部署境 633
24.1 Windows Installer简介 634
24.2 Windows应用程序部署 634
24.2.1 创建部署项目 634
24.2.2 可选的部署功能 636
24.3 安装及卸载Windows程序 642
24.3.1 在本地计算机上安装 642
24.3.2 部署到其他计算机 642
24.3.3 卸载安装应用程序 642