前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBS终极教程(2)

VBS终极教程(2)

作者头像
剑指工控
发布2021-11-09 15:43:19
7520
发布2021-11-09 15:43:19
举报
文章被收录于专栏:剑指工控

=================================== VBS例子讲解--1: 用 run运行文件 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing" VBS例子讲解--2: 用 FSO复制文件 Set shl = CreateObject("Scripting.FileSystemObject") shl.CopyFile "c:\1.txt","d:\" set shl = nothing ========================================================= CreateObject 描述创建并返回对象的引用。语法 CreateObject(class) class 参数使用语法 servername.typename,有以下部分: 部分描述 servername 提供对象的应用程序名称。 typename 要创建的对象类型或类。 说明 Automation 服务器至少提供一种对象类型。例如,字处理应用程序可以提供应用程序对象、文档对象和工具条对象。要创建 Automation 对象,将 CreateObject 函数返回的对象赋值给某对象变量: Dim ExcelSheet Set ExcelSheet = CreateObject("Excel.Sheet") ' 使 Excel 在整个 Application 对象中都可见。 ExcelSheet.Application.Visible = True ' 将一些文本放入工作表的第一个单元格中。 ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1" ' 保存工作表。 ExcelSheet.SaveAs "C:\TEST.XLS" ' 关闭 Excel,使 Quit 方法处于 Application 对象中。 ExcelSheet.Application.Quit ' 释放对象变量。 Set ExcelSheet = Nothing ================================== Set 将对象引用赋给一个变量或属性,或者将对象引用与事件关联。 createobject("WScript.Shell").run"regedit.exe" 和下面的 3句句有同样效果。 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" set shl="nothing" 但如果我要使用多个 CreateObject对象的时候,就要写很多个 CreateObject("WScript.Shell")出来。内容如下: createobject("WScript.Shell").run"regedit.exe" CreateObject("WScript.Shell").popup"注册表已经被运行" 上面例子会给我们造成很多麻烦和工作量。这个时候我们可以使用 set来吧 CreateObject("WScript.Shell")对象付给一个变量。 以后只要对变量访问就相当于对 CreateObject("WScript.Shell")访问了。 set shl="createobject"("WScript.Shell") shl.run"regedit.exe" shl.popup"注册表已经被运行" set shl="nothing" Nothing 可选项。断开 shl与任何指定对象或类的关联。当没有其它变量引用前面的引用对象时,将 shl赋值为 Nothing 以释放与前面的引用对象相关联的系统或内存资源。 WScript 对象介绍属性/方法/对象。属性=一个物体本身具有的一种特性。方法=一个物体能够做某件事情,完成某件事情的时候就要用到方法。 WScript属性的演示例子:运行 WScript属性的格式为: WScript.属性名。 关于属性--实例: WScript.Echo (WScript.FullName) 'FullName 属性是代表主机可执行文件的完全限定路径的只读字符串。 WScript.Echo (WScript.Name) '返回 WScript 对象(主机可执行文件)的名称 WScript.Echo (WScript.Path) '返回包含主机可执行文件(CScript.exe 或 WScript.exe)的路径名称。 WScript.Echo WScript.ScriptName '返回当前运行脚本的文件名。 wscript.echo WScript.ScriptFullName '返回当前运行脚本的完整路径。 WScript.Echo WScript.Version '返回 Windows 脚本宿主的版本 WScript方法的演示例子:运行 WScript方法的格式为: WScript.方法名(操作的内容) 关于方法--实例: WScript.Echo ("hello") '将文本输出到消息框中或命令控制台窗口。 wscript.echo "hello1" WScript.Quit (1) wscript.echo "hello2" 'WScript.Quit强制脚本随时停止执行。 '(1)参数可选。作为过程的退出代码而返回的整数值。此例子中返回的是 1。 =================================================================== wscript.echo "hello1" WScript.Sleep 1000 wscript.echo "hello2" WScript.Sleep 1000 wscript.echo "hello3" '在指定的时间长度内将脚本执行挂起,然后继续执行。 '参数,表示脚本过程处于不活动状态的时间间隔(毫秒)的整数值。 实例 2: set WshShell = WScript.CreateObject("WScript.Shell") '创建快捷方式 strDesktop = WshShell.SpecialFolders("Desktop") set oShellLink = WshShell.CreateShortcut(strDesktop & "\VBS的快捷方式.lnk") oShellLink.TargetPath = WScript.ScriptFullName oShellLink.WindowStyle = 1 oShellLink.Hotkey = "Ctrl+Alt+e" oShellLink.IconLocation = "notepad.exe, 0" oShellLink.Description ="VBS程序的快捷方式" oShellLink.WorkingDirectory = strDesktop oShellLink.Save '创建 URL set oUrlLink = WshShell.CreateShortcut(strDesktop & "\剑思庭博客.url") oUrlLink.TargetPath = "http://blog.cechina.cn/jiansiting" oUrlLink.Save 相关参数说明: WshShell 对象的属性: .SpecialFolders '返回 SpecialFolders 对象(特殊文件夹集)。 下面的特殊文件夹可用: Desktop --->桌面 Favorites --->收藏夹 Fonts --->C:\WINDOWS\Fonts目录 MyDocuments -->我的文档 Programs -->c:\program files\ SendTo -->发送到 StartMenu -->开始菜单等等 .CurrentDirectory属性 '检索或更改当前活动目录。 'CurrentDirectory 返回一个字符串,其中包含活动过程的当前工作目录的完全限定路径。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo WshShell.CurrentDirectory =============== WshShell 对象的方法: .CreateShortcut '创建新的快捷方式,或打开现有的快捷方式。 'object.CreateShortcut(strPathname) '参数 'object 'WshShell 对象。 'strPathname '表示要创建的快捷方式的路径名的字符串值。说明 'CreateShortcut 方法返回 WshShortcut 对象或 WshURLShortcut 对象。只调用 CreateShortcut '方法并不会导致快捷方式的创建。快捷方式对象以及对其所做的更改存储在内存中, '直到您用 Save方法将其保存到磁盘中为止。要创建快捷方式,必须执行以下操作: '创建 WshShortcut 对象的实例。 '初始化它的属性。 '用 Save 方法将其保存到磁盘中。 '注意一个常见的问题是,将参数放在快捷方式对象的 TargetPath 属性中将不起作用。快捷方式的所有参数都必须放在 'Arguments 属性中。 WshShortcut 对象中的属性介绍: .TargetPath '快捷方式的可执行文件的路径。 'object.TargetPath '参数 'object 'WshShortcut 或 WshUrlShortcut 对象。 '说明 '字符串。 '该属性仅用于快捷方式的目标路径。快捷方式的任何参数都必须放在参数的属性中。 .WindowStyle 为快捷方式指派窗口样式,或确定快捷方式使用的的窗口样式类型。 object.WindowStyle = intWindowStyle 参数 object WshShortcut 对象。 intWindowStyle 设置正在运行的程序的窗口样式。说明 WindowStyle 属性返回一个整数。 下表列出了 intWindowStyle 的可用设置。 intWindowStyle 说明 1 激活并显示窗口。如果该窗口被最小化或最大化,则系统将其还原到初始大小和位置。 3 激活窗口并将其显示为最大化窗口。 7 最小化窗口并激活下一个顶级窗口。 .Hotkey 为快捷方式指派组合键,或确定指派给快捷方式的组合键。 object.Hotkey = strHotkey 参数 object WshShortcut 对象。 strHotkey 代表指派给快捷方式的组合键的字符串。语法 strHotkey 的语法为: [KeyModifier]KeyName KeyModifier可以是以下的任何一个组合键:ALT+、CTRL+、SHIFT+、EXT+。注意 EXT+ 表示“扩展键”。—此处是为了防止日后将新的 SHIFT-键类型添加到字符集内。 KeyName a ... z、 0 ... 9、F1 F12 ... KeyName 不区分大小写。 说明热键是一组组合键,当同时按下所有相关键时将启动快捷方式。 热键可用于启动系统桌面和 Windows“开始”菜单中的快捷方式。注意热键的另一个名称叫做“键盘快捷方式”。在 Windows 2000 中,有效的热键总是以 CTRL + ALT 开头。 .IconLocation 为快捷方式指派图标,或确定指派给快捷方式的图标。 object.IconLocation = strIconLocation 参数 object WshShortcut 对象。 strIconLocation 用于查找该图标的字符串。该字符串应包含与该图标相关联的完全限定路径和索引。有关详细信息,请参见示例。说明 字符串。 .Description 返回快捷方式的说明。 object.Description 参数 object WshShortcut 对象。说明 Description 属性中包含一个说明快捷方式的字符串值。 .WorkingDirectory 为快捷方式指派工作目录,或者确定快捷方式使用的工作目录。 object.WorkingDirectory = strWorkingDirectory 参数 object WshShortcut 对象。 strWorkingDirectory 字符串。快捷方式的启动目录。说明 字符串。 .FullName 返回快捷方式对象目标的完全限定路径。 object.FullName 参数 object WshShortcut 对象。说明 FullName 属性中包含一个表示快捷方式目标的完全限定路径的只读字符串值。 WshShortcut 对象中的方法介绍: .Save 将快捷方式对象保存到磁盘中。 object.Save 参数 object WshShortcut 或 WshUrlShortcut 对象。说明 使用 CreateShortcut 方法创建快捷方式对象并设置快捷方式对象的属性后,必须用 Save 方法将快捷方式对象保存到磁盘中。Save 方法使用快捷方式对象的 FullName 属性中的信息,确定快捷方式对象在磁盘上的保存位置。只可创建系统对象的快捷方式,包括文件、目录和驱动器(不包括打印机链接或调度任务)。 WshUrlShortcut 对象 WshShell对象介绍 set WshShell = CreateObject("WScript.Shell") WScript.Echo (WshShell.CurrentDirectory) CurrentDirectory 属性 请参阅 WshShell 对象 语言 VBScript 显示所有语言检索或更改当前活动目录。 object.CurrentDirectory 参数 object WshShell 对象。说明 CurrentDirectory 返回一个字符串,其中包含活动过程的当前工作目录的完全限定路径。 ========================== set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "notepad" WScript.Sleep 100 WshShell.AppActivate "notepad" WScript.Sleep 100 WshShell.SendKeys "1" WScript.Sleep 500 WshShell.SendKeys "{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "=" WScript.Sleep 2500 AppActivate 方法请参阅运行脚本 | WshShell 对象 | SendKeys 方法激活应用程序窗口。 object.AppActivate title 参数 object WshShell 对象。 title 指定要激活哪个应用程序。它可以是包含应用程序的标题(和出现在标题栏中的一样)或过程 ID 的字符串。说明 AppActivate 方法返回的布尔值表示过程调用是否成功。该方法将焦点转移到命名应用程序或窗口中,但是并不影响应用程序或窗口是最大化还是最小化。用户执行更改焦点的操作(或关闭窗口)时,焦点移离活动的应用程序窗口。 在确定要激活哪个应用程序时,指定的标题将与正在运行的每个应用程序的标题字符串相比较。如果不存在完全匹配的标题,则将激活标题字符串以 title 开头的所有应用程序。如果还是找不到任何应用程序,则将激活标题字符串以 title 结尾的所有应用程序。如果存在多个名为 title 的应用程序实例,则将随机激活一个实例。 将一个或多个键击发送到活动窗口(仿佛是在键盘上击键一样)。 object.SendKeys(string) 参数 object WshShell 对象。 string 表示要发送的键击(一个或多个)的字符串值。说明使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。 注意要发送空格,则请发送字符串 " "。可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc"。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及: 用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。 SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。 要发送左中括号字符,请发送字符串参数 "{[]";要发送右中括号字符,请发送字符串参数 "{]}"。要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数: 键参数退格键 {BACKSPACE}、{BS} 或 {BKSP} BREAK {BREAK} CAPS LOCK {CAPSLOCK} DEL 或 DELETE {DELETE} 或 {DEL}向下键 {DOWN} END {END} ENTER {ENTER} 或 ~ ESC {ESC} HELP {HELP} HOME {HOME} INS 或 INSERT {INSERT} 或 {INS}向左键 {LEFT} NUM LOCK {NUMLOCK} PAGE DOWN {PGDN} PAGE UP {PGUP} PRINT SCREEN {PRTSC}向右键 {RIGHT} SCROLL LOCK {SCROLLLOCK} TAB {TAB}向上键 {UP} F1 {F1} F2 {F2} F3 {F3} F4 {F4} F5 {F5} F6 {F6} F7 {F7} F8 {F8} F9 {F9} F10 {F10} F11 {F11} F12 {F12} F13 {F13} F14 {F14} F15 {F15} F16 {F16} 要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作: 键特殊字符 SHIFT + CTRL ^ ALT % 注意这样使用时,不用大括号括起这些特殊字符。要指定在按下多个其它键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定: 如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击数字} 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。 注意只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。注意不能向应用程序发送 PRINT SCREEN 键 {PRTSC}。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档