- 帖子
- 1059
- 积分
- 1560
- 技术
- 112
- 捐助
- 0
- 注册时间
- 2010-4-30
|
2楼
发表于 2012-10-18 09:32
| 只看该作者
本帖最后由 czjt1234 于 2012-10-18 14:15 编辑
下面是 WshShell 对象的属性和方法的参数,及用法举例
代码测试环境:winxpsp3 IE8 Wscript版本5.7.0.18066
'-------------------------------------------------------------
Dim objWsh, intNumber, strRead, objExec
Dim objWshEnv, objWshSpe, objLink, objUrlLink, objWshExec
set objWsh = CreateObject("Wscript.Shell")
'返回 WshShell 对象
'-------------------------------------------------------------
objwsh.AppActivate "Title"|ProcessID '激活指定窗口,可以是标题栏或进程ID
strRead = objwsh.CurrentDirectory '读取当前目录
objwsh.CurrentDirectory = "C:\Program Files" '更改当前目录
strRead = objwsh.ExpandEnvironmentStrings("%WinDir%\System32\")
'将指定变量名返回为完整路径,即"扩展变量"
'-------------------------------------------------------------
objwsh.SendKeys strRead '向当前活动窗口发送按键
'下面是操作键的发送代码
退格键 {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}
向右键 {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
向上键 {UP}
F1 至 F12 {F1} 至 {F12}
SHIFT +
CTRL ^
ALT %
+ { 等修饰符 {+} {{} {^} {}} {%}
'如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 +(ec)
'可发送一个键的重复键击。如10次x,为{x 10},但不可发送10次组合键,如Ctrl+x
'不能发送 PRINT SCREEN 键 {PRTSC}
'常用 Wscript.Sleep 来延时若干毫秒发送按键,避免程序来不及响应
'-------------------------------------------------------------
intNumber = objWsh.Popup(strText, nSecondsToWait, strTitle, nType)
'弹出式消息框。比 Msgbox 多了等待选择时间参数,少了帮助参数
'返回值intNumber代表如下按钮:
vbOK = 1 '确定
vbCancel = 2 '取消
vbAbort = 3 '放弃
vbRetry = 4 '重试
vbIgnore = 5 '忽略
vbYes = 6 '是
vbNo = 7 '否
-1 '选择超时
参数:
strText '要显示的文本信息
nSecondsToWait '等待选择的秒数。若选择超时,消息框自动关闭,返回值 -1
'缺省值 0 秒,必须选择一个按钮,消息框才会关闭
strTitle '弹出式消息框的标题。缺省值 "Windows Script Host"
nType '要显示的按钮和图标类型。缺省值 0
0 显示“确定”按钮
1 显示“确定”和“取消”按钮
2 显示“放弃”、“重试”和“忽略”按钮
3 显示“是”、“否”和“取消”按钮
4 显示“是”和“否”按钮
5 显示“重试”和“取消”按钮
16 显示“停止标记”图标
32 显示“问号”图标
48 显示“感叹号”图标
64 显示“信息标记”图标
'-------------------------------------------------------------
'注册表操作
objWsh.RegWrite "HKLM\SOFTWARE\test", &HFFFF&, "REG_SZ|REG_DWORD|REG_BINARY"
'创建/修改指定键
'&HFF表示16进制数FF。当数值较大时,vbs处理有问题,需在数字后面加&
参数:
REG_SZ 字符型,键值用""括起来。缺省值
REG_DWORD 双字节型
REG_BINARY 二进制型
strRead = objWsh.RegRead("HKLM\SOFTWARE\test") '读取指定键值
objWsh.RegDelete "HKLM\SOFTWARE\test" '删除指定键
objWsh.RegWrite "HKLM\SOFTWARE\test\", "", "REG_SZ" '创建一个项,默认值为空
objWsh.RegDelete "HKLM\SOFTWARE\test\" '删除指定项。可以有键,不能有子项
'-------------------------------------------------------------
objwsh.Run strCommand, intWindowStyle, True|False
'运行指定程序
'参数:strCommand 要运行的命令行及参数
'参数:True|False 是否等命令执行完毕。缺省值False
'参数:intWindowStyle 窗口状态。一般只用到:0隐藏窗口,1显示窗口。缺省值1
'intWindowStyle 有如下可选值:
0 隐藏一个窗口并激活另一个窗口
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置
第一次显示该窗口时,应用程序应指定此标志
2 激活窗口并将其显示为最小化窗口
3 激活窗口并将其显示为最大化窗口
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态
5 激活窗口并按当前的大小和位置显示它
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口
7 将窗口显示为最小化窗口。活动窗口保持活动状态
8 将窗口显示为当前状态。活动窗口保持活动状态
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置
还原最小化窗口时,应用程序应指定此标志
10 根据启动应用程序的程序状态来设置显示状态
objwsh.Run "notepad.exe D:\新建 文本文档.txt" '命令行的参数可以有空格
objwsh.Run """C:\Program Files\WinRAR\WinRAR.exe""" '命令行带空格,要3对""。可以用Chr(34)代替2对""
strRead = "notepad.exe " + "D:\新建 文本文档.txt" '连接字符串时注意命令行后加个空格
objwsh.Run "cmd.exe /k echo ""strRead"" strRead " '运行cmd时,注意参数里的"和变量名
'该方法有返回码
intNumber = objwsh.Run("notepad.exe", , True)
'正常关闭,返回0
'任务管理强制结束,返回1
intNumber = objwsh.Run("cmd.exe /k xcopy", , True)
'输入exit正常关闭,返回值为cmd的错误码%errorlevel%
'任务管理强制结束,返回1
'点cmd窗口右上角的关闭按钮,(winxpsp3)返回-1073741510
'输入 exit /b 111 正常关闭,返回111
'-------------------------------------------------------------
objWsh.LogEvent intType, strMessage, strTarget
'添加"应用程序"日志。日志的"来源"显示为 WSH
'参数:
intType 整数值,代表日志类型(事件 ID)
strMessage 对错误的描述
strTarget 产生错误的计算机名。缺省值为本机名
intType 有如下可选值:
0 无
1 错误
2 警告
4 信息
8 成功审核
16 失败审核
'------------------------------------------------------------- |
|