第1章 编程快速入门 1
1.1 变量及数据类型 2
1.1.1 变量的使用 2
1.1.2 注释的使用 4
1.1.3 VBScript内建函数的使用 4
1.1.4 理解语法问题 6
1.2 流程控制 9
1.2.1 分支 9
1.2.2 循环 13
1.3 操作符与操作符优先级 18
1.4 代码的组织结构和重用 19
1.4.1 模块化、黑盒、过程和子过程 19
1.4.2 编写函数 20
1.4.3 使用过程的好处 22
1.5 自顶向下与事件驱动 23
1.5.1 理解自顶向下程序设计 23
1.5.2 理解事件驱动程序设计 23
1.5.3 自顶向下和事件驱动的结合 24
1.5.4 事件驱动实例 24
1.6 关于编程的一些忠告 25
1.6.1 要考虑到意外情况 25
1.6.2 保持代码的可读性 26
1.6.3 将代码模块化成模块、类和组件 27
1.6.4 匈牙利变量命名法 27
1.6.5 不要在多个任务中使用同一个变量 27
1.6.6 时刻都要合理地布局代码 28
1.6.7 用注释使您的代码清晰可读,但不要滥用 28
1.7 小结 29
第2章 VBScript是什么?不是什么? 31
2.1 Windows脚本 31
2.2 版本信息 31
2.3 VBScript是VB的子集 32
2.4 VBScript是一种脚本语言 32
2.5 VBScript在运行时被解释 33
2.5.1 运行时编译的缺点 34
2.5.2 运行时编译的优点 35
2.6 使用VBScript的优势 36
2.7 VBScript适合您吗 36
2.8 VBScript在Visual Basic家族中的地位 37
2.8.1 Visual Basic 37
2.8.2 Visual Basic for Applications 38
2.8.3 VBScript 38
2.8.4 VBScript是一门“真正”的编程语言吗 39
2.9 VBScript能做什么 39
2.9.1 PowerShell 39
2.9.2 Windows脚本宿主 39
2.9.3 桌面小工具 40
2.9.4 Windows脚本组件 40
2.9.5 客户端Web脚本 40
2.9.6 服务器端Web脚本 41
2.9.7 远程脚本 42
2.9.8 HTML应用程序 42
2.9.9 在程序中添加VBScript 42
2.10 VBScript的开发工具 42
2.11 小结 43
第3章 数据类型 45
3.1 弱类型脚本语言 45
3.2 为什么数据类型是如此重要 46
3.3 Variant——VBScript中唯一的数据类型 48
3.3.1 子类型的检查和类型转换 49
3.3.2 隐式类型转换 57
3.3.3 隐式类型转换实战 58
3.3.4 Empty与Null 63
3.3.5 对象(Object)子类型 68
3.3.6 Error子类型 69
3.4 复杂数据类型——数组 71
3.4.1 什么是数组 71
3.4.2 数组的维度 71
3.4.3 数组边界和声明数组 72
3.4.4 用下标访问数组 73
3.4.5 遍历数组 76
3.4.6 清除数组 78
3.4.7 在数组中使用VarType() 78
3.5 小结 79
第4章 变量与过程 81
4.1 Option Explicit 81
4.2 变量命名 83
4.3 过程和函数 84
4.3.1 过程的语法 85
4.3.2 函数的语法 86
4.3.3 调用过程和函数 89
4.3.4 可选参数 91
4.3.5 退出过程或函数 91
4.4 变量作用域、声明及生存期 92
4.4.1 理解变量作用域 92
4.4.2 理解变量声明 93
4.4.3 变量生存期 94
4.5 脚本和过程的设计策略 95
4.5.1 限制代码读取和修改变量 96
4.5.2 将代码分割成过程和函数 96
4.5.3 关于脚本设计的忠告 97
4.6 ByRef和RyVal 98
4.7 文字常量和具名常量 100
4.7.1 什么是文字常量 100
4.7.2 什么是具名常量 101
4.7.3 使用具名常量的好处 102
4.7.4 具名常量的使用原则 103
4.7.5 VBScript的内建常量 103
4.8 小结 104
第5章 流程控制 105
5.1 分支结构 105
5.1.1 If分支 105
5.1.2 Select Case分支 107
5.2 循环结构 110
5.2.1 For...Next 110
5.2.2 For Each...Next 114
5.2.3 Do Loop 116
5.2.4 While...Wend 123
5.3 小结 124
第6章 错误处理和调试 125
6.1 错误的类型 126
6.1.1 语法错误 126
6.1.2 运行时错误 127
6.1.3 逻辑错误 131
6.2 错误的可见性和环境 132
6.2.1 Windows脚本宿主错误 132
6.2.2 服务器端ASP错误 132
6.2.3 Internet Explorer中的客户端VBScript错误 133
6.3 错误处理 134
6.3.1 Err对象的使用 134
6.3.2 On Error语句的使用 135
6.3.3 呈现和记录错误 140
6.3.4 显示服务器端ASP错误 142
6.4 生成自定义错误 146
6.4.1 使用Err.Raise 146
6.4.2 什么时候不该用Err.Raise 147
6.4.3 什么时候该生成自定义错误 148
6.5 调试 151
6.5.1 什么是调试器 151
6.5.2 VBScript调试概论 152
6.5.3 用微软脚本调试器调试WSH脚本 153
6.5.4 用微软脚本调试器调试客户端网页脚本 155
6.5.5 用微软脚本调试器调试ASP 159
6.5.6 在没有调试器的情况下调试代码 162
6.5.7 微软脚本调试器的使用 165
6.6 小结 172
第7章 脚本运行时对象 175
7.1 什么是运行时对象 175
7.2 对象基础 176
7.2.1 创建对象 176
7.2.2 属性和方法 177
7.2.3 With关键字 177
7.2.4 对象可以有多重引用 178
7.2.5 对象生存期和销毁对象 180
7.3 字典对象 182
7.3.1 概论 182
7.3.2 三种不同的添加方法 186
7.3.3 CompareMode属性 187
7.3.4 Item属性 187
7.3.5 Exists方法 188
7.4 FileSystemObject库 188
7.4.1 为什么要用FileSystemObject? 189
7.4.2 集合的使用 190
7.4.3 理解FileSystemObject 190
7.4.4 创建文件夹 191
7.4.5 复制文件 192
7.4.6 复制文件夹 193
7.4.7 读取文本文件 194
7.4.8 写文本文件 197
7.5 小结 199
第8章 VBScript中的类(编写COM对象) 201
8.1 对象、类和组件 201
8.2 类语句 202
8.3 定义属性 203
8.3.1 私有属性变量 203
8.3.2 Property Let 204
8.3.3 Property Get 204
8.3.4 Property Set 206
8.3.5 创建只读属性 207
8.3.6 创建只写属性 208
8.3.7 没有属性过程的公共属性 209
8.4 定义方法 210
8.5 类事件 212
8.5.1 Class_Initialize事件 212
8.5.2 Class_Terminate事件 213
8.6 类常量 214
8.7 构建和使用VBScript类 215
8.8 小结 222
第9章 正则表达式 225
9.1 正则表达式简介 225
9.1.1 实战正则表达式 225
9.1.2 从简单的开始 228
9.2 RegExp对象 230
9.2.1 Global属性 230
9.2.2 IgnoreCase属性 231
9.2.3 Pattern属性 231
9.2.4 正则表达式字符 232
9.2.5 Execute方法 240
9.2.6 Replace方法 240
9.2.7 Backreferencing 241
9.2.8 Test方法 242
9.3 Matches集合 243
9.3.1 Matches的属性 244
9.3.2 Match对象 244
9.4 一些例子 246
9.4.1 验证电话号码输入 247
9.4.2 分解URI 248
9.4.3 检查HTML元素 248
9.4.4 匹配空白 249
9.4.5 匹配HTML注释标签 249
9.5 小结 250
第10章 客户端Web脚本 251
10.1 专用工具 251
10.2 脚本编程的发展历程 252
10.3 各种类型的脚本语言 253
10.3.1 JavaScript、JScript和ECMAScript 254
10.3.2 VBScript 254
10.4 响应浏览器事件 255
10.4.1 添加事件句柄 255
10.4.2 添加一个带参数的事件句柄 257
10.4.3 取消事件 258
10.4.4 事件的顺序 260
10.4.5 表单验证 263
10.4.6 验证输入框中的数值 264
10.4.7 验证单选按钮 265
10.4.8 验证选择控件和日期 267
10.5 实战文档对象模型 270
10.5.1 窗口对象 271
10.5.2 集合 273
10.6 小结 276
第11章 Windows边栏和小工具 277
11.1 小工具基础 278
11.1.1 小工具中的文件 280
11.1.2 Manifest文件 280
11.1.3 图标 282
11.2 构建小工具 282
11.3 自动刷新小工具 293
11.4 打包小工具 295
11.5 小结 295
第12章 Task Scheduler脚本编写 297
12.1 使用Task Scheduler 297
12.1.1 使用MMC插件 298
12.1.2 在Task Scheduler中定义并创建任务 298
12.1.3 Task Scheduler XML模式 301
12.2 Task Scheduler 2.0脚本对象 301
12.2.1 Action 301
12.2.2 ActionCollection 302
12.2.3 BootTrigger 302
12.2.4 ComHandlerAction 303
12.2.5 DailyTrigger 303
12.2.6 EmailAction 304
12.2.7 EventTrigger 305
12.2.8 ExecAction 306
12.2.9 IdleSettings 306
12.2.10 IdleTrigger 307
12.2.11 LogonTrigger 307
12.2.12 MonthlyDOWTrigger 308
12.2.13 MonthlyTrigger 309
12.2.14 Networksettings 310
12.2.15 Principal 310
12.2.16 RegisteredTask 310
12.2.17 RegisteredTaskCollection 311
12.2.18 RegistrationInfo 312
12.2.19 RegistrationTrigger 312
12.2.20 RepetitionPattern 313
12.2.21 RunningTask 313
12.2.22 RunningTaskCollection 314
12.2.23 SessionStateChangeTrigger 314
12.2.24 ShowMessageAction 315
12.2.25 TaskDefinition 315
12.2.26 TaskFolder 316
12.2.27 TaskFolderCollection 317
12.2.28 TaskNamedValuePair 317
12.2.29 TaskNamedValueCollection 318
12.2.30 TaskService 318
12.2.31 TaskSettings 319
12.2.32 TaskVariables 320
12.2.33 TimeTrigger 320
12.2.34 Trigger 321
12.2.35 TriggerCollection 322
12.2.36 WeeklyTrigger 322
12.3 Task Shceduler范例脚本 323
12.4 小结 327
第13章 PowerShell 329
13.1 安装需求 329
13.2 功能特性 329
13.3 为什么说PowerShell是一种新的脚本语言 330
13.4 开始使用PowerShell 330
13.4.1 使用PowerShell 332
13.4.2 进一步深入PowerShell 335
13.5 在PowerShell中使用脚本 338
13.5.1 修改PowerShell的执行策略 338
13.5.2 命名脚本 339
13.6 创建并调用第一个PowerShell cmdlet脚本 339
13.7 VBScript与PowerShell之间的联系 341
13.7.1 操作符 341
13.7.2 函数 343
13.7.3 语句 351
13.8 小结 354
第14章 增强的客户端脚本 355
14.1 使用需求与浏览器安全性 355
14.2 Scriptlet——行为机制的前身 356
14.2.1 什么是Scriptlet 356
14.2.2 使用public_前缀暴露scriptlet成员 358
14.2.3 在Scriptlet中封装代码以便重用 358
14.3 事件管理 364
14.3.1 与事件处理程序之间的关系 364
14.3.2 Scriptlet模型扩展 366
14.4 IE5中不支持Scriptlet 369
14.4.1 行为机制 369
14.4.2 行为机制的实现技术 369
14.4.3 将行为应用于HTML元素 370
14.5 HTML组件(HTC) 371
14.6 小结 380
第15章 Windows脚本宿主 383
15.1 相关工具 384
15.2 WSH的概念 384
15.3 脚本文件的类型 385
15.4 使用Windows脚本宿主运行脚本 386
15.4.1 命令行执行 386
15.4.2 在Windows环境中执行WSH 388
15.5 使用.WSH文件运行脚本 389
15.6 Windows脚本宿主的内建对象 390
15.6.1 WScript对象 390
15.6.2 WshArguments对象 397
15.6.3 WshShell对象 399
15.6.4 WshNamed对象 415
15.6.5 WshUnnamed对象 417
15.6.6 WshNetwork对象 417
15.6.7 WshEnvironment对象 422
15.6.8 WshSpecialFolders对象 424
15.6.9 WshShortcut对象 426
15.6.10 WshUrlShortcut对象 432
15.7 小结 433
第16章 Windows脚本组件 435
16.1 什么是Windows脚本组件 435
16.2 需要的工具 436
16.3 脚本组件运行时 436
16.4 脚本组件文件和向导 437
16.5 暴露属性、方法和事件 443
16.5.1 属性 443
16.5.2 方法 444
16.5.3 事件 446
16.6 注册信息 447
16.7 创建脚本组件类型库 448
16.8 如何引用其他组件 450
16.9 ASP的脚本组件 451
16.10 编译时错误检查 452
16.11 在Script组件中使用VBScript类 453
16.11.1 VBScript类的使用限制 453
16.11.2 使用内部类 453
16.11.3 包含外部源文件 455
16.12 小结 456
第17章 脚本编码 457
17.1 脚本编码的使用限制 458
17.2 已编码脚本——什么该做什么不该做 458
17.3 使用Microsoft脚本编码器进行编码 459
17.3.1 获取方式和安装过程 459
17.3.2 使用Microsoft脚本编码器 459
17.3.3 语法 460
17.3.4 可编码的文件类型 462
17.4 脚本的解码 473
17.5 脚本模糊化的其他方法 473
17.6 小结 474
第18章 远程脚本 475
18.1 远程脚本的工作原理 475
18.1.1 安全性 476
18.1.2 远程脚本需要的文件 476
18.2 使用VBScript实现远程脚本 476
18.2.1 在服务器上安装远程脚本 477
18.2.2 在服务端启用远程脚本 477
18.2.3 在客户端启用远程脚本 478
18.2.4 调用一个远程方法 478
18.2.5 将ASP页面转换成VBScript对象 480
18.3 小结 481
第19章 HTML应用程序 483
19.1 HTML应用程序的优点 483
19.2 如何创建一个基本的HTA 484
19.2.1 HTML文件范例 485
19.2.2 将一个HTML文件变为一个HTML应用程序 487
19.3 HTA:APPLICATION元素 488
19.3.1 修改应用程序的外观 488
19.3.2 从命令行中更改参数 489
19.3.3 访问其他的HTA:APPLICATION属性 491
19.4 HTA及其安全性 493
19.4.1 关于框架的安全性问题 493
19.4.2 使用APPLICATION属性 493
19.4.3 使用嵌套框架 495
19.5 HTA部署模型 496
19.5.1 Web模型 496
19.5.2 包模型 496
19.5.3 混合模型 497
19.6 HTA不支持的特性 497
19.6.1 windows对象 497
19.6.2 默认行为 498
19.7 小结 498
第20章 服务器端Web脚本 499
20.1 理解HTTP协议的内部机制 499
20.1.1 HTTP服务器 500
20.1.2 协议基础 500
20.2 ASP简介 503
20.2.1 服务器如何识别ASP 504
20.2.2 ASP基础 504
20.2.3 ASP的标签 504
20.3 使用ASP对象模型 507
20.3.1 集合 507
20.3.2 Request对象的集合 509
20.3.3 Response对象的集合 512
20.3.4 Response对象的属性 515
20.3.5 理解Application和Session对象 516
20.3.6 Application对象 517
20.3.7 Session对象 518
20.3.8 Server对象 520
20.3.9 ObjectContext对象 521
20.4 高效地使用ASP 522
20.4.1 站点设计 522
20.4.2 创建global.asa文件 522
20.4.3 创建主页面 523
20.4.4 ASP/VBScript部分 526
20.4.5 HTML部分 528
20.5 小结 529
第21章 在VB和.NET应用程序中添加VBScript代码 531
21.1 为什么要在应用程序中添加脚本 532
21.2 宏和脚本的概念 532
21.2.1 使用Scriptlet 533
21.2.2 使用脚本 533
21.2.3 选择最佳的使用范围 533
21.3 在VB和.NET应用程序中添加脚本控件 534
21.4 脚本控件参考 535
21.4.1 对象模型 535
21.4.2 对象与集合 535
21.4.3 常量 549
21.5 脚本控件错误处理 549
21.6 调试 552
21.7 使用已编码脚本 553
21.8 .NET工程范例 553
21.9 Visual Basic 6工程范例 554
21.10 小结 558
附录A VBScript函数和关键字 559
附录B 变量命名约定 621
附录C 编码规范 623
附录D VBScript中支持的Visual Basic常量 627
附录E VBScript错误代码和Err对象 633
附录F 脚本运行时库对象参考 647
附录G Windows脚本宿主对象模型 659
附录H 正则表达式 667
附录I Variant的子类型 671
附录J ActiveX数据对象 675