Wscript.Shell 对象详细介绍

无法创建ActiveXObject(“WScript.Shell“)

解决方案:

1、进入c:/WINDOWS/system32目录,重新注册shell32.dll、WSHom.Ocx、scrrun.dll

2、重新启动计算机

注:注册操作可在开始–运行中直接进行,在开始运行依次执行一下语句

regsvr32 c:/WINDOWS/system32/shell32.dll

regsvr32c:/WINDOWS/system32/WSHom.Ocx

regsvr32 c:/WINDOWS/system32/scrrun.dll

-------------------------------------------------------------------------------------------------

分类:程序

WshShell对象

ProgIDWscript.Shell

文件名WSHom.Ocx

CLSIDF935DC22-1CF0-11d0-ADB9-00C04FD58A0B

IIDF935DC21-1CF0-11d0-ADB9-00C04FD58A0B

下表说明和WshShell对象有关的属性。

属性说明

Environment返回WshEnvironment集合对象。

SpecialFolders使用WshSpecialFolders对象提供对Windowsshell文件夹的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。

下表说明和WshShell对象有关的方法。

方法说明

CreateShortcut创建并返回WshShortcut对象。

ExpandEnvironmentStrings扩展PROCESS环境变量并返回结果字符串。

Popup显示包含指定消息的消息窗口。

RegDelete从注册表中删除指定的键或值。

RegRead从注册表中返回指定的键或值。

RegWrite在注册表中设置指定的键或值。

Run创建新的进程,该进程用指定的窗口样式执行指定的命令。

WshShell.Environment

Environment属性返回WshEnvironment对象。

语法

WshShell.Environment([strType])=objWshEnvironment

注释

若strType指定了环境变量所处的位置,可能值为"System"、"User"、"Volatile"和"Process"。若未提供strType,则该方法在WindowsNT中检索系统环境变量或在Windows95中检索进程环境变量。

对于Windows95,strType参数仅支持"Process"。

下列变量是由Windows操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。

名称说明

NUMBER_OF_PROCESSORS计算机上运行的处理器数目。

PROCESSOR_ARCHITECTURE用户工作站使用的处理器类型。

PROCESSOR_IDENTIFIER用户工作站的处理器ID。

PROCESSOR_LEVEL用户工作站的处理器级。

PROCESSOR_REVISION用户工作站的处理器版本。

OS用户工作站所用的操作系统。

COMSPEC用于运行“命令提示”窗口的命令(通常为cmd.exe)。

HOMEDRIVE本地主驱动器(通常为C驱动器)。

HOMEPATH用户的默认路径(在WindowsNT上通常为usersdefault)。

PATH路径环境变量。

PATHEXT可执行文件的扩展名(通常为.com、.exe、.bat或.cmd)。

PROMPT命令提示符(通常为$P$G)。

SYSTEMDRIVE系统所在的本地驱动器(例如,c:)。

SYSTEMROOT系统目录(例如,c:winnt)。和WINDIR相同。

WINDIR系统目录(例如c:winnt)。和SYSTEMROOT相同。

TEMP存储临时文件的目录(例如,c:temp)。用户可更改。

TMP存储临时文件的目录(例如,c:temp)。用户可更改。

示例

''RetrievetheNUMBER_OF_PROCESSORSsystemenvironmentvariable

SetWshShell=Wscript.CreateObject("Wscript.Shell")

SetWshSysEnv=WshShell.Environment("SYSTEM")

Wscript.EchoWshSysEnv("NUMBER_OF_PROCESSORS")

请参阅

WshEnvironment对象

WshEnvironment对象

WshEnvironment对象未直接给出,可用WshShell.Environment属性来访问。

ProgIDN/A

文件名WSHom.Ocx

CLSID

IID

下表描述与WshEnvironment对象关联的属性。

属性说明

Item获取或设置指定的环境变量值。

Count枚举项的数目。

length枚举项的数目(JScript)。

下表描述与WshEnvironment对象关联的方法。

方法说明

Remove删除指定的环境变量。

WshShell.SpecialFolders

SpecialFolders属性提供WshSpecialFolders对象以便访问Windows的shell文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。

语法

WshShell.SpecialFolders=objWshSpecialFolders

示例

''Thiscodefragmentshowshowtoaccessthedesktopfolder

SetWshShell=Wscript.CreateObject("Wscript.Shell")

MsgBox"Yourdesktopis"&WshShell.SpecialFolders("Desktop")

请参阅

WshSpecialFolders对象

WshSpecialFolders对象

