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)