【windows 脚本系列】1. 第1章 Windows Script Host简介
- 格式:pdf
- 大小:444.96 KB
- 文档页数:21
WinRunner使用说明WinRunner(以下简称 WR)是Mercury Interactive公司开发的一种自动化功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。
通过自动录制、检测和回放用户的应用操作,你可以创建可修改和可复用的测试脚本,WinRunner能够有效地帮助测试人员对软件不同的版本进行测试,提高测试人员的工作效率和质量。
以WinRunner执行测试,就与人工测试一样,WinRunner会仿真鼠标的动作与键盘的输入,当在软件操作中点击GUI对象时,WinRunner会使用一种类C的测试脚本语言TSL生成一个测试脚本。
测试人员可以手工编辑脚本。
WinRunner包括的功能生成器可以帮助用户快速简便的在已录制的测试中添加功能。
WinRunner有两种录制测试的模式:1.环境判断模式2.模拟模式环境判断模式根据用户选取的GUI对象将用户对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。
每一次对被测软件进行操作,测试脚本会描述用户选取的对象和操作动作。
第1 章WinRunner安装1.1 WinRunner8.0安装1.1.1 安装步骤下面以Windows XP为例介绍如何安装WinRunner8.0。
在获取到WinRunner8.0的安装包后,就可以运行安装包进行安装,如图所示。
Name: Company: Maintenance Number:1234-5858585858 或8888-5858585858此处可以修改安装路径安装结束。
1.2 WinRunner基础知识1.2.1 winRunner程序界面在学习创建测试之前,先了解一下winRunner的主界面。
执行【开始】->【程序集】->【WinRunner】->【WinRunner】,首先开启WinRunner Add-in Manager窗口。
WinRunner Add-in Manager 显示你目前可以使用的Add-in,我们现在介绍的是并没有使用任何Add-in,所以请确认没有勾选任何Add-in 后按下【OK】按钮。
一、准备软件1、nLite 1.4 Final/~nlite/nlite/nLite-1.4.exe2、Microsoft .NET Framework 2.0/downloads/info.aspx?na=90&p=&SrcDi splayLang=zh-cn&SrcCategoryId=&SrcFamilyId=0856eacb-4362-4b0 d-8edd-aab15c5e04f5&u=http%3a%2f% %2fdownload%2f5%2f6%2f7%2f567758a3-759e-473e-bf8f-521544 38565a%2fdotnetfx.exe3、Microsoft .NET Framework 2.0 版简体中文语言包(x86)/downloads/info.aspx?na=90&p=&SrcDi splayLang=zh-cn&SrcCategoryId=&SrcFamilyId=39c8b63b-f64b-4b6 8-a774-b64ed0c32ae7&u=http%3a%2f% %2fdownload%2f2%2fc%2f7%2f2c791d8a-0ef9-49fa-9528-68b796 26b9cb%2flangpack.exe4、Windows XP SP2 (政府免激活简体中文版)VRMPVOL_CN.ISO (自己寻找下载)二、精简前准备1、安装1 (例如安装到D:\nLite)、2、3。
2、释放VRMPVOL_CN.ISO 内文件夹及文件(例如释放到D:\MINIXP)D:\MINIXP\I386D:\MINIXP\BOOTFONT.BIND:\MINIXP\WIN51D:\MINIXP\WIN51IPD:\MINIXP\WIN51IP.SP2此时D:\MINIXP 文件夹大小:542 MB (569,023,254 字节)3、下载F1、F2、F43、F44 的附件并释放到D:\nLite\20071201 下D:\nLite\20071201\$OEM$D:\nLite\20071201\$OEM$\INSTALL.INSD:\nLite\20071201\$OEM$\Last Session.iniD:\nLite\20071201\$OEM$\Last Session_u.iniD:\nLite\20071201\$OEM$\$$\Registry.regD:\nLite\20071201\I386D:\nLite\20071201\I386\Flash.oc_ 更新版本D:\nLite\20071201\I386\swflash.in_ 同上脚本D:\nLite\20071201\I386\IEXPRESS.EX_ 汉化文件D:\nLite\20071201\I386\luna.th_ 主题修正D:\nLite\20071201\I386\LegitCheckControl.dl_ 正版破解D:\nLite\20071201\I386\WgaLogon.dl_ 正版破解D:\nLite\20071201\I386\WgaTray.ex_ 正版破解D:\nLite\20071201\I386\WINLOGON.EX_ 精简破解D:\nLite\20071201\I386\WINNT.SIF 安装脚本D:\nLite\20071201\BOOT.BIND:\nLite\20071201\CDIMAGE.CMDD:\nLite\20071201\CDIMAGE.EXED:\nLite\20071201\-LANG.CMD三、开始精简布置运行D:\nLite\nlite.exe选择语言为:Simplified Chinese 下一步选择Windows 安装文件所在位置为:D:\MINIXP 下一步导入D:\nLite\20071201\$OEM$\Last Session.ini 精简配置并加载下一步点击组件、无人值守、设置、调整下一步注意:1、nLite 的一个Bug,加载时会忽略带* 的行,请自行补充勾选;2、强烈建议不要导入及加载非本版本号的nLite 精简配置,切记!如下是导入后的内容:组件+■操作系统选项√ .NET Framework□ 16-位支持√ Blaster/Nachi 移除工具√ FAT 转NTFS 格式转换器□ IE 核心组件□ IExpress 向导□ Jet 数据库引擎□ MDAC√ MS XML 2.0□ MS 助手□ MS Visual Basic 5 运行库□ MS Visual Basic 6 运行库□ MS Visual Basic 脚本支持√ Zip 文件夹√ 安全中心√ 帮助和支持□ 帮助引擎□ 本地安全设置□ 磁盘配额√ 磁盘清理□ 登录通知√ 额外字体√ 符号调试器(NTSD)□ 格式化驱动器支持√ 管理模板√ 管理员VB 脚本√ 华生医生□ 可扩展存储引擎(Esent97)□ 命令行工具√ 色彩方案□ 审核资源动态链接库√ 手动安装与升级√ 输入法编辑器√ 搜索助手√ 网页视图√ 文档模板√ 文件和设置转移向导□ 文件系统筛选管理器√ 系统媒体管理器□ 应用程序兼容性补丁□ 用户帐号头像□ 远程安装服务(RIS)√ 造字程序□ 证书管理√ 注册激活√ 桌面清理向导□ 组策略管理控制台+■多媒体□ Acm 核心解码器√ AOL ART 图像格式支持□ DirectX□ DirectX 诊断工具□ Intel Indeo 解码器□ Luna 桌面主题□ MIDI 音频支持□ OpenGL支持□ Windows Media Player□ Windows Media Player 6.4□ Windows 声音□ Windows 图片和传真查看器√ 老式的CD 播放器和录音机√ 媒体中心√ 平板电脑√ 鼠标光标√ 图像背景√ 音乐示例□ 用于播放(WMP) 在线流媒体的控件□ 语音支持+■服务√ Application Layer Gateway□ COM+□ DHCP 客户端√ DNS 客户端□ HTTP SSL√ IMAPI 光盘刻录服务□ Internet 验证服务(IAS)√ IPSEC 服务□ Kerberos 密钥发布中心√ Messenger√ Qos 数据包计划程序√ RPC 定位器□ System 监视器√ TCP/IP NetBIOS 助手√ Telnet□ Windows 防火墙/Internet 连接共享□ Windows 管理规范√ Windows 时间√ 不间断电源供应(UPS)□ 传真服务□ 存储保护√ 错误报告服务√ 二次登陆√ 分布式链接跟踪客户端□ 分布式事务协调器□ 蜂鸣驱动√ 服务公告协议(SAP)□ 后台智能传输服务√ 简单TCP/IP 服务□ 简单网络管理协议(SNMP)√ 警报器√ 卷影复制□ 可移动存储√ 路由监听服务□ 事件日志√ 索引服务√ 通用即插即用设备□ 外壳服务□ 网络登陆√ 网络动态数据交换(DDE)□ 网络供应服务√ 网络客户端□ 网络位置识别□ 文字服务框架□ 无线零配置√ 系统还原服务□ 系统事件通知(SENS)□ 消息队列(MSMQ)□ 性能日志和警报√ 远程注册表√ 质量服务资源预订协议□ 终端服务√ 自动更新+√ 键盘+■驱动√ IBM PS/2 指点杆√ IBM Thinkpad√ ISDN□ SCSI/RAID√ Sony 滚轮键□ 便携音频设备√ 串行手写板√ 磁带驱动器√ 打印机√ 调制解调器√ 东芝DVD 解压卡√ 多功能卡√ 罗技手柄√ 扫描仪√ 微软手柄√ 无线以太网(WLAN)□ 显示适配器□ 显示适配器(旧式)□ 以太网(LAN)√ 异步传输模式(ATM)√ 照相机和摄像机+■网络√ FrontPage 扩展√ H323 MSP□ Internet Explore r√ Internet 连接向导□ Internet 信息服务(IIS)√ IP 会议□ MAC 网桥□ MS 邮件和邮件应用程序接口(MAPI) √ MSN Explorer√ Netmeeting□ NetShell 命令行工具√ Netware 客户端服务√ NWLink IPX/SPX/NetBIOS 协议□ Outlook Express□ TAPI 程序支持√ TC P/IP V6√ Web 文件夹√ Windows Messenger□ 拨号和虚拟个人网络(VPN) 支持√ 点对点√ 共享创建向导□ 活动目录√ 控制测试终端程序√ 连接管理器√ 矢量图形呈现(VML)√ 通讯工具√ 同步管理器□ 网络安装向导√ 网络监视驱动及工具□ 映射网络驱动器向导+■应用程序√ Internet 游戏√ NT 备份□ 磁盘碎片整理程序√ 辅助功能选项√ 公文包√ 画图□ 计算器√ 剪贴薄查看器√ 屏幕保护√ 三维弹球√ 写字板√ 游戏□ 字符映射表+■硬件支持□ AGP 筛选器□ ALI 1535 SMBus 宿主控制器□ ALI IDE控制器□ AMD CPU□ ATM 支持√ Brother 设备□ CMD PCI ID E 控制器√ Gravis 数字游戏端口□ IEEE 1284.4 设备(Dot4)√ Iomega Zip 设备□ Microsoft 色彩管理器(ICM) □ PCMCIA√ Ramdisk□ SD 卡宿主控制器□ Sony 记忆棒□ Transmeta Crusoe CPU□ USB 视频捕获设备□ USB 以太网□ USB 音频支持√ Windows CE USB 主机□ Windows 图象捕获(WIA)□ 打印机支持□ 电池□ 调制解调器支持□ 东芝PCI IDE 控制器□ 端口(COM 和LPT)□ 多处理器支持√ 多端口串行适配器□ 红外线□ 火线(1394) 支持□ 火线1394 网络支持□ 蓝牙支持□ 逻辑磁盘管理器□ 软驱支持□ 视频捕获□ 手柄支持□ 图文编解码器□ 威盛PCI IDE 控制器□ 英特尔CPU□ 英特尔PCI IDE 控制器√ 智能卡+■语言√ Arabic√ Armenian√ Baltic√ Central Europe√ Cyrillic√ Georgian√ Greek√ Hebrew√ Indic√ Japanese√ Korean□ Simplified Chinese√ Thai□ Traditional Chinese√ Turkic√ Vietnamese√ Western Europe and United States 高级[保留框];系统配置文件msconfig.exe;CMD 支持中文输入法conime.exe;CMD 帮助命令help.exe;CMD net命令帮助文件net.hlp;nLite 推荐保留webdings.ttf[删除框] clock.avi yahoo.bmp swtchbrd.bmp ;输入法部分a15.tbla234.tbl acode.tblapp932.fon app949.fon app950.fon arphr.tbl arptr.tblarray30.tab arrayhw.tab c8514fix.fon c8514oem.fon c8514sys.fon chajei.ime chtmbx.dll chtpaden.chm chtskdic.dic chtskdic.dll chtskf.dll cintime.dll cintlgb.imd cintlgd.imd cintlgie.imd cintlgl.imd cintlgnt.ime cintlgs.imd cintlgsi.imd cintlgu.imd cintlguc.imd cintsetp.exe cjhlpen.chm t cjhlpen.hlp cplexe.exe cvgafix.fon cvgasys.fon dayi.ime dayiphr.tbldayiptr.tblftlx0411.dllh8514fix.fon h8514oem.fon h8514sys.fon hanja.lex hanjadic.dll hvgafix.fon hvgasys.fon hwxcht.dll hwxjpn.dll hwxkor.dll imekr.lex imekr61.ime imekrcic.dll imekrmbx.dll imekrmig.exe imjp81.ime imjp81k.dll imjpcd.dic imjpch.dic imjpcic.dll imjpcl.chm imjpcl.hlp imjpcle.chm imjpcle.hlp imjpcus.dll imjpdadm.exe imjpdct.dll imjpdct.exe imjpdsvr.exe imjpdt.chm imjpdte.chm imjpgn.grm imjpinst.exe imjpinst.ini imjpln.dic imjpmig.exe imjpnm.dic imjppd.chm imjprw.exe imjpsb.dic imjpsm.chm imjpsm.hlpimjpsme.chm imjpsme.hlp imjpst.dic imjptk.dic imjptu.chm imjpuex.exe imjputy.exe imjputyc.dll imjpzp.dic imkr61.chm imkr61.hlp imkren61.chm imkren61.hlp imkrinst.exe imkrinst.ini impdko61.chm imscinst.exe imskdic.dll imskf.dllj8514fix.fonj8514oem.fon j8514sys.fon jpnpaden.chm jsmalle.fon jsmallf.fon jvgafix.fon jvgasys.fon korpaden.chm lcphrase.tbl lcptr.tbl miniime.tpl msdayi.tbl multibox.dll padrs404.dll padrs411.dll padrs412.dll padrs804.dll phon.ime phon.tbl phoncode.tbl phonptr.tbl pintlcsa.dll pintlcsd.dic pintlcsd.dllpintlcsk.dic pintlgi.imd pintlgix.imd pintlgl.imd pintlgnt.ime pintlphr.exe pmigrate.dll quick.ime romanime.ime softkey.dll tintlgc.imd tintlgd_.imd tintlgl.imd tintlgnt.ime tintlgs.imd tintlphr.exe tintsetp.exe tmigrate.dll unicdime.ime uniime.dllvga932.fon vga949.fon vga950.fon voiceeng.chm voicejp.chm voicepad.dll voicesub.dll winabc.cwd winabc.ime winabc.ovl winar30.ime wingb.ime winime.ime winpy.ime winpy.mb winsp.ime winsp.mb winzm.ime winzm.mb;字体部分ahronbd.ttf andlso.ttf angsa.ttf angsab.ttfangsau.ttf angsaub.ttf angsaui.ttf angsauz.ttf angsaz.ttf ariblk.ttf artrbdo.ttf artro.ttf browa.ttf browab.ttf browai.ttf browau.ttf browaub.ttf browaui.ttf browauz.ttf browaz.ttf comic.ttf comicbd.ttf cordia.ttf cordiab.ttf cordiai.ttf cordiau.ttf cordiaub.ttf cordiaui.ttf cordiauz.ttf cordiaz.ttf david.ttf davidbd.ttf davidtr.ttf estre.ttf frank.ttf gautami.ttf georgia.ttf georgiab.ttf georgiai.ttf georgiaz.ttf impact.ttf kartika.ttf latha.ttf lvnm.ttf lvnmbd.ttf mangal.ttf mriam.ttfmriamfx.ttf mriamtr.ttf mvboli.ttf nrkis.ttf pala.ttf palab.ttf palabi.ttf palai.ttf raavi.ttf rod.ttf rodtr.ttf shruti.ttf simpbdo.ttf simpfxo.ttf simpo.ttf sylfaen.ttf symbol.ttf tradbdo.ttf trado.ttf tunga.ttf upcdb.ttf upcdbi.ttf upcdi.ttf upcdl.ttf upceb.ttf upcebi.ttf upcei.ttf upcel.ttf upcfb.ttf upcfbi.ttf upcfi.ttf upcfl.ttf upcib.ttf upcibi.ttf upcii.ttf upcil.ttf upcjb.ttf upcjbi.ttf upcji.ttf upcjl.ttf upckb.ttf upckbi.ttf upcki.ttfupclb.ttf upclbi.ttf upcli.ttf upcll.ttf vrinda.ttf 8514fixe.fon 8514fixg.fon 8514fixr.fon 8514fixt.fon 8514oeme.fon 8514oemg.fon 8514oemr.fon 8514oemt.fon 8514syse.fon 8514sysg.fon 8514sysr.fon 8514syst.fon 85775.fon 85855.fon85f1255.fon 85f1256.fon 85f1257.fon 85f874.fon85s1255.fon 85s1256.fon 85s1257.fon 85s874.fon app775.fon app852.fon app855.fon app857.fon app866.fon cga40737.fon cga40852.fon cga40857.fon cga40866.fon cga40869.fon cga80737.fon cga80852.fon cga80857.fon cga80866.fon cga80869.fon coue1255.foncoue1257.fon couf1255.fon couf1256.fon couf1257.fon couree.fon coureg.fon courer.fon couret.fon courfe.fon courfg.fon courfr.fon courft.fondos737.fon dos869.fon ega40737.fon ega40852.fon ega40857.fon ega40866.fon ega40869.fon ega80737.fon ega80852.fon ega80857.fon ega80866.fon ega80869.fon msdlg874.fon script.fon sere1255.fon sere1256.fon sere1257.fon serf1255.fon serf1256.fon serf1257.fon serifee.fon serifeg.fon serifer.fon serifet.fon seriffe.fon seriffg.fon seriffr.fon serifft.fon smae1255.fon smae1256.fon smae1257.fonsmaf1256.fon smaf1257.fon smallee.fon smalleg.fon smaller.fon smallet.fon smallfe.fon smallfg.fon smallfr.fon smallft.fon ssee1255.fon ssee1256.fon ssee1257.fon ssee874.fon ssef1255.fon ssef1256.fon ssef1257.fon ssef874.fon sserifee.fon sserifeg.fon sserifer.fon sserifet.fon sseriffe.fon sseriffg.fon sseriffr.fon sserifft.fon symbolf.fon vga737.fon vga775.fon vga852.fon vga855.fon vga857.fon vga860.fon vga861.fon vga863.fon vga865.fon vga866.fon vga869.fon vgaf1255.fon vgaf1256.fon vgaf1257.fon vgaf874.fon vgafixe.fonvgafixg.fonvgafixr.fonvgafixt.fonvgas1255.fonvgas1256.fonvgas1257.fonvgas874.fonvgasyse.fonvgasysg.fonvgasysr.fonvgasyst.fonwst_czec.fonwst_engl.fonwst_fren.fonwst_germ.fonwst_ital.fonwst_span.fonwst_swed.fon;破解后精简oembios.binoembios.catoembios.datoembios.sig;个人认为精简tcpmon.hlptelnet.exechannels.scfscrnsave.scrdvdplay.exedvdupgrd.exeregwizc.dllregwiz.exegmreadme.txt无人值守常规无人值守模式:全部自动产品密匙: BYCMBR844WKJBQXJ3D9FV3Y6G 杂项:√ 关闭防火墙√ 关闭休眠用户自动登陆:用户名:Administrator密码:√ 空密码所有者和网络ID计算机名: XP工作组: MSHOME完整名称: Windows单位: Microsoft区域选项语言组:Japanese、Korean、Simplified Chinese、Traditional Chinese 时区:北京,重庆,香港特别行政区,乌鲁木齐设置常规语言:保留被移除语言的编码页:禁用清除MUI 多国语言支持条目:启用补丁最大未完成并发连接数(TCP/IP 补丁):1000USB 端口轮询频率[Hz]:默认未签名主题支持(Uxtheme 补丁):启用SFC(Windows 系统文件保护):禁用调整(注*:配置文件加载时被nLite 1.4 忽略的选项。
如何将其它程序的窗口置于最前面?可以通过使用Windows API 函数FindWindow找到一个窗口的句柄。
假设您希望将一个Microsoft Access 窗口置于最前面:HWND Handle= ZERO;Handle= FindWindow("OMAIN",ZERO);if(Handle){ShowWindow(Handle, SW_MINIMIZE); //ShowWindow ( Handle, SW_SHOWNORMAL );SetForegroundWindow(Handle);}elseProgramExecute("C:\\MSOffice.97\\Office\\ACCESS.EXE");如果没有发现该窗口,随后Microsoft Access 将重新启动。
FindWindow 函数的注意事项:第一个参数是窗口的类。
可以使用编译器(比如:用Visual C++ 中的Spy 命令)找到类。
第二个参数是窗口的标题(标题栏)。
可以指定两个参数中的任何一个,或者两个都指定。
在本{ShowWindow ( Handle, SW_SHOWNORMAL );SetForegroundWindow(Handle);}关键词:编程技巧如何在WinCC 运行时通过按下一个按钮来启动一个程序,打印一个文本文件或者打开一个PDF文件?显示订货号说明:WinCC 在动态向导里提供了方便的“启动其他应用程序”功能来启动一个外部程序。
这个向导生成一个C 脚本。
为了给这个程序添加参数,可以打开该脚本并添加相关参数。
下面提供了一些例子,这里只显示了脚本中最重要的那一行语句。
例程序号.调用标准程序:1•ProgramExecute("C:\\WINDOWS\\winhlp32.exe");22560470WinHelp (Windows Help) via API显示订货号QUESTION:Can a user-specific Help be called in a WinCC project?ANSWER:Yes, in WinCC you can call use an API call to call a user-specific Help. With "fuCommand" you can branch to a specific topic. For this you create a new project function with the following code:#pragma code("user32.dll")BOOL WinHelpA(hwnd, lpszHelpFile, fuCommand, dwData);#pragma code()#define HELP_CONTENTS 0x0003Lvoid WinHelpApi(){HWND hwnd; /* handle of window requesting help */char HelpFile[255];UINT fuCommand; /* type of help */DWORD dwData; /* additional data */BOOL bRetVal;LPCTSTR lpszHelp;lpszHelp = HelpFile;strcpy(HelpFile, "c:\\Win.95\\Help\\Calc.hlp");hwnd = FindWindow("PDLRTisAliveAndWaitsForYou","WinCC Runtime - ");fuCommand = HELP_CONTENTS;dwData = 0L;bRetVal=WinHelpA((DWORD) hwnd,(DWORD) lpszHelp, fuCommand, dwData);printf("hwnd: %d \r\n",hwnd);printf("HelpFile: %s \r\n",HelpFile);printf("bRetVal: %d \r\n",bRetVal);}In this example the "Help for Windows Pocket Computers" is opened. If you want to open a different Help file, replace the "HelpFile" string with the path of a different file. If the return value "bRetVal" is equal to 0, an error has occurred. You can now call this project function, for example, by clicking a buttonHere, we are talking about calling a Windows function. Detailed descriptions are given for instance in the documentation for Visual C++. This example is solely to demonstrate how toincorporate the call in WinCC.Print out ASCII file via Action显示订货号QUESTION:.How can I print out an ASCII file via Action?ANSWER:If you want to print out an ASCII file via Action (for example for production data acquisition), then you need to make a function call as follows:system("copy c:\\autoexec.bat \\\\nbgm312a\\ps1cs1");•You must enter the path and filename in the first part of the call.• A network printer is in the second part whose address is given under Printer Properties.Creating a new directory via C scripts显示订货号QUESTION:How can I create a new directory in WinCC with script functions?ANSWER:Use the following program code if you want to create a new directory in WinCC:#pragma code("kernel32.dll");BOOL CreateDirectoryA( LPCTSTR ,LPSECURITY_ATTRIBUTES );#pragma code()'CreateDirectoryA("c:\\test",NULL);使用C函数“Sleep”显示订货号问题:如何在WinCC中编程“Sleep”等待功能?解答:为此,可以使用Windows API功能“Sleep()”。
VBS实现DOC转为文本文档的代码my-script.vbs "c:\scripts"在文件夹路径的两端必须加双引号吗?本例中不需要。
但是,如果路径中有空格,则必须加双引号。
以下命令行将不起作用:my-script.vbs c:\documents and settings\kmyer只要是向脚本传递包含空格的参数,就必须将整个参数括在双引号内(否则无需如此)。
换句话说:my-script.vbs "c:\documents and settings\kmyer"这就是命令解释程序的工作方式。
那么,我们将在这里运行什么脚本呢?问得好。
最终是这样一个脚本:Set objShell = CreateObject("Wscript.Shell")strPath = Wscript.Arguments(0)strPath = "explorer.exe /e," & strPathobjShell.Run strPath如同往常一样,该脚本没有太多内容。
我们首先创建Wscript.Shell 对象的实例;它是Windows Script Host 对象,我们用它来在另一脚本内运行脚本或可执行文件。
然后我们获取提供给脚本的第一个参数(c:\scripts) 并将其存储到名为strPath 的变量中:strPath = Wscript.Arguments(0)对这些应该没有什么疑问吧?稍后,我们将使用Run 方法启动Windows 资源管理器。
不过,在此之前,我们应注意到WSH 中的Run 方法同Run 对话框基本上是一回事。
如果想使用Run 对话框启动Windows 资源管理器(焦点定位在C:\Scripts 文件夹上),需要键入以下代码:explorer.exe /e,c:\scripts我们发现,以上使用的语法与我们用Run 方法启动Windows 资源管理器所用的语法相同:我们只需要构建命令,然后执行:strPath = "explorer.exe /e," & strPathobjShell.Run strPath在第 1 行,我们采取命令explorer.exe /e, 并附加上文件夹路径(该路径存储在变量strPath 中);然后,strPath 的值将是explorer.exe /e,c:\scripts。
第5章Microsoft InternetInformation Server 4.0本章要点•IIS主要特性•安装IIS• 配置IIS在第1章,我们已经介绍过,随着信息时代的来临,通过I n t e r n e t向全世界发布信息已经成为了必然的趋势,Internet给企业带来了无限商机。
Microsoft Internet Information Server (IIS)是在Windows NT(Server和Wo r k s t a t i o n)和Wi n d o w s 9x上构架Internet和Intranet的基本组件。
目前,在Microsoft的Windows NT 4.0 Server操作系统中,已经集成了Internet Information Server,因为Windows NT的N T F S文件系统特有的安全性能,可以使Internet Information Server更安全地运行在Windows NT平台上。
目前,I I S已经推出了4 .0版本,它增强了不少功能,包含在Windows NT的Options Pack4中的,本章介绍如何在Windows NT Server系统上安装并使用IIS 4.0。
5.1 Microsoft IIS的主要特性IIS有许多强大的功能,其主要特点如下:1)与Windows NT完美地结合。
使用Windows NT的N T F S文件系统,充分利用Windows NT 的特性,使系统安全可靠。
2)W W W服务。
Microsoft IIS的W W W服务支持H T T P(超文本传输协议),并且允许用户通过服务器向I n t e r n e t发布信息,这对于一个以商业为目的企业是非常有用的,您可以把您的产品介绍以及最新的报价放入W W W服务中,这样,无论对方在世界的哪一个角落,都能够方便、快速地查询到您的企业信息。
W W W服务还可以包括文本、图形、动画或者视频信息,甚至可以让用户能够在Web页上直接订购产品或填写表格。
1. 第1章 Windows Script Host简介在Windows 98之前的Microsoft Windows版本几乎不提供自动化的协助,例如备份文件或执行例行的系统管理工作。
您当然可以在M S-DOS模式窗口中使用旧的MS-DOS批处理文件(BAT)来完成某些工作,例如复制档案。
但是批处理文件只能够执行一连串简单的MS-DOS指令(其缺点包括了只有简单的条件分支和没有实际的循环功能等),并且也不支持对话盒和讯息盒。
在Windows 3.1里面,您可以透过Macro Recorder来记录并执行简单的击键和鼠标点按的动作,但他无法用来撰写程序。
使用者为了寻求较有效率的方式来处理这些自动化的工作而找上了第三方所提供的解决方案,例如PowerBatch或者像是Delphi、Microsoft Visual Basis和Visual C++这类的程序开发环境。
但是许多Windows的使用者很快地发现这些解决方案不合己意,因为他们既不简单易用也不是免费的。
因为Microsoft Office提供VBA(Visual Basic for Applications),以及因为网站的作者们都知道像是VBScript(Microsoft Visual Basic的描述语言版本)和网景的JavaScript这类的描述语言(Scripting Language),所以在Microsoft为Windows操作系统提供Script程序设计工具之前,这只不过是个时间早晚的问题罢了。
而这个工具正是Microsoft的Windows Script Host(WSH),属于Microsoft Windows Script技术的分支。
WSH是一种能够让您直接在操作系统层级执行Script档案的独立主机(Host)。
举例来说,您可以从命令行接口叫用Script或者在档案总管中双击Script。
WSH对于许多需要很少或者根本不需要接口的管理工作来说是相当便利的。
他远比旧的MS-DOS批处理文件好用,因为JScript和VBScript都是功能十分强大的描述语言,他们对于WSH对象和任何其他有效的自动化对象(Automation Object)都有完整的存取功能。
说明在第2版之前,「Windows Script Host」称为「Windows Scripting Host」。
在本书中,将使用WSH来泛指这两个版本。
您能够用WSH Script来做什么您可以在许多方面使用Script来自定义您的Windows系统。
这里有一些您能够使用Script来自动化的工作:∙备份或复原您系统中的档案。
(如果您只是需要从您的机器上储存一些档案到网络服务器中的话,这种能力就显得特别方便。
)∙藉由鼠标点按来关机或重新启动Windows。
您也可以使用Script来新增特别的关机或开机工作,例如在关闭应用程序后备份某些档案或是在开机完毕后记录用户的名称。
(在Windows 95和Windows 98中这种透过Script来记录信息的能力尤其有用;而在Windows NT和Windows 2000中,许多这类的功能都是内建的。
)∙整合应用程序与其数据。
举例来说,Script可以启动Office应用程序、加载并处理文件、打印、以及关闭应用程序。
以这种方式使用Script,您可以用任何您所选择的应用程序来「链接」文件。
∙管理系统所管理的工作,比如说在Windows NT和Windows 2000中新增、更新或移除使用者的账号。
您可藉由使用利用到Windows NT和Windows 2000中所提供的主动式目录服务接口(Active Directory Service Interface,ADSI)的WSH Script来自动化这些工作。
∙透过适当的对象直接存取Windows的Shell以建立快捷方式(Shortcut)或者映像(Map)如磁盘驱动器和打印机之类的网络装置。
∙读取环境变量(Environment Variable)或是取得有关Windows的信息。
∙启动程序并且控制自动化对象。
∙显示通知用户关于程序的状态或者读取用户输入的对话盒。
∙存取Windows的Shell和Windows的应用程序编程接口(Application Programming Interface,API)来控制Windows和其他应用程序。
有关VBScript和JScript的补充说明与Windows 98和Windows 2000一起发布(以及供Windows 95和Windows NT 4使用的可下载版本)的WSH,都有内附VBScript和JScript这两种程序语言。
VBScript使用和Visual Basic一样的语法,他实际上就是Visual Basic的一个子集合。
而JScript则是Microsoft根据ECMAScript标准(ECMA为「欧洲计算机制造商协会」的缩写)实作的一种建构在JavaScript基础之上且与开发厂商无关(Vendor-Independent)的程序语言。
这两种程序语言都是您进入Script程序设计世界中的必备品。
但是,Microsoft为WSH设计了一个开放的接口以便第三方能够整合他们自己的语言引擎(Language Engine)来支持其他的语言,例如Perl、Tcl(Tool Control Language)、Rexx等。
升级到WSH 2WSH 1首先是跟着Windows NT 4 Option Pack一起发布的。
WSH同时也是Windows 98的一部份,但是他并不会主动安装到您的机器上,您必须将其当作是附加的Windows组件来安装他。
而WSH 2已整合到Windows 2000系统上,所以如果您使用的是Windows 2000的话,您将不需要再去安装他。
要检查您的系统中是否已经安装好WSH,您可以简单地浏览一下包含.js、 .vbs和.wsf档案的文件夹(例如使用档案总管)。
如果显示这些档案的图标(icon)与图1-1相同的话,即表示WSH 2已经安装好。
如果说.wsf的图标显示的是「未知的文件」类型,则表示WSH 1已经安装过了。
如果全部的图标都是显示为「未注册的档案」类型的话,就表示WSH尚未安装。
图1-1 Script档案的图示与扩展名VBScritp vs. Visual Basic/VBA与JScript vs. JavaScript如果您曾经用Visual Basic或VBA写过程序,或者曾经以VBScript或JScript在HTML文件中撰写Script,那么用VBScript或JScript写作WSH对您而言就应该不是什么大问题了,但是您必须记住下列几点:∙Visual Basic的程序可以编译成EXE执行档,但是WSH却无此功能。
在WSH中,您所有的Script 都必须为扩展名是.vbs、.js或.wsf的纯文本档。
WSH会直接使用Windows指令引擎(ScriptEngine)来直译Script的内容,所以您可以使用纯文本档的编辑器(如记事本)来撰写您的Script 程序。
∙与WSH一同发布的VBScript和JScript并不包含某些程序的结构,比如说在Visual Basic和VBA中允许存取外部函数和程序的Declare宣告叙述(Statement)。
还有VBScript并未包含处理延伸的执行时期错误(Run-Time Error)的例程(Routine),例如「On Error GoTo标记」的叙述。
同时VBScript和JScript都不支持明确的(Explicit)数据类型宣告,相反地,他们将所有的变量视为Variant(一种能包含不同种类数据的特殊数据型态)。
∙WSH提供的对象模块(Object Model)与Internet Explorer提供的不同。
举例来说,WSH中的windows.document对象并不支持用户的输出。
∙因为WSH的环境不提供延伸的用户接口(类似Intenet Explorer中所提供的那样),所以WSH的对象模型没有开放任何用户接口的事件(Event),例如HTML Script中的onClick事件。
但是,WSH支持事件处理(Event Handling)功能,关于这部分您将在后面的章节中看到。
要将Windows 95、Windows 98或Windows NT 4更新至WSH 2,您必须手动安装WSH。
随书光盘中包含每种操作系统的WSH 2版本。
您也可以从h ttp:///taiwan/products/develop/scripting/default.htm网站免费下载最新版的WSH 档案。
说明至于Windows NT 4的使用者,您还必须先安装Service Pack 3。
想要在Windows 95或Windows NT 4中使用WSH,您应该安装好Internet Explorer 4或以上的版本。
而要在Windows 95中以Internet Explorer 3来执行WSH 2,您还必须安装DCOM(Distributed Component Object Model,分布式组件对象模型)。
详细信息请参考台湾微软的网站:h ttp://e-/relaunch/XML/%20/taiwan/products/develop/scripting/default.htm %20。
WSH与语言引擎的版本您必须知道自己安装的是哪一种版本的WSH,以及用来执行这些Script的语言引擎的版本。
Microsoft从3.1版(与WSH 1一起发布)的升级开始便发表了好几种语言引擎。
3.1a版修正了几只臭虫(Bug)。
Visual Basic 6与第4版的语言引擎一同发布。
Internet Explorer 5包含第5版的语言引擎,其中修正了不少臭虫并且扩充语言的功能。
Microsoft还提供可下载的语言引擎第5版当作另一种升级的方式(网址是h ttp:///taiwan/products/develop/scripting/default.htm)。
WSH 2是Windows Script 5.1的一部份,该版本还包括了5.1版的VBScript和JScript的语言引擎。
而5.1版的语言引擎可以和Internet Explorer 4、5以及IIS(Internet Information Server)3、4等版本搭配使用。
建立并且使用Script您已经准备好要建立并且使用您的第一支Script了吗?一开始,我们将以建立显示「Hello, world」讯息之对话盒的简单程序来让您看见Script程序设计的基本功能以及如何执行Script。