该对象未直接给出。要得到WshSpecialFolders对象,请使用WshShell.SpecialFolders属性。

ProgIDN/A

文件名WSHom.Ocx

CLSID

IID

下表描述与WshSpecialFolders对象关联的属性。

属性描述

Item指定文件夹的完整路径(默认)。

Count枚举项的数目。

length枚举项的数目(JScript)。

WshSpecialFolders.Item

Item属性返回由strFolderName指定的文件夹的完整路径。它是默认属性。

语法

WshShell.SpecialFolders.Item("strFolderName")=strFolderPath

WshShell.SpecialFolders("strFolderName")=strFolderPath

注释

若请求的文件夹(strFolderName)不可用,则WshShell.SpecialFolders("strFolderName")返回NULL。例如,Windows95没有AllUsersDesktop文件夹,如果strFolderName=AllUsersDesktop,则返回NULL。

Windows95和WindowsNT4.0操作系统提供下列指定文件夹:

AllUsersDesktop

AllUsersStartMenu

AllUsersPrograms

AllUsersStartup

Desktop

Favorites

Fonts

MyDocuments

NetHood

PrintHood

Programs

Recent

SendTo

StartMenu

Startup

Templates

示例

''ThisfragmentreturnsthefullpathfortheWindowsDesktopfolder

SetWshShell=Wscript.CreateObject("Wscript.Shell")

StrMyDesktop=WshShell.SpecialFolders("Desktop")

''Listallspecialfolders

ForEachstrFolderInWshShell.SpecialFolders

MsgBoxstrFolder

Next

请参阅

WshShell.SpecialFolders属性

WshShell.CreateShortcut

CreateShortcut方法创建WshShortcut对象并将其返回。如果快捷方式标题以.url结尾,就会创建WshURLShortcut对象。

语法

WshShell.CreateShortcut(strPathname)=objShortcut

示例

''Thiscodefragmentcreatesashortcut

''tothecurrentlyexecutingscript

SetWshShell=Wscript.CreateObject("Wscript.Shell")

SetoShellLink=WshShell.CreateShortcut("CurrentScript.lnk")

oShellLink.TargetPath=Wscript.ScriptFullName

oShellLink.Save

SetoUrlLink=WshShell.CreateShortcut("MicrosoftWebSite.URL")

oUrlLink.TargetPath="http://www.microsoft.com"

oUrlLink.Save

请参阅

WshShortcut对象、WshUrlShortcut对象

WshShortcut对象

该对象未直接给出。要获得WshShortcut对象,请使用WshShell.CreateShortcut方法。

ProgIDN/A

文件名WSHom.Ocx

CLSIDF935DC28-1CF0-11d0-ADB9-00C04FD58A0B

IIDF935DC27-1CF0-11d0-ADB9-00C04FD58A0B

下表说明和WshShortcut对象有关的属性。

属性说明

Arguments快捷方式对象的参数。

Description快捷方式对象的说明。

Hotkey快捷方式对象的热键。

IconLocation快捷方式对象的图标位置。

TargetPath快捷方式对象的目标路径。

WindowStyle快捷方式对象的窗口样式。

WorkingDirectory快捷方式对象的工作目录。

下表说明与WshShortcut对象有关的方法。

方法说明

Save将快捷方式存储到指定的文件系统中。

WshShortcut.Arguments

Arguments属性提供快捷方式对象的参数。

语法

WshShortcut.Arguments=strArguments

WshShortcut.Description

Description属性提供快捷方式对象的说明。

语法

WshShortcut.Description=strDescription

WshShortcut.Hotkey

HotKey属性提供快捷方式对象的热键。热键是启动或切换程序的键盘快捷方式。

语法

WshShortcut.HotKey=strHotKey

注释

strHotKey的BNF语法如下:

Hotkey::=modifier*keyname

modifier::="ALT+"|"CTRL+"|"SHIFT+"|"EXT+"

keyname::="A".."Z"|

"0".."9"|

"Back"|"Tab"|"Clear"|"Return"|

"Escape"|"Space"|"Prior"|...

所有键的名称都可以在WINUSER.H中找到。热键不区分大小写。

热键只能激活位于Windows桌面或Windows“开始”菜单的快捷方式。

Windows资源管理器不接受ESC、ENTER、TAB、SPACE、PRINTSCREEN或BACKSPACE,即使WshShortcut.Hotkey遵循Win32API支持它们。因此,建议在快捷方式中不要用这些键。

示例

SetWshShell=Wscript.CreateObject("Wscript.WshShell")

strDesktop=WshShell.SpecialFolders("Desktop")

SetoMyShortcut=WshShell.CreateShortcut(strDesktop&"a_key.lnk")

OMyShortcut.TargetPath="%windir%notepad.exe"

oMyShortCut.Hotkey="ALT+CTRL+F"

oMyShortCut.Save

Wscript.EchooMyShortCut.HotKey="Alt+Ctrl+F"

请参阅

WshSpecialFolders对象

WshShortcut.IconLocation

IconLocation属性提供快捷方式对象的图标位置。图标位置的格式应为"Path,index"。

语法

WshShortcut.IconLocation=strIconLocation

WshShortcut.TargetPath

TargetPath属性提供快捷方式对象的目标路径。

语法

WshShortcut.TargetPath=strTargetPath

WshShortcut.WindowStyle

WindowStyle属性提供快捷方式对象的窗口样式。

语法

WshShortcut.WindowStyle=natWindowStyle

WshShortcut.WorkingDirectory

WorkingDirectory为一个快捷方式对象提供工作目录。

语法

WshShortcut.WorkingDirectory=strWorkingDirectory

WshShortcut.Save

Save方法把快捷方式对象保存到由FullName属性指定的位置。

语法

WshShortcut.Save

WshUrlShortcut对象

该对象未直接给出。要获取WshUrlShortcut对象,可使用WshShell.CreateShortcut方法。

ProgIDN/A

文件名WSHom.Ocx

CLSID

IID 

下表说明了和 WshUrlShortcut 对象有关的属性。

属性说明

FullNameURL快捷方式对象的完整路径。

TargetPathURL快捷方式对象的目标路径。

下表说明了和WshUrlShortcut对象有关的方法。

方法说明

Save将快捷方式保存到指定的文件系统中。

WshUrlShortcut.FullName

FullName属性提供快捷方式对象的完整路径。

语法

WshUrlShortcut.FullName=strFullName

WshUrlShortcut.TargetPath

TargetPath属性提供快捷方式对象的目标路径。

语法

WshUrlShortcut.TargetPath=strTargetPath

WshUrlShortcut.Save

Save方法保存一个快捷方式,该快捷方式指向FullName属性指定的位置。

语法

WshUrlShortcut.Save

WshShell.ExpandEnvironmentStrings

ExpandEnvironmentStrings方法在strString中扩展PROCESS环境变量并返回结果字符串。变量被''%''字符括起。

环境变量不区分大小写。

语法

WshShell.ExpandEnvironmentStrings(strString)=strExpandedString

示例

MsgBox"Promptis"&WshShell.ExpandEnviromentStrings("%PROMPT%")

WshShell.Popup

Popup方法显示一个弹出式消息框窗口,消息框中包含的消息由strText指定。该消息框的窗口标题由strTitle指定。若strTitle省略,则窗口标题为WindowsScriptingHost。

语法

WshShell.Popup(strText,[natSecondsToWait],[strTitle],[natType])=intButton

注释

若提供natSecondsToWait且其值大于零,则消息框在natSecondsToWait秒后关闭。

natType的含义与其在Win32?MessageBox函数中相同。下表显示natType中的值及含义。下表中的值可以组合。

按钮类型

值说明

0显示“确定”按钮

1显示“确定”和“取消”按钮

2显示“终止”、“重试”和“忽略”按钮

3显示“是”、“否”和“取消”按钮

4显示“是”和“否”按钮

5显示“重试”和“取消”按钮

图标类型

值说明

16显示停止标记图标

32显示问号图标

48显示感叹号图标

64显示信息标记图标

以上两个表并不涵盖natType的所有值。完整的列表请参阅Win32文档。

返回值intButton指示用户所单击的按扭编号。若用户在natSecondsToWait秒之前不单击按扭,则intButton设置为-1。

值说明

1“确定”按扭

2“取消”按扭

3“终止”按扭

4“重试”按扭

5“忽略”按扭

6“是”按扭

7“否”按扭

示例

SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.Popup"Wheredoyouwanttogotoday?"

请参阅

Wscript.Echo方法

Wscript.Echo

Echo方法在窗口(Wscript.exe中)或“命令提示符”窗口(Cscript.exe中)显示参数。

参数用空格分隔。在Cscript.exe中,该方法在显示最后一个参数之后输出一对回车/换行(CRLF)。

语法

Wscript.Echo[anyArg...]

示例

Wscript.Echo

Wscript.Echo1,2,3

Wscript.Echo"WindowsScriptingHostiscool."

WshShell.RegDelete

RegDelete从注册表中删除名为strName的键或值。

语法

WshShell.RegDeletestrName

参数

strName

如果strName以反斜杠()结束,则该方法删除键而不是值。

strName参数必须以下列之一的根键名开始:

短根键名长根键名

HKCUHKEY_CURRENT_USER

HKLMHKEY_LOCAL_MACHINE

HKCRHKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

示例

SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegDelete"HKCUScriptEngineValue"''Deletevalue"Value"

WshShell.RegDelete"HKCUScriptEngineKey"''Deletekey"Key"

请参阅

WshShell.RegRead方法、WshShell.RegWrite方法

WshShell.RegRead

RegRead方法返回名为strName的注册表键或值。

语法

WshShell.RegRead(strName)=strValue

参数

strName

如果strName以反斜杠()结束,则该方法返回键,而不是值。

strName参数必须以下列根键名开始。

ShortLong

HKCUHKEY_CURRENT_USER

HKLMHKEY_LOCAL_MACHINE

HKCRHKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

注释

RegRead方法仅支持REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY和REG_MULTI_SZ数据类型。若注册表有其他数据类型,RegRead返回DISP_E_TYPEMISMATCH。

示例

SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegRead("HKCUScriptEngineVal")''Readfromvalue"Val"

WshShell.RegRead("HKCUScriptEngineKey")''Readfromkey"Key"

请参阅

WshShell.RegDelete方法、WshShell.RegWrite方法

WshShell.RegWrite

RegWrite方法设置名为strName的注册表键或值。

语法

WshShell.RegWritestrName,anyValue,[strType]

参数

strName

若strName以一个反斜杠()结束,则该方法设置键,而不是值。

strName参数必须以下列根键名开头。

ShortLong

HKCUHKEY_CURRENT_USER

HKLMHKEY_LOCAL_MACHINE

HKCRHKEY_CLASSES_ROOT

HKEY_USERS

HKEY_CURRENT_CONFIG

anyValue

当strType为REG_SZ或REG_EXPAND_SZ时,RegWrite方法自动将anyValue转换为字符串。若strType为REG_DWORD,则anyValue被转换为整数。若strType为REG_BINARY,则anyValue必须是一个整数。

strType

RegWrite方法支持strType为REG_SZ、REG_EXPAND_SZ、REG_DWORD和REG_BINARY。若其他的数据类型被作为strType传递,RegWrite返回E_INVALIDARG。

示例

SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegWrite"HKCUScriptEngineValue","Somestringvalue"

WshShell.RegWrite"HKCUScriptEngineKey",1"REG_DWORD"

请参阅

WshShell.RegDelete方法、WshShell.RegWrite方法

WshShell.Run

Run方法创建一个新的进程,该进程以intWindowStyle窗口样式执行strCommand。

语法

WshShell.Run(strCommand,[intWindowStyle],[blnWaitOnReturn])

参数

strCommand

在strCommand参数内部的环境变量被自动扩展。

intWindowStyle

这是为新进程在STARTUPINFO结构内设置的wShowWindow元素的值。其意义与ShowWindow中的nCmdShow参数相同,可取以下值之一。名称值含义

SW_HIDE

0隐藏窗口并激活另一窗口。

SW_MINIMIZE

6最小化指定窗口并激活按Z序排序的下一个顶层窗口。

SW_RESTORE

9激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。

SW_SHOW

5以当前大小和位置激活并显示窗口。

SW_SHOWMAXIMIZED

3激活窗口并以最大化显示该窗口。

SW_SHOWMINIMIZED

2激活窗口并以最小化显示该窗口。

SW_SHOWMINNOACTIVE

7最小化显示窗口。活动窗口保持活动。

SW_SHOWNA

8以当前状态显示窗口。活动窗口保持活动。

SW_SHOWNOACTIVATE

4按窗口最近的大小和位置显示。活动窗口保持活动。

SW_SHOWNORMAL

1激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。

blnWaitOnReturn

如果未指定blnWaitOnReturn或其值为FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。

若blnWaitOnReturn设为TRUE,则Run方法返回由应用程序返回的任何错误代码。如果未指定blnWaitOnReturn或其值为FALSE,则Run返回错误代码0(zero)。

示例

''ThisfragmentlaunchesNotepadwiththecurrentexecutedscript

SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.Run("notepad"&Wscript.ScriptFullName)

WshShell.Run("%windir%notepad"&Wscript.ScriptFullName)

''Thisfragmentreturnstheerrorcodefromtheexecutedapplication

Return=WshShell.Run("notepad"&Wscript.ScriptFullName,1,TRUE)

相关推荐